mirror of
https://github.com/OpenSpace/OpenSpace.git
synced 2026-05-20 19:39:17 -05:00
get dimensions from metadata differently, documentation, change dataprocessor method args to const
This commit is contained in:
@@ -2,7 +2,7 @@
|
||||
* *
|
||||
* OpenSpace *
|
||||
* *
|
||||
* Copyright (c) 2014-2015 *
|
||||
* Copyright (c) 2014-2016 *
|
||||
* *
|
||||
* Permission is hereby granted, free of charge, to any person obtaining a copy of this *
|
||||
* software and associated documentation files (the "Software"), to deal in the Software *
|
||||
@@ -38,9 +38,39 @@ public:
|
||||
DataProcessor();
|
||||
~DataProcessor();
|
||||
|
||||
virtual std::vector<std::string> readMetadata(std::string data, glm::size3_t& dimensions) = 0;
|
||||
virtual void addDataValues(std::string data, properties::SelectionProperty& dataOptions) = 0;
|
||||
virtual std::vector<float*> processData(std::string data, properties::SelectionProperty& dataOptions, glm::size3_t& dimensions) = 0;
|
||||
/**
|
||||
* Reads and returns the metadata from the data file.
|
||||
*
|
||||
* @param data The data file content to read metadata from
|
||||
* @param dimensions the dimensions of the data, will be modified
|
||||
*
|
||||
* @return An array with data variable options
|
||||
*/
|
||||
virtual std::vector<std::string> readMetadata(const std::string& data, glm::size3_t& dimensions) = 0;
|
||||
|
||||
/**
|
||||
* Function that initializes the dataprocessor for a new data variable by
|
||||
* calculating its min & max value, standard deviation, sum and histogram for a
|
||||
* given data file. This file will then be used as reference when normalizing, filtering
|
||||
* and give auto-contrast
|
||||
*
|
||||
* @param data The data file content to add data from
|
||||
* @param dataOptions a list of dataoptions that you want to pre-process
|
||||
*/
|
||||
virtual void addDataValues(const std::string& data, const properties::SelectionProperty& dataOptions) = 0;
|
||||
|
||||
/**
|
||||
* Will take raw input data as a string and return it as a vector of
|
||||
* float arrays (one float array per data variable that is selected).
|
||||
* Before returning it, the data is processed with normalization and
|
||||
* an optional histogram equalization.
|
||||
*
|
||||
* @param data input data. directly from data file (file contents)
|
||||
* @param dataOptions Pass in the dataOptions property from the Renderable
|
||||
* @param dimensions Dimensions of the data
|
||||
* @return Processed data
|
||||
*/
|
||||
virtual std::vector<float*> processData(const std::string& data, const properties::SelectionProperty& dataOptions, const glm::size3_t& dimensions) = 0;
|
||||
|
||||
void useLog(bool useLog);
|
||||
void useHistogram(bool useHistogram);
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
* *
|
||||
* OpenSpace *
|
||||
* *
|
||||
* Copyright (c) 2014-2015 *
|
||||
* Copyright (c) 2014-2016 *
|
||||
* *
|
||||
* Permission is hereby granted, free of charge, to any person obtaining a copy of this *
|
||||
* software and associated documentation files (the "Software"), to deal in the Software *
|
||||
@@ -39,20 +39,21 @@ DataProcessorJson::DataProcessorJson()
|
||||
|
||||
DataProcessorJson::~DataProcessorJson(){}
|
||||
|
||||
std::vector<std::string> DataProcessorJson::readMetadata(std::string data, glm::size3_t& dimensions){
|
||||
std::vector<std::string> DataProcessorJson::readMetadata(const std::string& data, glm::size3_t& dimensions){
|
||||
std::vector<std::string> options = std::vector<std::string>();
|
||||
if(!data.empty()){
|
||||
json j = json::parse(data);
|
||||
json variables = j["variables"];
|
||||
|
||||
for(json::iterator it = variables.begin(); it != variables.end(); ++it){
|
||||
std::string option = it.key();
|
||||
if(option == "ep"){
|
||||
json row = it.value();
|
||||
json col = row.at(0);
|
||||
//Setting dimensions
|
||||
json::iterator it = variables.begin();
|
||||
json row = it.value();
|
||||
json col = row.at(0);
|
||||
dimensions = glm::size3_t(col.size(), row.size(), 1);
|
||||
|
||||
dimensions = glm::size3_t(col.size(), row.size(), 1);
|
||||
}
|
||||
//Reading options
|
||||
for(; it != variables.end(); ++it){
|
||||
std::string option = it.key();
|
||||
|
||||
if(_coordinateVariables.find(option) == _coordinateVariables.end()){
|
||||
options.push_back(option);
|
||||
@@ -62,7 +63,7 @@ std::vector<std::string> DataProcessorJson::readMetadata(std::string data, glm::
|
||||
return options;
|
||||
}
|
||||
|
||||
void DataProcessorJson::addDataValues(std::string data, properties::SelectionProperty& dataOptions){
|
||||
void DataProcessorJson::addDataValues(const std::string& data, const properties::SelectionProperty& dataOptions){
|
||||
int numOptions = dataOptions.options().size();
|
||||
initializeVectors(numOptions);
|
||||
|
||||
@@ -99,7 +100,7 @@ void DataProcessorJson::addDataValues(std::string data, properties::SelectionPro
|
||||
}
|
||||
}
|
||||
|
||||
std::vector<float*> DataProcessorJson::processData(std::string data, properties::SelectionProperty& dataOptions, glm::size3_t& dimensions){
|
||||
std::vector<float*> DataProcessorJson::processData(const std::string& data, const properties::SelectionProperty& dataOptions, const glm::size3_t& dimensions){
|
||||
if(!data.empty()){
|
||||
json j = json::parse(data);
|
||||
json variables = j["variables"];
|
||||
|
||||
@@ -33,9 +33,9 @@ public:
|
||||
DataProcessorJson();
|
||||
~DataProcessorJson();
|
||||
|
||||
virtual std::vector<std::string> readMetadata(std::string data, glm::size3_t& dimensions) override;
|
||||
virtual void addDataValues(std::string data, properties::SelectionProperty& dataOptions) override;
|
||||
virtual std::vector<float*> processData(std::string data, properties::SelectionProperty& dataOptions, glm::size3_t& dimensions) override;
|
||||
std::vector<std::string> readMetadata(const std::string& data, glm::size3_t& dimensions) override;
|
||||
void addDataValues(const std::string& data, const properties::SelectionProperty& dataOptions) override;
|
||||
std::vector<float*> processData(const std::string& data, const properties::SelectionProperty& dataOptions, const glm::size3_t& dimensions) override;
|
||||
};
|
||||
|
||||
}// namespace
|
||||
|
||||
@@ -42,7 +42,7 @@ DataProcessorKameleon::DataProcessorKameleon()
|
||||
DataProcessorKameleon::~DataProcessorKameleon(){}
|
||||
|
||||
|
||||
std::vector<std::string> DataProcessorKameleon::readMetadata(std::string path, glm::size3_t& dimensions){
|
||||
std::vector<std::string> DataProcessorKameleon::readMetadata(const std::string& path, glm::size3_t& dimensions){
|
||||
|
||||
if(!path.empty()){
|
||||
if(path != _kwPath || !_kw){
|
||||
@@ -64,7 +64,7 @@ std::vector<std::string> DataProcessorKameleon::readMetadata(std::string path, g
|
||||
return std::vector<std::string>();
|
||||
}
|
||||
|
||||
void DataProcessorKameleon::addDataValues(std::string path, properties::SelectionProperty& dataOptions){
|
||||
void DataProcessorKameleon::addDataValues(const std::string& path, const properties::SelectionProperty& dataOptions){
|
||||
int numOptions = dataOptions.options().size();
|
||||
initializeVectors(numOptions);
|
||||
|
||||
@@ -98,13 +98,13 @@ void DataProcessorKameleon::addDataValues(std::string path, properties::Selectio
|
||||
add(optionValues, sum);
|
||||
}
|
||||
}
|
||||
std::vector<float*> DataProcessorKameleon::processData(std::string path, properties::SelectionProperty& dataOptions, glm::size3_t& dimensions, float slice){
|
||||
std::vector<float*> DataProcessorKameleon::processData(const std::string path, const properties::SelectionProperty& dataOptions, const glm::size3_t& dimensions, float slice){
|
||||
_slice = slice;
|
||||
// _dimensions = dimensions;
|
||||
return processData(path, dataOptions, dimensions);
|
||||
}
|
||||
|
||||
std::vector<float*> DataProcessorKameleon::processData(std::string path, properties::SelectionProperty& dataOptions, glm::size3_t& dimensions){
|
||||
std::vector<float*> DataProcessorKameleon::processData(const std::string& path, const properties::SelectionProperty& dataOptions, const glm::size3_t& dimensions){
|
||||
int numOptions = dataOptions.options().size();
|
||||
|
||||
if(!path.empty()){
|
||||
|
||||
@@ -29,15 +29,19 @@
|
||||
|
||||
namespace openspace {
|
||||
|
||||
/**
|
||||
* See DataProcessor for documentation.
|
||||
* Instead of data file content as first argument, pass path to cdf file for all overriden functions
|
||||
*/
|
||||
class DataProcessorKameleon : public DataProcessor {
|
||||
public:
|
||||
DataProcessorKameleon();
|
||||
~DataProcessorKameleon();
|
||||
|
||||
virtual std::vector<std::string> readMetadata(std::string path, glm::size3_t& dimensions) override;
|
||||
virtual void addDataValues(std::string data, properties::SelectionProperty& dataOptions) override;
|
||||
virtual std::vector<float*> processData(std::string path, properties::SelectionProperty& dataOptions, glm::size3_t& dimensions) override;
|
||||
virtual std::vector<float*> processData(std::string path, properties::SelectionProperty& dataOptions, glm::size3_t& dimensions, float slice);
|
||||
std::vector<std::string> readMetadata(const std::string& path, glm::size3_t& dimensions) override;
|
||||
void addDataValues(const std::string& path, const properties::SelectionProperty& dataOptions) override;
|
||||
std::vector<float*> processData(const std::string& path, const properties::SelectionProperty& dataOptions, const glm::size3_t& dimensions) override;
|
||||
std::vector<float*> processData(const std::string path, const properties::SelectionProperty& dataOptions, const glm::size3_t& dimensions, float slice);
|
||||
void dimensions(glm::size3_t dimensions){_dimensions = dimensions;}
|
||||
|
||||
private:
|
||||
|
||||
@@ -43,7 +43,7 @@ DataProcessorText::DataProcessorText()
|
||||
|
||||
DataProcessorText::~DataProcessorText(){}
|
||||
|
||||
std::vector<std::string> DataProcessorText::readMetadata(std::string data, glm::size3_t& dimensions){
|
||||
std::vector<std::string> DataProcessorText::readMetadata(const std::string& data, glm::size3_t& dimensions){
|
||||
//The intresting part of the file looks like this:
|
||||
//# Output data: field with 61x61=3721 elements
|
||||
//# x y z N V_x B_x
|
||||
@@ -84,7 +84,7 @@ std::vector<std::string> DataProcessorText::readMetadata(std::string data, glm::
|
||||
return options;
|
||||
}
|
||||
|
||||
void DataProcessorText::addDataValues(std::string data, properties::SelectionProperty& dataOptions){
|
||||
void DataProcessorText::addDataValues(const std::string& data, const properties::SelectionProperty& dataOptions){
|
||||
int numOptions = dataOptions.options().size();
|
||||
initializeVectors(numOptions);
|
||||
|
||||
@@ -142,7 +142,7 @@ void DataProcessorText::addDataValues(std::string data, properties::SelectionPro
|
||||
}
|
||||
}
|
||||
|
||||
std::vector<float*> DataProcessorText::processData(std::string data, properties::SelectionProperty& dataOptions, glm::size3_t& dimensions){
|
||||
std::vector<float*> DataProcessorText::processData(const std::string& data, const properties::SelectionProperty& dataOptions, const glm::size3_t& dimensions){
|
||||
if(!data.empty()){
|
||||
|
||||
std::string line;
|
||||
|
||||
@@ -33,9 +33,9 @@ public:
|
||||
DataProcessorText();
|
||||
~DataProcessorText();
|
||||
|
||||
virtual std::vector<std::string> readMetadata(std::string data, glm::size3_t& dimensions) override;
|
||||
virtual void addDataValues(std::string data, properties::SelectionProperty& dataOptions) override;
|
||||
virtual std::vector<float*> processData(std::string data, properties::SelectionProperty& dataOptions, glm::size3_t& dimensions) override;
|
||||
std::vector<std::string> readMetadata(const std::string& data, glm::size3_t& dimensions) override;
|
||||
void addDataValues(const std::string& data, const properties::SelectionProperty& dataOptions) override;
|
||||
std::vector<float*> processData(const std::string& data, const properties::SelectionProperty& dataOptions, const glm::size3_t& dimensions) override;
|
||||
|
||||
private:
|
||||
// void initialize(int numOptions);
|
||||
|
||||
Reference in New Issue
Block a user