function [tvec, data, d] = golem_data(shot, diagn) % Simple interface for GOLEM database % Use: [tvec, data] = golem_data(10011, 'loop_voltage') % plot(tvec, data) % tvec - time vector Nx1 % data - data matrix NxM % d - object containing all availible informations % % Example: % [tvec,data,obj1] = golem_data(10689 , 'electron_temperature'); % [~,~,obj2] = golem_data(10689 , 'spectrometr\temperature'); % hold all % plot(tvec,data) % or use object: plot(obj1.tvec, obj1.data) % errorbar(obj2.tvec, obj2.data,obj2.data_err(:,1), obj2.data_err(:,2) ) % xlabel(obj2.ax_labels(1,:)) % ylabel(obj2.ax_labels(2,:)) % legend({obj1.name, obj2.name}) % axis([obj1.plasma_start, obj1.plasma_end, 0, inf]) % title(obj1.info) % hold off addr_prefix='http://golem.fjfi.cvut.cz/utils/data/'; temp = 'temp/'; if ~exist(temp, 'file') mkdir(temp); end local_file = [temp, diagn, '_', int2str(shot), '.mat']; remote_file = [addr_prefix, int2str(shot), '/',diagn, '.mat ']; if ~ exist(local_file, 'file') urlwrite(remote_file, local_file); end try d = load(local_file); catch error(['Missing diagnostic ', diagn, ' in shot ', num2str(shot)]) tvec = []; data=[]; d=[]; return end data = d.data; if isfield(d, 'tvec') tvec = d.tvec; elseif isfield(d, 't_start') tvec = linspace(d.t_start, d.t_end, length(data))'; else tvec = []; end d.tvec = tvec; end