Skip to content

Commit

Permalink
Standardized experiment string formats
Browse files Browse the repository at this point in the history
  • Loading branch information
corviday committed Feb 22, 2018
1 parent e131c05 commit 914b28d
Show file tree
Hide file tree
Showing 2 changed files with 23 additions and 2 deletions.
12 changes: 11 additions & 1 deletion src/components/AppMixin/AppMixin.js
Original file line number Diff line number Diff line change
Expand Up @@ -59,6 +59,14 @@ var AppMixin = {
var start = timestampToYear(response.data[key].start_date);
var end = timestampToYear(response.data[key].end_date);

// Stopgap measure to deal with the fact that experiment string formats
// vary between climdex files ("historical, rcp26") and GCM outputs
// ("historical,rcp26"). Formats experiment strings to include a space.
// This formatting is undone to run queries against the database by
// ce-backend.guessExperimentFormatFromVariable()
// TODO: remove this when no longer needed.
var normalizedExp = String(response.data[key].experiment).replace(',r', ', r');

//If this app has a dataset filter defined, filter the data
if(typeof this.datasetFilter == "undefined" ||
this.datasetFilter(response.data[key])) {
Expand All @@ -67,8 +75,10 @@ var AppMixin = {
variable_id: vars[v],
start_date: start,
end_date: end,
experiment: normalizedExp,
variable_name: response.data[key].variables[vars[v]],
}, _.omit(response.data[key], 'variables', 'start_date', 'end_date', 'modtime')));
}, _.omit(response.data[key], 'variables', 'start_date', 'end_date',
'modtime', 'experiment')));
}
}
}
Expand Down
13 changes: 12 additions & 1 deletion src/data-services/ce-backend.js
Original file line number Diff line number Diff line change
Expand Up @@ -43,19 +43,30 @@ function getData(
// area
// Those parameters are all props of components concerned, and so are
// grouped as a single object for convenience.

let queryExpString = guessExperimentFormatFromVariable(variable_id, experiment);
return axios({
baseURL: urljoin(CE_BACKEND_URL, 'data'),
params: {
ensemble_name: ensemble_name,
model: model_id,
variable: variable_id,
emission: experiment,
emission: queryExpString,
timescale: timescale,
time: timeidx,
area: area || '',
},
});
}

// Downscaled GCM data has experiment strings like 'historical,rcp26'
// while climdex data uses 'historical, rcp26'
// These are regularized by AppMixin.updateMetadata(), but the 'data'
// API backend requires the original format.
// TODO: remove this function when no longer needed.
function guessExperimentFormatFromVariable(variable, experiment) {
return variable.search("ETCCDI") != -1 ? experiment : experiment.replace(' ', '');
}


export { getTimeMetadata, getTimeseries, getData };

0 comments on commit 914b28d

Please sign in to comment.