public void processConfig(int outputColumnCount, InputDataSet dataSet, string outputPath) { _dataset = dataSet; OutputColumnCount = outputColumnCount; OuputPath = outputPath; ProccessDataset(); }
public void AddInputset(InputDataSet dataset) { var fileStream = _fileStreamProvider.GetReadStream(dataset.FilePath);//add the file stream to the data set so it can be accessed in the FileProcessor using (fileStream) { dataset.Columns = fileStream.ReadLine().Split(","); dataset.DatasetName = Path.GetFileName(dataset.FilePath); InputSets.Add(dataset); } }
private static void InterpolationTest() { string filepath = "D:/Users/yrmal/Desktop/doublegyro"; double voxelSize = 0.1; InputDataSet ids = new InputDataSet(filepath, voxelSize, null); Debug.WriteLine("voxels: " + ids.Voxels.Count() + " points/voxel " + ids.GetPoints().Count() / ids.Voxels.Count()); Vector3 pos = new Vector3(0.390000f, 0.880000f, 1.000000f); Point orig = new Point(pos, new Vector3(-0.003917f, -0.027478f, 0.000000f)); Stopwatch sw = new Stopwatch(); sw.Start(); Point p = null; for (int i = 0; i < 1000; i++) { p = Interpolator <Point> .NNInterpolatePoint(pos, ids.GetPoints()); } sw.Stop(); Debug.WriteLine("Nearest Neighbour: Time spent " + sw.ElapsedMilliseconds + " ms => " + (sw.ElapsedMilliseconds / 1000f) + " ms/interpolation"); Debug.WriteLine(p.Vel + " vs " + orig.Vel); Vector3 error = (p.Vel - orig.Vel); float totalError = Math.Abs(error.X) + Math.Abs(error.Y) + Math.Abs(error.Z); Debug.WriteLine("Error: " + error + " Total: " + (1000 * totalError)); sw.Restart(); p = null; for (int i = 0; i < 1000; i++) { p = Interpolator <Point> .IWDInterpolatePoint(pos, ids.GetPoints(), voxelSize); } sw.Stop(); Debug.WriteLine("IWD: Time spent " + sw.ElapsedMilliseconds + " ms => " + (sw.ElapsedMilliseconds / 1000f) + " ms/interpolation"); Debug.WriteLine(p.Vel + " vs " + orig.Vel); error = (p.Vel - orig.Vel); totalError = Math.Abs(error.X) + Math.Abs(error.Y) + Math.Abs(error.Z); Debug.WriteLine("Error: " + error + " Total: " + (1000 * totalError)); sw.Restart(); p = null; for (int i = 0; i < 1000; i++) { List <Voxel <Point> > voxels = new List <Voxel <Point> >(27); Voxel <Point> center = null; foreach (Voxel <Point> v in ids.Voxels) { if (v.IsPointInside(pos)) { center = v; voxels.Add(center); break; } } foreach (Voxel <Point> v in ids.Voxels) { if (center != v && v.IsNeighborOf(center)) { voxels.Add(v); } } p = Interpolator <Point> .NNInterpolatePoint(pos, voxels); } sw.Stop(); Debug.WriteLine("NN /w voxel: Time spent " + sw.ElapsedMilliseconds + " ms => " + (sw.ElapsedMilliseconds / 1000f) + " ms/interpolation"); Debug.WriteLine(p.Vel + " vs " + orig.Vel); error = (p.Vel - orig.Vel); totalError = Math.Abs(error.X) + Math.Abs(error.Y) + Math.Abs(error.Z); Debug.WriteLine("Error: " + error + " Total: " + (1000 * totalError)); sw.Restart(); p = null; for (int i = 0; i < 1000; i++) { List <Voxel <Point> > voxels = new List <Voxel <Point> >(27); Voxel <Point> center = null; foreach (Voxel <Point> v in ids.Voxels) { if (v.IsPointInside(pos)) { center = v; voxels.Add(center); break; } } foreach (Voxel <Point> v in ids.Voxels) { if (center != v && v.IsNeighborOf(center)) { voxels.Add(v); } } p = Interpolator <Point> .IWDInterpolatePoint(pos, voxels, voxelSize); } sw.Stop(); Debug.WriteLine("IWD /w voxel: Time spent " + sw.ElapsedMilliseconds + " ms => " + (sw.ElapsedMilliseconds / 1000f) + " ms/interpolation"); Debug.WriteLine(p.Vel + " vs " + orig.Vel); error = (p.Vel - orig.Vel); totalError = Math.Abs(error.X) + Math.Abs(error.Y) + Math.Abs(error.Z); Debug.WriteLine("Error: " + error + " Total: " + (1000 * totalError)); }
private void LoadData(object sender, DoWorkEventArgs e) { BackgroundWorker worker = sender as BackgroundWorker; ids = new InputDataSet(selectDataDalog.FileName, double.Parse(voxelSize.Text), worker); }
public bool DoesRuleExist(InputDataSet dataSet, int targetIndex) { return(dataSet.MapRules.Any(r => r.TargetIndex == targetIndex)); }