////////////////////////////////////////
        #region Constructor


        public xrfSample(string[] pixelLabels, string[][] metaData, double[][] pixelData)
        {
            Motors = ExtractMotorData(metaData);
            ParseRemainingMetaData(metaData);
            this.Labels  = pixelLabels;
            RawPixelData = SortPixelData(pixelData);
            GetBeamHeightAndWidth();
            PixelData = ConvertRawDataToObjects(Labels, RawPixelData);
        }
        private motorGroup ExtractMotorData(string[][] _data)
        {
            motorGroup motors = new motorGroup();

            string _pattern;
            double _delayAfterMovement, _stayAtEnd;

            _pattern = _data[0][0];

            motors.Devices.Add(GetDeviceData(_data, 2));
            motors.Devices.Add(GetDeviceData(_data, 6));

            Double.TryParse(_data[10][1], out _delayAfterMovement);
            Double.TryParse(_data[11][1], out _stayAtEnd);

            motors.DelayAfterMovement = _delayAfterMovement;
            motors.Pattern            = _pattern;
            motors.StayAtEnd          = _stayAtEnd;

            return(motors);
        }