Skip to content
Snippets Groups Projects
Commit d1528a66 authored by Dóra Kocsis's avatar Dóra Kocsis
Browse files

quick fix: get_dataset.m

parent d0aae9e2
No related branches found
No related tags found
No related merge requests found
function [dd, dat] = get_dataset(provider,dataset, varargin)
if varargin > 0
options = parse_options(varargin)
if numel(varargin) > 0
options = parse_options(varargin);
else
options = ['?limit=1000&offset=0&q=&observations=1&align_periods=1&' ...
'dimensions={}']
'dimensions={}'];
end
% https://api.db.nomics.world/v22/series/AMECO/UVGD?limit=1000&offset=0&q=&observations=1&align_periods=1&dimensions=%7B%7D
%url = join(['https://api.db.nomics.world/v22/series/', provider, '/',...
% dataset ])
%url = url + options
%json = urlread(join(url))
%save test json
f = fopen("test_dataset.json");
json = fgets(f);
fclose(f);
dat = jsondecode(json);
default_api_base_url = 'https://api.db.nomics.world/v22/series/';
url = join([default_api_base_url, provider, '/', dataset, options]);
dat = webread(join(url));
docs = dat.series.docs;
nseries = length(docs);
nseries = dat.dataset.nb_series;
nrow = 1;
for id = 1:nseries
nrow = nrow + length(docs(id).period);
......@@ -77,27 +70,27 @@ for i = 1:nseries
end
function options_str = parse_options(arguments)
i = 1
options = struct()
i = 1;
options = struct();
options.limit = 1000;
options.dimensions = '{}'
options.mask = ''
options.dimensions = '{}';
options.mask = '';
while i <= length(arguments)
if arguments{1} == 'limit'
options.limit = arguments{2}
i = i + 2
options.limit = arguments{2};
i = i + 2;
elseif arguments{1} == 'dimensions'
if ~isempty(options.mask)
error('rdb: you can''t use both option dimension and option mask')
error('rdb: you can''t use both option dimension and option mask');
end
elseif arguments =='mask'
if options.dimensions ~= '{}'
error('rdb: you can''t use both option dimension and option mask')
error('rdb: you can''t use both option dimension and option mask');
end
options.mask = arguments{2}
i = i+2
options.mask = arguments{2};
i = i+2;
else
disp_usage()
disp_usage();
end
end
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment