Able to read data every minute, need to be optimized

This commit is contained in:
Agnes Heppich
2018-11-27 16:07:54 -05:00
parent cd81474f5e
commit 71066fe774
9 changed files with 47 additions and 18 deletions

View File

@@ -16,6 +16,12 @@ asset.require('scene/solarsystem/missions/voyager2/voyager2')
asset.require('scene/solarsystem/missions/voyager1/trails')
asset.require('scene/solarsystem/dsn/testRADEC')
--labels
asset.require('scene/digitaluniverse/starlabels')
-- asset.require('scene/digitaluniverse/dwarfs')
-- Stations
asset.require('scene/solarsystem/dsn/stations')

View File

@@ -1,5 +1,5 @@
local assetHelper = asset.require('util/asset_helper')
local dataFolder = openspace.absPath("../../../sync/http/dsn_data/1/positioning/VGR1")
local dataFolder = openspace.absPath("../../../sync/http/dsn_data/1/positioning/MRONEW")
local models = asset.syncedResource({
Name = "Dsn models",

View File

@@ -124,7 +124,7 @@ private:
properties::Vec2Property _fadeInDistance;
properties::BoolProperty _disableFadeInDistance;
properties::FloatProperty _billboardMaxSize;
properties::FloatProperty _billboardMinSize;
properties::FloatProperty _billboardMinSize;
properties::FloatProperty _correctionSizeEndDistance;
properties::FloatProperty _correctionSizeFactor;

View File

@@ -131,10 +131,10 @@ namespace openspace {
return DataFileHelper::getFileNameTime(filename, FilenameSize);
}
/*get a vector of all filenames, must have format YYY-DDDT*/
std::vector<double> DataFileHelper::getDaysFromFileNames(std::vector<std::string> _dataFiles) {
std::vector<double> DataFileHelper::getDaysFromFileNames(std::vector<std::string> dataFiles) {
// number of characters in filename (excluding '.json')
constexpr const int FilenameSize = 9;
return DataFileHelper::extractTriggerTimesFromFileNames(_dataFiles, FilenameSize);
return DataFileHelper::extractTriggerTimesFromFileNames(dataFiles, FilenameSize);
}
/*Get one hour, must have format YYYY-DDDTHH*/
std::string DataFileHelper::getHourFromFileName(std::string filename) {
@@ -143,10 +143,23 @@ namespace openspace {
return DataFileHelper::getFileNameTime(filename, FilenameSize);
}
/*Get a vector of all hour, must have format YYYY-DDDTHH*/
std::vector<double> DataFileHelper::getHoursFromFileNames(std::vector<std::string> _dataFiles) {
std::vector<double> DataFileHelper::getHoursFromFileNames(std::vector<std::string> dataFiles) {
// number of characters in filename (excluding '.json')
constexpr const int FilenameSize = 11;
return DataFileHelper::extractTriggerTimesFromFileNames(_dataFiles, FilenameSize);
return DataFileHelper::extractTriggerTimesFromFileNames(dataFiles, FilenameSize);
}
/*Get a vector of all hour, must have format YYYY-DDDTHHMM*/
std::string DataFileHelper::getMinuteFromFileName(std::string filename) {
// number of characters in filename (excluding '.json')
constexpr const int FilenameSize = 14;
std::string newName = filename.replace(70, 1, ":");
return DataFileHelper::getFileNameTime(newName, FilenameSize);
}
std::vector<double> DataFileHelper::geMinutesFromFileNames(std::vector<std::string> dataFiles) {
// number of characters in filename (excluding '.json')
constexpr const int FilenameSize = 14;
return DataFileHelper::extractTriggerTimesFromFileNames(dataFiles, FilenameSize);
}
std::string DataFileHelper::getFileNameTime(std::string filename, const int FilenameSize) {
@@ -164,7 +177,11 @@ namespace openspace {
std::vector<double> DataFileHelper::extractTriggerTimesFromFileNames(std::vector<std::string> dataFiles, const int FilenameSize) {
std::vector<double> fileStartTimes;
for (const std::string& filePath : dataFiles) {
std::string timeString = getFileNameTime(filePath, FilenameSize);
if(FilenameSize == 14)
timeString.replace(11, 1, ":");
const double triggerTime = Time::convertTime(timeString);
fileStartTimes.push_back(triggerTime);
}

View File

@@ -39,8 +39,11 @@ namespace openspace {
static bool checkFileNames(const char* identifier, std::unique_ptr<ghoul::Dictionary> &dictionary, std::vector<std::string> &dataFiles);
static std::string getDayFromFileName(std::string filename);
static std::string getHourFromFileName(std::string filename);
static std::vector<double> getDaysFromFileNames(std::vector<std::string> _dataFiles);
static std::vector<double> getHoursFromFileNames(std::vector<std::string> _dataFiles);
static std::string getMinuteFromFileName(std::string filename);
static std::vector<double> getDaysFromFileNames(std::vector<std::string> dataFiles);
static std::vector<double> getHoursFromFileNames(std::vector<std::string> dataFiles);
static std::vector <double> geMinutesFromFileNames(std::vector<std::string> dataFiles);
/* Extracts the timestamp from the filename */
static std::string getFileNameTime(std::string filename, const int FilenameSize);
/* Extracts the timestamp from a vector of filenames */

View File

@@ -39,7 +39,8 @@ namespace openspace {
}
glm::vec3 RadecManager::GetPosForTime(double time) {
std::vector<double> timeDoubles = DataFileHelper::getHoursFromFileNames(_dataFiles); //save as member
// std::vector<double> timeDoubles = DataFileHelper::getHoursFromFileNames(_dataFiles); //save as member
std::vector<double> timeDoubles = DataFileHelper::geMinutesFromFileNames(_dataFiles); //save as member
int idx = RenderableSignals::findFileIndexForCurrentTime(time, timeDoubles);
//If the current hour in open space found in filesystem, parse the data and return the ra dec values from that file.
@@ -57,15 +58,15 @@ namespace openspace {
filename = _dataFiles[index];
std::string startTimeString = DataFileHelper::getHourFromFileName(filename);
std::string startTimeString = DataFileHelper::getMinuteFromFileName(filename);
const double triggerTime = Time::convertTime(startTimeString);
_checkFileTime = triggerTime;
std::ifstream ifs(filename);
nlohmann::json j = nlohmann::json::parse(ifs);
_ra = j["RADn"].get<double>();
_dec = j["DecDn"].get<double>();
_range = j["GeoRngDn"].get<double>();
_ra = j["RAUp"].get<double>();
_dec = j["DecUp"].get<double>();
_range = j["GeoRngUp"].get<double>();
return true;
}

View File

@@ -373,6 +373,7 @@ void RenderableSignals::pushSignalDataToVertexArray(SignalManager::Signal signal
double distance = getDistance(signal.dishName, signal.spacecraft);
double timeSinceStart = signal.timeSinceStart;
glm::vec3 testPOS = getSuitablePrecisionPositionForSceneGraphNode("testRADEC");
//fill the render array
_vertexArray.push_back(posStation.x);
@@ -392,9 +393,9 @@ void RenderableSignals::pushSignalDataToVertexArray(SignalManager::Signal signal
}
_vertexArray.push_back(timeSinceStart);
_vertexArray.push_back(posSpacecraft.x);
_vertexArray.push_back(posSpacecraft.y);
_vertexArray.push_back(posSpacecraft.z);
_vertexArray.push_back(testPOS.x);
_vertexArray.push_back(testPOS.y);
_vertexArray.push_back(testPOS.z);
_vertexArray.push_back(color.r);
_vertexArray.push_back(color.g);

View File

@@ -33,7 +33,7 @@ in float timeSinceStart;
float lightSpeed = 299792458.0; // expressed in m/s
float signalSizeFactor = 2000;
float baseOpacity = 0.3;
float baseOpacity = 0.9;
Fragment getFragment() {

View File

@@ -125,7 +125,8 @@ glm::dvec3 RadecTranslation::transformCartesianCoordinates(glm::vec3 pos) const
}
glm::dvec3 RadecTranslation::position(const UpdateData& data) const{
double endTime = 3600;
//double endTime = 3600;
double endTime = 60;
const bool isTimeInFileInterval = (data.time.j2000Seconds() >= RadecManager::_checkFileTime) &&
(data.time.j2000Seconds() < RadecManager::_checkFileTime + endTime); //if true -> time is within file interval