mirror of
https://github.com/OpenSpace/OpenSpace.git
synced 2026-01-31 08:29:04 -06:00
Able to read data every minute, need to be optimized
This commit is contained in:
@@ -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')
|
||||
|
||||
|
||||
@@ -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",
|
||||
|
||||
@@ -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;
|
||||
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
@@ -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 */
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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() {
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user