function [headmodel] = ft_read_vol(filename, varargin) % FT_READ_VOL reads a volume conduction model from various manufacturer % specific files. Currently supported are ASA, CTF, Neuromag, MBFYS % and Matlab. % % Use as % headmodel = ft_read_vol(filename, ...) % % Additional options should be specified in key-value pairs and can be % 'fileformat' string % % The volume conduction model is represented as a structure with fields % that depend on the type of model. % % See also FT_TRANSFORM_VOL, FT_PREPARE_VOL_SENS, FT_COMPUTE_LEADFIELD % Copyright (C) 2008-2013 Robert Oostenveld % % This file is part of FieldTrip, see http://www.fieldtriptoolbox.org % for the documentation and details. % % FieldTrip is free software: you can redistribute it and/or modify % it under the terms of the GNU General Public License as published by % the Free Software Foundation, either version 3 of the License, or % (at your option) any later version. % % FieldTrip is distributed in the hope that it will be useful, % but WITHOUT ANY WARRANTY; without even the implied warranty of % MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the % GNU General Public License for more details. % % You should have received a copy of the GNU General Public License % along with FieldTrip. If not, see . % % $Id$ % optionally get the data from the URL and make a temporary local copy filename = fetch_url(filename); % test whether the file exists if ~exist(filename) error(sprintf('file ''%s'' does not exist', filename)); end % get the options fileformat = ft_getopt(varargin, 'fileformat', ft_filetype(filename)); switch fileformat case 'matlab' % FIXME in the future the file should contain the variable 'headmodel' instead of vol headmodel = loadvar(filename, 'vol'); case 'ctf_hdm' headmodel = read_ctf_hdm(filename); case 'asa_vol' headmodel = read_asa_vol(filename); headmodel.type = 'asa'; case 'mbfys_ama' ama = loadama(filename); headmodel = ama2vol(ama); otherwise error('unknown fileformat for volume conductor model'); end % this will ensure that the structure is up to date, e.g. that the type is correct and that it has units headmodel = ft_datatype_headmodel(headmodel);