public TrajectoryResponse GetTrajectory(TrajectoryRequest request) { TrajectoryMapper trajectoryMapper = new TrajectoryMapper(request.Map); IReader reader = new CSVReader(request.FilePath); // Get the data trajectoryMapper.GetData(reader); // Get the mapped trajectories var trajectories = trajectoryMapper.GetTrajectories(); return(new TrajectoryResponse() { Trajectories = trajectories.ToArray() }); }
public async Task <HttpResponseMessage> PlotTrajectory() { try { HttpRequestMessage requestMessage = this.Request; if (!requestMessage.Content.IsMimeMultipartContent()) { throw new HttpResponseException(HttpStatusCode.UnsupportedMediaType); } TrajectoryRequest request = new TrajectoryRequest(); string root = System.Web.HttpContext.Current.Server.MapPath(FILE_UPLOAD_PATH); var provider = new MultipartFormDataStreamProvider(root); var result = await Request.Content.ReadAsMultipartAsync(provider); var map = result.FormData["map"]; SOM som = JsonConvert.DeserializeObject <SOM>(map); string file = provider.FileData.Last().LocalFileName; IReader reader = new CSVReader(file); TrajectoryMapper trajectoryMapper = new TrajectoryMapper(som); trajectoryMapper.GetData(reader); TrajectoryResponse trajectoryResponse = new TrajectoryResponse() { Trajectories = trajectoryMapper.GetTrajectories().ToArray() }; File.Delete(result.FileData.First().LocalFileName); return(Request.CreateResponse(HttpStatusCode.OK, trajectoryResponse)); } catch (Exception ex) { return(Request.CreateErrorResponse(HttpStatusCode.InternalServerError, ex)); } }
// Update is called once per frame void Update() { var rightTrigger = _rightController.GetAxis(EVRButtonId.k_EButton_SteamVR_Trigger).x; var rightPos = _rightController.transform.pos; var leftPos = _thisTransform.position; var dir = leftPos - rightPos; dir.Normalize(); var dist = Vector3.Distance(arrowAnchor.transform.position, rightPos); Debug.DrawRay(rightPos, dir); _drawProgress = dist / maxDrawDistance; _drawProgress = (_drawProgress > 1) ? 1 : (_drawProgress < 0) ? 0 : _drawProgress; if (rightTrigger >= 0.2f && _drawProgress <= minDrawDistance && !_isDrawing) { _isDrawing = true; } if (_isDrawing) { if (_notchedArrow == null) { var g = Instantiate(arrow, _thisTransform); g.localPosition = arrowAnchor.localPosition; g.localRotation = Quaternion.identity; _notchedArrow = g.GetComponent <ArrowController>(); } effect.SetDrawProgress(_drawProgress); _notchedArrow.SetDrawProgress(_drawProgress, rightPos); var intensity = (ushort)(drawHapticCurve.Evaluate(_drawProgress) * drawHapticIntensity); _thisTransform.rotation = Quaternion.LookRotation(dir, Vector3.up); if (_drawProgress >= drawHapticFequency + _lastDrawHaptic || _drawProgress <= _lastDrawHaptic - drawHapticFequency) { _rightController.TriggerHapticPulse(intensity); _lastDrawHaptic = (drawHapticFequency * (int)(_drawProgress / drawHapticFequency)); } if (_drawProgress == 1 && _lastDrawHaptic != 1) { _rightController.TriggerHapticPulse((ushort)(2 * drawHapticIntensity)); _lastDrawHaptic = 1; } var trajectory = TrajectoryMapper.GetTrajectory(leftPos, 1, _drawProgress * _notchedArrow.flightSpeed * dir); _lr.positionCount = trajectory.Length; _lr.enabled = true; _lr.SetPositions(trajectory); } if (rightTrigger < .2f) { if (_isDrawing) { //Fire effect.Fire(_drawProgress); _notchedArrow.Fire(_drawProgress); _rightController.TriggerHapticPulse((ushort)(_drawProgress * drawHapticIntensity)); _leftController.TriggerHapticPulse((ushort)(_drawProgress * drawHapticIntensity)); _notchedArrow = null; _lr.enabled = false; _drawProgress = 0; _lastDrawHaptic = 0; _isDrawing = false; _thisTransform.localRotation = Quaternion.Euler(90, 0, 0); } } }
public static void Program1(string[] args) { Stopwatch stopwatch = new Stopwatch(); string filepath = @"C:\Users\Vilson\Desktop\Datasets\Financial Distress\FD_Training.csv"; SOM _model = new SOM(10, 10, 0.3, 20); _model.Training += _model_Training; IReader _reader = new CSVReader(filepath); IClusterer _kmeans = new KMeansClustering(); _model.GetData(_reader); _model.Dataset.SetLabel("Company"); _model.Dataset.SetLabel("Time"); _model.Dataset.SetLabel("Financial Distress"); _model.Dataset.SetLabel("Status"); _model.FeatureLabel = "Status"; Console.WriteLine("Start initializing map..."); stopwatch.Start(); _model.InitializeMap(); stopwatch.Stop(); Console.WriteLine("Completed initialization..."); Console.WriteLine("Time elapsed: {0:hh\\:mm\\:ss}", stopwatch.Elapsed); Console.WriteLine("Start training model..."); stopwatch.Restart(); _model.Train(); stopwatch.Stop(); Console.WriteLine("Completed training model..."); Console.WriteLine("Time elapsed: {0:hh\\:mm\\:ss}", stopwatch.Elapsed); Console.WriteLine("Start labelling node..."); stopwatch.Restart(); _model.LabelNodes(); stopwatch.Stop(); Console.WriteLine("Completed labelling node..."); Console.WriteLine("Time elapsed: {0:hh\\:mm\\:ss}", stopwatch.Elapsed); Console.WriteLine("Start clustering nodes..."); stopwatch.Restart(); var flattenedMap = ArrayHelper <Node> .FlattenMap(_model.Map); var clusteredNodes = _kmeans.Cluster(flattenedMap, 3); stopwatch.Stop(); Console.WriteLine("Completed clustering nodes..."); Console.WriteLine("Time elapsed: {0:hh\\:mm\\:ss}", stopwatch.Elapsed); string trainingPath = @"C:\Users\Vilson\Desktop\Datasets\Financial Distress\Training"; List <TrajectoryMapper> dbTrajectories = new List <TrajectoryMapper>(); Console.WriteLine("Start plotting trajectories..."); stopwatch.Restart(); foreach (var file in Directory.EnumerateFiles(trainingPath)) { TrajectoryMapper trajectoryMapper = new TrajectoryMapper(_model); IReader trajectoryReader = new CSVReader(file); trajectoryMapper.GetData(trajectoryReader); trajectoryMapper.GetTrajectories(); dbTrajectories.Add(trajectoryMapper); } stopwatch.Stop(); Console.WriteLine("Completed plotting trajectories..."); Console.WriteLine("Time elapsed: {0:hh\\:mm\\:ss}", stopwatch.Elapsed); string testingPath = @"C:\Users\Vilson\Desktop\Datasets\Financial Distress\Test\fd_297.csv"; TrajectoryMapper testMapper = new TrajectoryMapper(_model); IReader trjaectoryDataReader = new CSVReader(testingPath); testMapper.GetData(trjaectoryDataReader); var unknownTrajectory = testMapper.GetTrajectories(); IFileHelper fileHelper = new FileHelper(); ISimilarityMeasure similarityMeasure = new CompressionDissimilarityMeasure(fileHelper); foreach (var trajectory in dbTrajectories) { var currentTrajectory = trajectory.GetTrajectories(); var score = similarityMeasure.MeasureSimilarity(currentTrajectory, unknownTrajectory); Console.WriteLine("{0}: {1}", trajectory.FileName, score); } Console.ReadLine(); }