MCPcopy Create free account
hub / github.com/NatLabRockies/OpenStudio / expandTimeSeries

Method expandTimeSeries

src/utilities/sql/SqlFile_Impl.cpp:3413–3455  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

3411 }
3412
3413 SqlFileTimeSeriesQueryVector SqlFile_Impl::expandTimeSeries(const SqlFileTimeSeriesQuery& query) {
3414 SqlFileTimeSeriesQueryVector result;
3415
3416 StringVector tsNames;
3417 if (query.timeSeries() && query.timeSeries().get().name()) {
3418 if (query.timeSeries().get().name()) {
3419 tsNames.push_back(*(query.timeSeries().get().name()));
3420 }
3421 } else {
3422 // get candidate time series names
3423 if (query.environment() && query.environment().get().name() && query.reportingFrequency()) {
3424 tsNames = availableVariableNames(query.environment().get().name().get(), query.reportingFrequency().get().valueDescription());
3425 } else {
3426 // get all and let other function filter out
3427 tsNames = availableTimeSeries();
3428 }
3429 // filter by regex if applicable
3430 if (query.timeSeries()) {
3431 OS_ASSERT(query.timeSeries().get().regex());
3432 boost::regex re = query.timeSeries().get().regex().get();
3433 for (auto it = tsNames.begin(); it != tsNames.end();) {
3434 if (!boost::regex_match(*it, re)) {
3435 it = tsNames.erase(it);
3436 continue;
3437 }
3438 ++it;
3439 }
3440 }
3441 }
3442
3443 // make one query per time series name
3444 for (const std::string& tsName : tsNames) {
3445 SqlFileTimeSeriesQuery wQuery(query);
3446 TimeSeriesIdentifier tsId(tsName);
3447 wQuery.setTimeSeries(tsId);
3448 result.push_back(wQuery);
3449 }
3450
3451 // check result queries for consistency
3452 mf_makeConsistent(result);
3453
3454 return result;
3455 }
3456
3457 SqlFileTimeSeriesQueryVector SqlFile_Impl::expandKeyValues(const SqlFileTimeSeriesQuery& query) {
3458 SqlFileTimeSeriesQueryVector result;

Callers

nothing calls this directly

Calls 12

environmentMethod · 0.80
valueDescriptionMethod · 0.80
regexMethod · 0.80
beginMethod · 0.80
timeSeriesMethod · 0.45
nameMethod · 0.45
getMethod · 0.45
push_backMethod · 0.45
reportingFrequencyMethod · 0.45
endMethod · 0.45
eraseMethod · 0.45
setTimeSeriesMethod · 0.45

Tested by

no test coverage detected