protected void MultipleTrajectoriesINM()
        {
            var reader = new TrajectoriesFileReader();

            /*
             * if (TrajectoryFitness.trajectories != null)
             * {
             *  trajectories = TrajectoryFitness.trajectories;
             *  VisualiseOptimisation = true;
             *  return;
             * } else
             * {
             */
            trajectories = reader.CreateFromFile(_view.TrajectoryFile, referencePoint);
            //}

            /*
             * _view.Invoke(delegate { _view.NoiseCalculationCompleted(); });
             * return;
             */

            // Calculate the noise for each trajectory
            temporalGrid = new TemporalGrid();
            int counter = 0;

            foreach (Trajectory trajectory in trajectories)
            {
                double percentage = (double)counter / trajectories.Count * 100.0;
                ProgressChanged(percentage);
                Console.WriteLine("INM " + counter + " started");
                //if (counter > 3) { break; }

                var INM = new IntegratedNoiseModel(trajectory, trajectory.Aircraft);
                INM.CellSize = 125;
                INM.MapToLargerGrid(reader.LowerLeftPoint, reader.UpperRightPoint);
                INM.MaxDistanceFromAirport(referencePoint.Point, 100000);
                INM.IntegrateToCurrentPosition = true;
                INM.NoiseMetric = 0;
                if (_view.NoiseMetric == 1)
                {
                    INM.NoiseMetric = 1;
                }
                INM.RunINMFullTrajectory();

                Grid grid = INM.TemporalGrid.GetGrid(0);
                Console.WriteLine(grid.Data.Length + "x" + grid.Data[0].Length);
                grid.ReferencePoint = referencePoint;
                temporalGrid.AddGrid(grid);
                Console.WriteLine("INM " + counter + " completed");
                counter++;
            }

            GridConverter converter;

            switch (_view.NoiseMetric)
            {
            case 0:
                converter    = new GridConverter(temporalGrid, GridTransformation.LDEN);
                temporalGrid = converter.Transform();
                break;

            case 1:
                converter    = new GridConverter(temporalGrid, GridTransformation.SEL);
                temporalGrid = converter.Transform();
                break;
            }
            _view.Invoke(delegate { _view.NoiseCalculationCompleted(); });
        }