diff --git a/modules/dsn/managers/radecmanager.cpp b/modules/dsn/managers/radecmanager.cpp index 4adec6e2d3..3fad0c4f65 100644 --- a/modules/dsn/managers/radecmanager.cpp +++ b/modules/dsn/managers/radecmanager.cpp @@ -81,26 +81,30 @@ namespace openspace { bool RadecManager::radecParser(int index) const{ std::string filename; - filename = _dataFiles[index]; - std::ifstream ifs(filename); - nlohmann::json j = nlohmann::json::parse(ifs); + if (index > -1 && index < _dataFiles.size()) { + filename = _dataFiles[index]; + std::ifstream ifs(filename); + nlohmann::json j = nlohmann::json::parse(ifs); - int objectCounter = 0; - for (const auto& pos : j["Positions"]) { - objectCounter++; - try { - position.timeStamp = pos["TimeStamp"].get(); - position.ra = pos["RADn"].get(); - position.dec = pos["DecDn"].get(); - position.range = pos["GeoRngDn"].get(); - position.lightTravelTime = pos["DLT"].get(); - } - catch (const std::exception& e) { - LERROR(fmt::format("{}: Error in json object number {} while reading file '{}'", objectIdentifier, objectCounter, filename)); - } - RadecManager::positions.push_back(position); + int objectCounter = 0; + for (const auto& pos : j["Positions"]) { + objectCounter++; + try { + position.timeStamp = pos["TimeStamp"].get(); + position.ra = pos["RADn"].get(); + position.dec = pos["DecDn"].get(); + position.range = pos["GeoRngDn"].get(); + position.lightTravelTime = pos["DLT"].get(); + } + catch (const std::exception& e) { + LERROR(fmt::format("{}: Error in json object number {} while reading file '{}'", objectIdentifier, objectCounter, filename)); + } + RadecManager::positions.push_back(position); + } + return true; } - return true; + else return false; + } void RadecManager::updateActiveMinute(int idx) const{