From 6c453eeff5dd79251ff62df614043d2fdfc6b645 Mon Sep 17 00:00:00 2001 From: ElonOlsson Date: Fri, 16 Dec 2022 14:15:39 -0500 Subject: [PATCH] almost done. creates file but crashes after finished --- .../tasks/fieldlines/fieldlineconversion.task | 2 +- .../tasks/kameleonvolumetofieldlinestask.cpp | 22 ++++++++++++++----- .../tasks/kameleonvolumetofieldlinestask.h | 9 ++++---- 3 files changed, 23 insertions(+), 10 deletions(-) diff --git a/data/tasks/fieldlines/fieldlineconversion.task b/data/tasks/fieldlines/fieldlineconversion.task index bc894189c4..bda5463c78 100644 --- a/data/tasks/fieldlines/fieldlineconversion.task +++ b/data/tasks/fieldlines/fieldlineconversion.task @@ -8,7 +8,7 @@ return { Seedpoints = "C:/Users/eolsson/Documents/openspace/data/2012/seeds", TracingVar = "b", OutputFolder = "C:/Users/eolsson/Documents/openspace/data/2012/test1Output", - OutputType = "Json", + OutputType = "Osfls", ExtraVars = {rho, p} } } diff --git a/modules/fieldlinessequence/tasks/kameleonvolumetofieldlinestask.cpp b/modules/fieldlinessequence/tasks/kameleonvolumetofieldlinestask.cpp index f245d115e3..bcd80232da 100644 --- a/modules/fieldlinessequence/tasks/kameleonvolumetofieldlinestask.cpp +++ b/modules/fieldlinessequence/tasks/kameleonvolumetofieldlinestask.cpp @@ -30,6 +30,7 @@ #include #include #include +#include #include #include #include @@ -57,7 +58,7 @@ namespace { // The folder to write the files to std::filesystem::path outputFolder [[codegen::directory()]]; - enum class ConversionType { + enum class [[codegen::map(openspace::KameleonVolumeToFieldlinesTask::conversionType)]] ConversionType { Json, Osfls }; @@ -78,14 +79,20 @@ documentation::Documentation KameleonVolumeToFieldlinesTask::documentation() { KameleonVolumeToFieldlinesTask::KameleonVolumeToFieldlinesTask( const ghoul::Dictionary& dictionary) { + SpiceManager::ref().loadKernel(absPath("${ASSETS}/spice/naif0012.tls").string()); const Parameters p = codegen::bake(dictionary); _inputPath = p.input; _seedpointsPath = p.seedpoints; _manualTimeOffset = p.manualTimeOffset.value_or(_manualTimeOffset); _outputFolder = p.outputFolder; + if (&_outputFolder.string().back() != "/") { + _outputFolder += "/"; + } - switch (p.outputType) { + _outputType = codegen::map(p.outputType); + + /* switch (p.outputType) { case Parameters::ConversionType::Json: break; _outputType = conversionType::Json; @@ -94,9 +101,9 @@ KameleonVolumeToFieldlinesTask::KameleonVolumeToFieldlinesTask( break; default: LERROR("outputType must be either json or osfls"); - } + }*/ - _tracingVar= p.tracingVar; + _tracingVar = p.tracingVar; //_tracingVar = p.tracingVar.value_or(_tractingVar); if (p.extraVars.has_value()) { @@ -122,6 +129,11 @@ KameleonVolumeToFieldlinesTask::KameleonVolumeToFieldlinesTask( } +KameleonVolumeToFieldlinesTask::~KameleonVolumeToFieldlinesTask() { + SpiceManager::ref().unloadKernel(absPath("${ASSETS}/spice/naif0012.tls").string()); + +} + std::string KameleonVolumeToFieldlinesTask::description() { return fmt::format( "Extract fieldline data from cdf file {} and seedpoint file {}. " @@ -165,7 +177,7 @@ void KameleonVolumeToFieldlinesTask::perform( timeStr.replace(13, 1, "-"); timeStr.replace(16, 1, "-"); timeStr.replace(19, 1, "-"); - std::string fileName = timeStr + "json"; + std::string fileName = timeStr; newState.saveStateToJson(_outputFolder.string() + fileName); } } diff --git a/modules/fieldlinessequence/tasks/kameleonvolumetofieldlinestask.h b/modules/fieldlinessequence/tasks/kameleonvolumetofieldlinestask.h index 2b87337f34..c2d37f70d2 100644 --- a/modules/fieldlinessequence/tasks/kameleonvolumetofieldlinestask.h +++ b/modules/fieldlinessequence/tasks/kameleonvolumetofieldlinestask.h @@ -34,17 +34,18 @@ namespace openspace { class KameleonVolumeToFieldlinesTask : public Task { public: + enum class conversionType { + Json, + Osfls + }; KameleonVolumeToFieldlinesTask(const ghoul::Dictionary& dictionary); + ~KameleonVolumeToFieldlinesTask(); std::string description() override; void perform(const Task::ProgressCallback& progressCallback) override; static documentation::Documentation documentation(); private: - enum class conversionType { - Json, - Osfls - }; std::string _tracingVar; std::vector _extraVars; std::filesystem::path _inputPath;