diff --git a/CMakeLists.txt b/CMakeLists.txt index f66c1d9122..68945f167a 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -2,7 +2,7 @@ # # # OpenSpace # # # -# Copyright (c) 2014-2021 # +# Copyright (c) 2014-2022 # # # # 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 # @@ -143,8 +143,8 @@ if (UNIX) endif() set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DGLM_ENABLE_EXPERIMENTAL" CACHE STRING "" FORCE) set(OpenGL_GL_PREFERENCE "GLVND" CACHE STRING "OpenGL Preference setting necessary for linux" FORCE) - set(ASSIMP_BUILD_MINIZIP ON CACHE BOOL "Set to have assimp build minizip" FORCE) endif () + set(ASSIMP_BUILD_MINIZIP ON CACHE BOOL "Set to have assimp build minizip" FORCE) endif () add_subdirectory(ext) diff --git a/Jenkinsfile b/Jenkinsfile index c29f718631..b4b1775164 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -110,12 +110,12 @@ linux_gcc_make: { cmakeCompileOptions += ' -DCMAKE_BUILD_TYPE=Release -DCMAKE_CXX_FLAGS:STRING="-DGLM_ENABLE_EXPERIMENTAL"'; cmakeCompileOptions += ' -DOpenGL_GL_PREFERENCE:STRING=GLVND -DASSIMP_BUILD_MINIZIP=1'; // Not sure why the linking of OpenSpaceTest takes so long - compileHelper.build(compileHelper.Make(), compileHelper.Gcc(), cmakeCompileOptions, 'OpenSpace', 'build-make'); + compileHelper.build(compileHelper.Make(), compileHelper.Gcc(), cmakeCompileOptions, '', 'build-make'); compileHelper.recordCompileIssues(compileHelper.Gcc()); } stage('linux-gcc-make/test') { - // testHelper.runUnitTests('build/OpenSpaceTest'); - // testHelper.runUnitTests('bin/codegentest') + testHelper.runUnitTests('bin/OpenSpaceTest'); + testHelper.runUnitTests('bin/codegentest') } cleanWs() } // node('linux') @@ -132,11 +132,11 @@ linux_gcc_ninja: { def cmakeCompileOptions = moduleCMakeFlags(); cmakeCompileOptions += '-DMAKE_BUILD_TYPE=Release'; // Not sure why the linking of OpenSpaceTest takes so long - compileHelper.build(compileHelper.Ninja(), compileHelper.Gcc(), cmakeCompileOptions, 'OpenSpace', 'build-ninja'); + compileHelper.build(compileHelper.Ninja(), compileHelper.Gcc(), cmakeCompileOptions, '', 'build-ninja'); } stage('linux-gcc-ninja/test') { - // testHelper.runUnitTests('build/OpenSpaceTest'); - // testHelper.runUnitTests('bin/codegentest') + testHelper.runUnitTests('bin/OpenSpaceTest'); + testHelper.runUnitTests('bin/codegentest') } cleanWs() } // node('linux') @@ -153,12 +153,12 @@ linux_clang_make: { def cmakeCompileOptions = moduleCMakeFlags() cmakeCompileOptions += ' -DMAKE_BUILD_TYPE=Release' // Not sure why the linking of OpenSpaceTest takes so long - compileHelper.build(compileHelper.Make(), compileHelper.Clang(), cmakeCompileOptions, 'OpenSpace', 'build-make'); + compileHelper.build(compileHelper.Make(), compileHelper.Clang(), cmakeCompileOptions, '', 'build-make'); compileHelper.recordCompileIssues(compileHelper.Clang()); } stage('linux-clang-make/test') { - // testHelper.runUnitTests('build/OpenSpaceTest'); - // testHelper.runUnitTests('bin/codegentest') + testHelper.runUnitTests('bin/OpenSpaceTest'); + testHelper.runUnitTests('bin/codegentest') } cleanWs() } // node('linux') @@ -175,11 +175,11 @@ linux_clang_ninja: { def cmakeCompileOptions = moduleCMakeFlags() cmakeCompileOptions += '-DMAKE_BUILD_TYPE=Release' // Not sure why the linking of OpenSpaceTest takes so long - compileHelper.build(compileHelper.Ninja(), compileHelper.Clang(), cmakeCompileOptions, 'OpenSpace', 'build-ninja'); + compileHelper.build(compileHelper.Ninja(), compileHelper.Clang(), cmakeCompileOptions, '', 'build-ninja'); } stage('linux-clang-ninja/test') { - // testHelper.runUnitTests('build/OpenSpaceTest'); - // testHelper.runUnitTests('bin/codegentest') + testHelper.runUnitTests('bin/OpenSpaceTest'); + testHelper.runUnitTests('bin/codegentest') } cleanWs() } // node('linux') @@ -197,8 +197,7 @@ windows_msvc: { compileHelper.recordCompileIssues(compileHelper.VisualStudio()); } stage('windows-msvc/test') { - // Currently, the unit tests are failing on Windows - // testHelper.runUnitTests('bin\\Debug\\OpenSpaceTest') + testHelper.runUnitTests('bin\\Debug\\OpenSpaceTest') testHelper.runUnitTests('bin\\Debug\\codegentest') } cleanWs() @@ -236,8 +235,8 @@ macos_make: { compileHelper.build(compileHelper.Make(), compileHelper.Clang(), moduleCMakeFlags(), '', 'build-make'); } stage('macos-make/test') { - // Currently, the unit tests are crashing on OS X - // testHelper.runUnitTests('build/Debug/OpenSpaceTest') + testHelper.runUnitTests('bin/Debug/OpenSpaceTest') + testHelper.runUnitTests('bin/Debug/codegentest') } cleanWs() } // node('macos') @@ -254,8 +253,8 @@ macos_xcode: { compileHelper.build(compileHelper.Xcode(), compileHelper.Xcode(), moduleCMakeFlags(), '', 'build-xcode'); } stage('macos-xcode/test') { - // Currently, the unit tests are crashing on OS X - // testHelper.runUnitTests('build/Debug/OpenSpaceTest') + testHelper.runUnitTests('bin/Debug/OpenSpaceTest') + testHelper.runUnitTests('bin/Debug/codegentest') } cleanWs() } // node('macos') diff --git a/LICENSE.md b/LICENSE.md index de2f93f1ad..93395f8f71 100644 --- a/LICENSE.md +++ b/LICENSE.md @@ -1,4 +1,4 @@ -Copyright (c) 2014-2021 +Copyright (c) 2014-2022 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 diff --git a/apps/CMakeLists.txt b/apps/CMakeLists.txt index cbc8540483..1b1607a35b 100644 --- a/apps/CMakeLists.txt +++ b/apps/CMakeLists.txt @@ -2,7 +2,7 @@ # # # OpenSpace # # # -# Copyright (c) 2014-2021 # +# Copyright (c) 2014-2022 # # # # 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 # diff --git a/apps/OpenSpace-MinVR/CMakeLists.txt b/apps/OpenSpace-MinVR/CMakeLists.txt index f83661443e..5b40e17383 100644 --- a/apps/OpenSpace-MinVR/CMakeLists.txt +++ b/apps/OpenSpace-MinVR/CMakeLists.txt @@ -2,7 +2,7 @@ # # # OpenSpace # # # -# Copyright (c) 2014-2021 # +# Copyright (c) 2014-2022 # # # # 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 # diff --git a/apps/OpenSpace-MinVR/main.cpp b/apps/OpenSpace-MinVR/main.cpp index 80d2be0229..46ecfaa904 100644 --- a/apps/OpenSpace-MinVR/main.cpp +++ b/apps/OpenSpace-MinVR/main.cpp @@ -2,7 +2,7 @@ * * * OpenSpace * * * - * Copyright (c) 2014-2021 * + * Copyright (c) 2014-2022 * * * * 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 * diff --git a/apps/OpenSpace/CMakeLists.txt b/apps/OpenSpace/CMakeLists.txt index c43e141b3f..d91dd2a541 100644 --- a/apps/OpenSpace/CMakeLists.txt +++ b/apps/OpenSpace/CMakeLists.txt @@ -2,7 +2,7 @@ # # # OpenSpace # # # -# Copyright (c) 2014-2021 # +# Copyright (c) 2014-2022 # # # # 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 # diff --git a/apps/OpenSpace/ext/launcher/CMakeLists.txt b/apps/OpenSpace/ext/launcher/CMakeLists.txt index 1f3a1061f5..39035ff4b8 100644 --- a/apps/OpenSpace/ext/launcher/CMakeLists.txt +++ b/apps/OpenSpace/ext/launcher/CMakeLists.txt @@ -2,7 +2,7 @@ # # # OpenSpace # # # -# Copyright (c) 2014-2021 # +# Copyright (c) 2014-2022 # # # # 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 # diff --git a/apps/OpenSpace/ext/launcher/include/filesystemaccess.h b/apps/OpenSpace/ext/launcher/include/filesystemaccess.h index 945fcb113d..7f7d562275 100644 --- a/apps/OpenSpace/ext/launcher/include/filesystemaccess.h +++ b/apps/OpenSpace/ext/launcher/include/filesystemaccess.h @@ -2,7 +2,7 @@ * * * OpenSpace * * * - * Copyright (c) 2014-2021 * + * Copyright (c) 2014-2022 * * * * 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 * diff --git a/apps/OpenSpace/ext/launcher/include/launcherwindow.h b/apps/OpenSpace/ext/launcher/include/launcherwindow.h index 508c0442cc..c75c474038 100644 --- a/apps/OpenSpace/ext/launcher/include/launcherwindow.h +++ b/apps/OpenSpace/ext/launcher/include/launcherwindow.h @@ -2,7 +2,7 @@ * * * OpenSpace * * * - * Copyright (c) 2014-2021 * + * Copyright (c) 2014-2022 * * * * 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 * diff --git a/apps/OpenSpace/ext/launcher/include/profile/actiondialog.h b/apps/OpenSpace/ext/launcher/include/profile/actiondialog.h index c08964631f..1c95a7c98d 100644 --- a/apps/OpenSpace/ext/launcher/include/profile/actiondialog.h +++ b/apps/OpenSpace/ext/launcher/include/profile/actiondialog.h @@ -2,7 +2,7 @@ * * * OpenSpace * * * - * Copyright (c) 2014-2021 * + * Copyright (c) 2014-2022 * * * * 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 * diff --git a/apps/OpenSpace/ext/launcher/include/profile/additionalscriptsdialog.h b/apps/OpenSpace/ext/launcher/include/profile/additionalscriptsdialog.h index 40c330d9dd..ddc694ad1b 100644 --- a/apps/OpenSpace/ext/launcher/include/profile/additionalscriptsdialog.h +++ b/apps/OpenSpace/ext/launcher/include/profile/additionalscriptsdialog.h @@ -2,7 +2,7 @@ * * * OpenSpace * * * - * Copyright (c) 2014-2021 * + * Copyright (c) 2014-2022 * * * * 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 * diff --git a/apps/OpenSpace/ext/launcher/include/profile/assetsdialog.h b/apps/OpenSpace/ext/launcher/include/profile/assetsdialog.h index e11c110d55..3816bf5767 100644 --- a/apps/OpenSpace/ext/launcher/include/profile/assetsdialog.h +++ b/apps/OpenSpace/ext/launcher/include/profile/assetsdialog.h @@ -2,7 +2,7 @@ * * * OpenSpace * * * - * Copyright (c) 2014-2021 * + * Copyright (c) 2014-2022 * * * * 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 * diff --git a/apps/OpenSpace/ext/launcher/include/profile/assettreeitem.h b/apps/OpenSpace/ext/launcher/include/profile/assettreeitem.h index 1274297db1..09a0a9d255 100644 --- a/apps/OpenSpace/ext/launcher/include/profile/assettreeitem.h +++ b/apps/OpenSpace/ext/launcher/include/profile/assettreeitem.h @@ -2,7 +2,7 @@ * * * OpenSpace * * * - * Copyright (c) 2014-2021 * + * Copyright (c) 2014-2022 * * * * 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 * diff --git a/apps/OpenSpace/ext/launcher/include/profile/assettreemodel.h b/apps/OpenSpace/ext/launcher/include/profile/assettreemodel.h index bfe3db62c7..fb902f1e81 100644 --- a/apps/OpenSpace/ext/launcher/include/profile/assettreemodel.h +++ b/apps/OpenSpace/ext/launcher/include/profile/assettreemodel.h @@ -2,7 +2,7 @@ * * * OpenSpace * * * - * Copyright (c) 2014-2021 * + * Copyright (c) 2014-2022 * * * * 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 * diff --git a/apps/OpenSpace/ext/launcher/include/profile/cameradialog.h b/apps/OpenSpace/ext/launcher/include/profile/cameradialog.h index 3f60f6953a..3834e60045 100644 --- a/apps/OpenSpace/ext/launcher/include/profile/cameradialog.h +++ b/apps/OpenSpace/ext/launcher/include/profile/cameradialog.h @@ -2,7 +2,7 @@ * * * OpenSpace * * * - * Copyright (c) 2014-2021 * + * Copyright (c) 2014-2022 * * * * 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 * diff --git a/apps/OpenSpace/ext/launcher/include/profile/deltatimesdialog.h b/apps/OpenSpace/ext/launcher/include/profile/deltatimesdialog.h index 76c9184c25..3e3686ae28 100644 --- a/apps/OpenSpace/ext/launcher/include/profile/deltatimesdialog.h +++ b/apps/OpenSpace/ext/launcher/include/profile/deltatimesdialog.h @@ -2,7 +2,7 @@ * * * OpenSpace * * * - * Copyright (c) 2014-2021 * + * Copyright (c) 2014-2022 * * * * 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 * diff --git a/apps/OpenSpace/ext/launcher/include/profile/line.h b/apps/OpenSpace/ext/launcher/include/profile/line.h index 12d2aa9658..955955a6ad 100644 --- a/apps/OpenSpace/ext/launcher/include/profile/line.h +++ b/apps/OpenSpace/ext/launcher/include/profile/line.h @@ -2,7 +2,7 @@ * * * OpenSpace * * * - * Copyright (c) 2014-2021 * + * Copyright (c) 2014-2022 * * * * 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 * diff --git a/apps/OpenSpace/ext/launcher/include/profile/marknodesdialog.h b/apps/OpenSpace/ext/launcher/include/profile/marknodesdialog.h index 8ff3fd7cd6..1df0c42428 100644 --- a/apps/OpenSpace/ext/launcher/include/profile/marknodesdialog.h +++ b/apps/OpenSpace/ext/launcher/include/profile/marknodesdialog.h @@ -2,7 +2,7 @@ * * * OpenSpace * * * - * Copyright (c) 2014-2021 * + * Copyright (c) 2014-2022 * * * * 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 * diff --git a/apps/OpenSpace/ext/launcher/include/profile/metadialog.h b/apps/OpenSpace/ext/launcher/include/profile/metadialog.h index b8d784aabb..b32b077cf0 100644 --- a/apps/OpenSpace/ext/launcher/include/profile/metadialog.h +++ b/apps/OpenSpace/ext/launcher/include/profile/metadialog.h @@ -2,7 +2,7 @@ * * * OpenSpace * * * - * Copyright (c) 2014-2021 * + * Copyright (c) 2014-2022 * * * * 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 * diff --git a/apps/OpenSpace/ext/launcher/include/profile/modulesdialog.h b/apps/OpenSpace/ext/launcher/include/profile/modulesdialog.h index 4245e5ff88..976d3e0867 100644 --- a/apps/OpenSpace/ext/launcher/include/profile/modulesdialog.h +++ b/apps/OpenSpace/ext/launcher/include/profile/modulesdialog.h @@ -2,7 +2,7 @@ * * * OpenSpace * * * - * Copyright (c) 2014-2021 * + * Copyright (c) 2014-2022 * * * * 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 * diff --git a/apps/OpenSpace/ext/launcher/include/profile/profileedit.h b/apps/OpenSpace/ext/launcher/include/profile/profileedit.h index f83fa1f458..547ee7db6f 100644 --- a/apps/OpenSpace/ext/launcher/include/profile/profileedit.h +++ b/apps/OpenSpace/ext/launcher/include/profile/profileedit.h @@ -2,7 +2,7 @@ * * * OpenSpace * * * - * Copyright (c) 2014-2021 * + * Copyright (c) 2014-2022 * * * * 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 * diff --git a/apps/OpenSpace/ext/launcher/include/profile/propertiesdialog.h b/apps/OpenSpace/ext/launcher/include/profile/propertiesdialog.h index c3ce1a1402..9db0ed0a91 100644 --- a/apps/OpenSpace/ext/launcher/include/profile/propertiesdialog.h +++ b/apps/OpenSpace/ext/launcher/include/profile/propertiesdialog.h @@ -2,7 +2,7 @@ * * * OpenSpace * * * - * Copyright (c) 2014-2021 * + * Copyright (c) 2014-2022 * * * * 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 * @@ -65,6 +65,8 @@ private slots: void transitionToEditMode(); void parseSelections(); + void selectLineFromScriptLog(); + private: void createWidgets(); @@ -81,6 +83,8 @@ private: QListWidget* _list = nullptr; QPushButton* _addButton = nullptr; QPushButton* _removeButton = nullptr; + + QPushButton* _fillFromScriptLog = nullptr; QLabel* _commandLabel = nullptr; QComboBox* _commandCombo = nullptr; QLabel* _propertyLabel = nullptr; diff --git a/apps/OpenSpace/ext/launcher/include/profile/scriptlogdialog.h b/apps/OpenSpace/ext/launcher/include/profile/scriptlogdialog.h index dc970494f5..3ddf4a7939 100644 --- a/apps/OpenSpace/ext/launcher/include/profile/scriptlogdialog.h +++ b/apps/OpenSpace/ext/launcher/include/profile/scriptlogdialog.h @@ -2,7 +2,7 @@ * * * OpenSpace * * * - * Copyright (c) 2014-2021 * + * Copyright (c) 2014-2022 * * * * 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 * diff --git a/apps/OpenSpace/ext/launcher/include/profile/timedialog.h b/apps/OpenSpace/ext/launcher/include/profile/timedialog.h index 81ddf0d144..410eceaac1 100644 --- a/apps/OpenSpace/ext/launcher/include/profile/timedialog.h +++ b/apps/OpenSpace/ext/launcher/include/profile/timedialog.h @@ -2,7 +2,7 @@ * * * OpenSpace * * * - * Copyright (c) 2014-2021 * + * Copyright (c) 2014-2022 * * * * 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 * diff --git a/apps/OpenSpace/ext/launcher/src/filesystemaccess.cpp b/apps/OpenSpace/ext/launcher/src/filesystemaccess.cpp index f58665913d..08b1da4890 100644 --- a/apps/OpenSpace/ext/launcher/src/filesystemaccess.cpp +++ b/apps/OpenSpace/ext/launcher/src/filesystemaccess.cpp @@ -2,7 +2,7 @@ * * * OpenSpace * * * - * Copyright (c) 2014-2021 * + * Copyright (c) 2014-2022 * * * * 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 * diff --git a/apps/OpenSpace/ext/launcher/src/launcherwindow.cpp b/apps/OpenSpace/ext/launcher/src/launcherwindow.cpp index d30eac9af3..8702e0e8da 100644 --- a/apps/OpenSpace/ext/launcher/src/launcherwindow.cpp +++ b/apps/OpenSpace/ext/launcher/src/launcherwindow.cpp @@ -2,7 +2,7 @@ * * * OpenSpace * * * - * Copyright (c) 2014-2021 * + * Copyright (c) 2014-2022 * * * * 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 * @@ -382,6 +382,23 @@ void LauncherWindow::populateProfilesList(std::string preset) { } } +// Returns 'true' if the file was a configuration file, 'false' otherwise +bool handleConfigurationFile(QComboBox& box, const std::filesystem::directory_entry& p) { + const bool isXml = p.path().extension() == ".xml"; + const bool isJson = p.path().extension() == ".json"; + if (!isXml && !isJson) { + return false; + } + box.addItem(QString::fromStdString(p.path().filename().string())); + + // For now, mark the XML configuration files to show that they are deprecated + if (isXml) { + box.setItemData(box.count() - 1, QBrush(Qt::darkYellow), Qt::ForegroundRole); + } + + return true; +} + void LauncherWindow::populateWindowConfigsList(std::string preset) { namespace fs = std::filesystem; @@ -389,28 +406,32 @@ void LauncherWindow::populateWindowConfigsList(std::string preset) { _userConfigCount = 0; _windowConfigBox->addItem(QString::fromStdString("--- User Configurations ---")); - const QStandardItemModel* model = qobject_cast(_windowConfigBox->model()); + const QStandardItemModel* model = + qobject_cast(_windowConfigBox->model()); + model->item(_userConfigCount)->setEnabled(false); ++_userConfigCount; - // Add all the files with the .xml extension to the dropdown + + bool hasXmlConfig = false; + + // Add all the files with the .xml or .json extension to the dropdown for (const fs::directory_entry& p : fs::directory_iterator(_userConfigPath)) { - if (p.path().extension() != ".xml") { - continue; + bool isConfigFile = handleConfigurationFile(*_windowConfigBox, p); + if (isConfigFile) { + ++_userConfigCount; } - _windowConfigBox->addItem(QString::fromStdString(p.path().stem().string())); - ++_userConfigCount; + + hasXmlConfig |= p.path().extension() == ".xml"; } _windowConfigBox->addItem(QString::fromStdString("--- OpenSpace Configurations ---")); model = qobject_cast(_windowConfigBox->model()); model->item(_userConfigCount)->setEnabled(false); if (std::filesystem::exists(_configPath)) { - // Add all the files with the .xml extension to the dropdown + // Add all the files with the .xml or .json extension to the dropdown for (const fs::directory_entry& p : fs::directory_iterator(_configPath)) { - if (p.path().extension() != ".xml") { - continue; - } - _windowConfigBox->addItem(QString::fromStdString(p.path().stem().string())); + handleConfigurationFile(*_windowConfigBox, p); + hasXmlConfig |= p.path().extension() == ".xml"; } } else { @@ -420,6 +441,17 @@ void LauncherWindow::populateWindowConfigsList(std::string preset) { ); } + if (hasXmlConfig) { + // At least one XML configuration file is present, so we should show the tooltip + // informing the user that files will be deprecated + _windowConfigBox->setToolTip( + "Support for XML-based configuration files will be removed in the next " + "version of OpenSpace. Please convert the files to the new JSON format or " + "run the Node tool at " + "https://github.com/sgct/sgct/tree/master/support/config-converter" + ); + } + // Try to find the requested configuration file and set it as the current one. As we // have support for function-generated configuration files that will not be in the // list we need to add a preset that doesn't exist a file for @@ -434,7 +466,7 @@ void LauncherWindow::populateWindowConfigsList(std::string preset) { } } -void LauncherWindow::openProfileEditor(const std::string& profile, const bool isUserProfile) { +void LauncherWindow::openProfileEditor(const std::string& profile, bool isUserProfile) { std::optional p; std::string saveProfilePath = isUserProfile ? _userProfilePath : _profilePath; if (profile.empty()) { diff --git a/apps/OpenSpace/ext/launcher/src/profile/actiondialog.cpp b/apps/OpenSpace/ext/launcher/src/profile/actiondialog.cpp index 8dbdf4471e..81dd9d81da 100644 --- a/apps/OpenSpace/ext/launcher/src/profile/actiondialog.cpp +++ b/apps/OpenSpace/ext/launcher/src/profile/actiondialog.cpp @@ -2,7 +2,7 @@ * * * OpenSpace * * * - * Copyright (c) 2014-2021 * + * Copyright (c) 2014-2022 * * * * 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 * @@ -546,7 +546,7 @@ void ActionDialog::actionSaved() { // If we got this far, we have a new identifier and it is a new one, so we need to // update other keybinds now ghoul_assert( - _keybindingWidgets.list->count() == _keybindingsData.size(), + _keybindingWidgets.list->count() == static_cast(_keybindingsData.size()), "The list and data got out of sync" ); for (int i = 0; i < _keybindingWidgets.list->count(); ++i) { diff --git a/apps/OpenSpace/ext/launcher/src/profile/additionalscriptsdialog.cpp b/apps/OpenSpace/ext/launcher/src/profile/additionalscriptsdialog.cpp index 60ea7b3513..66d9f30aa3 100644 --- a/apps/OpenSpace/ext/launcher/src/profile/additionalscriptsdialog.cpp +++ b/apps/OpenSpace/ext/launcher/src/profile/additionalscriptsdialog.cpp @@ -2,7 +2,7 @@ * * * OpenSpace * * * - * Copyright (c) 2014-2021 * + * Copyright (c) 2014-2022 * * * * 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 * diff --git a/apps/OpenSpace/ext/launcher/src/profile/assetsdialog.cpp b/apps/OpenSpace/ext/launcher/src/profile/assetsdialog.cpp index 8c46bf58a6..24fa49333d 100644 --- a/apps/OpenSpace/ext/launcher/src/profile/assetsdialog.cpp +++ b/apps/OpenSpace/ext/launcher/src/profile/assetsdialog.cpp @@ -2,7 +2,7 @@ * * * OpenSpace * * * - * Copyright (c) 2014-2021 * + * Copyright (c) 2014-2022 * * * * 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 * diff --git a/apps/OpenSpace/ext/launcher/src/profile/assettreeitem.cpp b/apps/OpenSpace/ext/launcher/src/profile/assettreeitem.cpp index e08f79d3ec..f9df971cb3 100644 --- a/apps/OpenSpace/ext/launcher/src/profile/assettreeitem.cpp +++ b/apps/OpenSpace/ext/launcher/src/profile/assettreeitem.cpp @@ -2,7 +2,7 @@ * * * OpenSpace * * * - * Copyright (c) 2014-2021 * + * Copyright (c) 2014-2022 * * * * 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 * diff --git a/apps/OpenSpace/ext/launcher/src/profile/assettreemodel.cpp b/apps/OpenSpace/ext/launcher/src/profile/assettreemodel.cpp index e588b103bd..b4f720d0b7 100644 --- a/apps/OpenSpace/ext/launcher/src/profile/assettreemodel.cpp +++ b/apps/OpenSpace/ext/launcher/src/profile/assettreemodel.cpp @@ -2,7 +2,7 @@ * * * OpenSpace * * * - * Copyright (c) 2014-2021 * + * Copyright (c) 2014-2022 * * * * 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 * diff --git a/apps/OpenSpace/ext/launcher/src/profile/cameradialog.cpp b/apps/OpenSpace/ext/launcher/src/profile/cameradialog.cpp index 2b8d6f4aef..35f56ed941 100644 --- a/apps/OpenSpace/ext/launcher/src/profile/cameradialog.cpp +++ b/apps/OpenSpace/ext/launcher/src/profile/cameradialog.cpp @@ -2,7 +2,7 @@ * * * OpenSpace * * * - * Copyright (c) 2014-2021 * + * Copyright (c) 2014-2022 * * * * 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 * diff --git a/apps/OpenSpace/ext/launcher/src/profile/deltatimesdialog.cpp b/apps/OpenSpace/ext/launcher/src/profile/deltatimesdialog.cpp index 2c23da48ff..accffd179e 100644 --- a/apps/OpenSpace/ext/launcher/src/profile/deltatimesdialog.cpp +++ b/apps/OpenSpace/ext/launcher/src/profile/deltatimesdialog.cpp @@ -2,7 +2,7 @@ * * * OpenSpace * * * - * Copyright (c) 2014-2021 * + * Copyright (c) 2014-2022 * * * * 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 * diff --git a/apps/OpenSpace/ext/launcher/src/profile/line.cpp b/apps/OpenSpace/ext/launcher/src/profile/line.cpp index c7f2821cf1..d822113349 100644 --- a/apps/OpenSpace/ext/launcher/src/profile/line.cpp +++ b/apps/OpenSpace/ext/launcher/src/profile/line.cpp @@ -2,7 +2,7 @@ * * * OpenSpace * * * - * Copyright (c) 2014-2021 * + * Copyright (c) 2014-2022 * * * * 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 * diff --git a/apps/OpenSpace/ext/launcher/src/profile/marknodesdialog.cpp b/apps/OpenSpace/ext/launcher/src/profile/marknodesdialog.cpp index 418c47a0d9..f4ea50d72d 100644 --- a/apps/OpenSpace/ext/launcher/src/profile/marknodesdialog.cpp +++ b/apps/OpenSpace/ext/launcher/src/profile/marknodesdialog.cpp @@ -2,7 +2,7 @@ * * * OpenSpace * * * - * Copyright (c) 2014-2021 * + * Copyright (c) 2014-2022 * * * * 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 * diff --git a/apps/OpenSpace/ext/launcher/src/profile/metadialog.cpp b/apps/OpenSpace/ext/launcher/src/profile/metadialog.cpp index 599307a729..61a8c23157 100644 --- a/apps/OpenSpace/ext/launcher/src/profile/metadialog.cpp +++ b/apps/OpenSpace/ext/launcher/src/profile/metadialog.cpp @@ -2,7 +2,7 @@ * * * OpenSpace * * * - * Copyright (c) 2014-2021 * + * Copyright (c) 2014-2022 * * * * 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 * diff --git a/apps/OpenSpace/ext/launcher/src/profile/modulesdialog.cpp b/apps/OpenSpace/ext/launcher/src/profile/modulesdialog.cpp index 871b9647fe..747be1dd8e 100644 --- a/apps/OpenSpace/ext/launcher/src/profile/modulesdialog.cpp +++ b/apps/OpenSpace/ext/launcher/src/profile/modulesdialog.cpp @@ -2,7 +2,7 @@ * * * OpenSpace * * * - * Copyright (c) 2014-2021 * + * Copyright (c) 2014-2022 * * * * 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 * diff --git a/apps/OpenSpace/ext/launcher/src/profile/profileedit.cpp b/apps/OpenSpace/ext/launcher/src/profile/profileedit.cpp index 04dc395b88..2f36d2925a 100644 --- a/apps/OpenSpace/ext/launcher/src/profile/profileedit.cpp +++ b/apps/OpenSpace/ext/launcher/src/profile/profileedit.cpp @@ -2,7 +2,7 @@ * * * OpenSpace * * * - * Copyright (c) 2014-2021 * + * Copyright (c) 2014-2022 * * * * 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 * diff --git a/apps/OpenSpace/ext/launcher/src/profile/propertiesdialog.cpp b/apps/OpenSpace/ext/launcher/src/profile/propertiesdialog.cpp index a57548b5a2..4fc82565d9 100644 --- a/apps/OpenSpace/ext/launcher/src/profile/propertiesdialog.cpp +++ b/apps/OpenSpace/ext/launcher/src/profile/propertiesdialog.cpp @@ -2,7 +2,7 @@ * * * OpenSpace * * * - * Copyright (c) 2014-2021 * + * Copyright (c) 2014-2022 * * * * 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 * @@ -25,14 +25,17 @@ #include "profile/propertiesdialog.h" #include "profile/line.h" +#include #include #include #include +#include #include #include #include #include #include +#include #include #include @@ -93,6 +96,13 @@ void PropertiesDialog::createWidgets() { } layout->addWidget(new Line); { + _fillFromScriptLog = new QPushButton("Fill from ScriptLog"); + connect( + _fillFromScriptLog, &QPushButton::clicked, + this, &PropertiesDialog::selectLineFromScriptLog + ); + layout->addWidget(_fillFromScriptLog); + _commandLabel = new QLabel("Property Set Command"); layout->addWidget(_commandLabel); @@ -333,6 +343,7 @@ void PropertiesDialog::transitionFromEditMode() { } void PropertiesDialog::editBoxDisabled(bool disabled) { + _fillFromScriptLog->setDisabled(disabled); _commandLabel->setDisabled(disabled); _commandCombo->setDisabled(disabled); _propertyLabel->setDisabled(disabled); @@ -368,3 +379,89 @@ void PropertiesDialog::keyPressEvent(QKeyEvent* evt) { QDialog::keyPressEvent(evt); } +void PropertiesDialog::selectLineFromScriptLog() { + QComboBox* comboBox = new QComboBox; + + QFile file(QString::fromStdString(absPath("${LOGS}/scriptLog.txt").string())); + if (file.open(QIODevice::ReadOnly | QIODevice::Text)) { + QTextStream in(&file); + while (!in.atEnd()) { + QString line = in.readLine(); + // removing return from a few statments + // these are usually generated by gui panels + line.remove(QRegularExpression("^return ")); + + if (line.isEmpty()) { + continue; + } + + if (!line.startsWith("openspace.setPropertyValue")) { + continue; + } + + comboBox->addItem(line); + } + } + + QDialog dialog; + + connect(&dialog, &QDialog::finished, [this, comboBox](int result) { + if (result == QDialog::Rejected) { + return; + } + + QString text = comboBox->currentText(); + if (!text.startsWith("openspace.setPropertyValue")) { + return; + } + + // We have a string that is of the form: + // openspace.setPropertyValue('prop', value); + + if (text.startsWith("openspace.setPropertyValueSingle")) { + _commandCombo->setCurrentIndex(0); + std::string_view prefix = "openspace.setPropertyValueSingle"; + text = text.mid(static_cast(prefix.size()) + 1); // +1 for ( + } + else { + // command == "openspace.setPropertyValue" + _commandCombo->setCurrentIndex(1); + std::string_view prefix = "openspace.setPropertyValue"; + text = text.mid(static_cast(prefix.size()) + 1); // +1 for ( + } + + // Remove everything past the closing brace + text = text.left(text.indexOf(")")); + QStringList textList = text.split(","); + + if (textList.size() < 2) { + return; + } + + // Remove the string markers around the property + QString property = textList[0].mid(1, textList[0].size() - 2); + + textList.removeFirst(); + QString value = textList.join(","); + + + _propertyEdit->setText(property.trimmed()); + _valueEdit->setText(value.trimmed()); + }); + + QLayout* layout = new QVBoxLayout; + QLabel* label = new QLabel("Select a line from the Script Log to add"); + layout->addWidget(label); + + layout->addWidget(comboBox); + + QDialogButtonBox* bb = new QDialogButtonBox( + QDialogButtonBox::Ok | QDialogButtonBox::Cancel + ); + connect(bb, &QDialogButtonBox::accepted, &dialog, &QDialog::accept); + connect(bb, &QDialogButtonBox::rejected, &dialog, &QDialog::reject); + layout->addWidget(bb); + + dialog.setLayout(layout); + dialog.exec(); +} diff --git a/apps/OpenSpace/ext/launcher/src/profile/scriptlogdialog.cpp b/apps/OpenSpace/ext/launcher/src/profile/scriptlogdialog.cpp index 906a855c13..22f9687cf5 100644 --- a/apps/OpenSpace/ext/launcher/src/profile/scriptlogdialog.cpp +++ b/apps/OpenSpace/ext/launcher/src/profile/scriptlogdialog.cpp @@ -2,7 +2,7 @@ * * * OpenSpace * * * - * Copyright (c) 2014-2021 * + * Copyright (c) 2014-2022 * * * * 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 * diff --git a/apps/OpenSpace/ext/launcher/src/profile/timedialog.cpp b/apps/OpenSpace/ext/launcher/src/profile/timedialog.cpp index efbcf4293c..abfc74d14e 100644 --- a/apps/OpenSpace/ext/launcher/src/profile/timedialog.cpp +++ b/apps/OpenSpace/ext/launcher/src/profile/timedialog.cpp @@ -2,7 +2,7 @@ * * * OpenSpace * * * - * Copyright (c) 2014-2021 * + * Copyright (c) 2014-2022 * * * * 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 * diff --git a/apps/OpenSpace/ext/sgct b/apps/OpenSpace/ext/sgct index 4301011f99..9289476ad3 160000 --- a/apps/OpenSpace/ext/sgct +++ b/apps/OpenSpace/ext/sgct @@ -1 +1 @@ -Subproject commit 4301011f990c76fcb598245b5b6dac7637e692ac +Subproject commit 9289476ad3280f3a3e12ef3c26214b57ade2b436 diff --git a/apps/OpenSpace/main.cpp b/apps/OpenSpace/main.cpp index 063057d6a5..a56d0640fc 100644 --- a/apps/OpenSpace/main.cpp +++ b/apps/OpenSpace/main.cpp @@ -2,7 +2,7 @@ * * * OpenSpace * * * - * Copyright (c) 2014-2021 * + * Copyright (c) 2014-2022 * * * * 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 * @@ -369,27 +369,34 @@ void mainPreSyncFunc() { std::fill(state.axes.begin(), state.axes.end(), 0.f); std::fill(state.buttons.begin(), state.buttons.end(), JoystickAction::Idle); + + // Check axes and buttons + glfwGetJoystickAxes(i, &state.nAxes); + if (state.nAxes > JoystickInputState::MaxAxes) { + LWARNING(fmt::format( + "Joystick/Gamepad {} has {} axes, but only {} axes are supported. " + "All excess axes are ignored", + state.name, state.nAxes, JoystickInputState::MaxAxes + )); + } + glfwGetJoystickButtons(i, &state.nButtons); + if (state.nButtons > JoystickInputState::MaxButtons) { + LWARNING(fmt::format( + "Joystick/Gamepad {} has {} buttons, but only {} buttons are " + "supported. All excess buttons are ignored", + state.name, state.nButtons, JoystickInputState::MaxButtons + )); + } } const float* axes = glfwGetJoystickAxes(i, &state.nAxes); if (state.nAxes > JoystickInputState::MaxAxes) { - LWARNING(fmt::format( - "Joystick/Gamepad {} has {} axes, but only {} axes are supported. " - "All excess axes are ignored", - state.name, state.nAxes, JoystickInputState::MaxAxes - )); state.nAxes = JoystickInputState::MaxAxes; } std::memcpy(state.axes.data(), axes, state.nAxes * sizeof(float)); const unsigned char* buttons = glfwGetJoystickButtons(i, &state.nButtons); - if (state.nButtons > JoystickInputState::MaxButtons) { - LWARNING(fmt::format( - "Joystick/Gamepad {} has {} buttons, but only {} buttons are " - "supported. All excess buttons are ignored", - state.name, state.nButtons, JoystickInputState::MaxButtons - )); state.nButtons = JoystickInputState::MaxButtons; } @@ -858,11 +865,11 @@ void setSgctDelegateFunctions() { currentWindow->viewports().front()->nonLinearProjection() ) != nullptr; }; - sgctDelegate.takeScreenshot = [](bool applyWarping) { + sgctDelegate.takeScreenshot = [](bool applyWarping, std::vector windowIds) { ZoneScoped Settings::instance().setCaptureFromBackBuffer(applyWarping); - Engine::instance().takeScreenshot(); + Engine::instance().takeScreenshot(std::move(windowIds)); return Engine::instance().screenShotNumber(); }; sgctDelegate.swapBuffer = []() { @@ -982,8 +989,7 @@ std::string setWindowConfigPresetForGui(const std::string labelFromCfgFile, std::string selectedSgctProfileFromLauncher(LauncherWindow& lw, bool hasCliSGCTConfig, std::string windowConfiguration, - const std::string& labelFromCfgFile, - const std::string& xmlExt) + const std::string& labelFromCfgFile) { std::string config = windowConfiguration; if (!hasCliSGCTConfig) { @@ -997,14 +1003,31 @@ std::string selectedSgctProfileFromLauncher(LauncherWindow& lw, bool hasCliSGCTC } } else { - if ( (config.length() >= xmlExt.length()) - && (0 == config.compare(config.length() - xmlExt.length(), xmlExt.length(), xmlExt)) ) { - //user customzied sgct config + std::filesystem::path c = absPath(config); + + std::filesystem::path cj = c; + cj.replace_extension(".json"); + + std::filesystem::path cx = c; + cx.replace_extension(".xml"); + + if (c.extension().empty()) { + if (std::filesystem::exists(cj)) { + config += ".json"; + } + else if (std::filesystem::exists(cx)) { + config += ".xml"; + } + else { + throw ghoul::RuntimeError(fmt::format( + "Error loading configuration file {}. File could not be found", + config + )); + } } else { - config += xmlExt; + // user customzied sgct config } - } global::configuration->windowConfiguration = config; } @@ -1115,10 +1138,21 @@ int main(int argc, char* argv[]) { std::filesystem::path base = configurationFilePath.parent_path(); FileSys.registerPathToken("${BASE}", base); + // For now, we just initialize glfw since we can't execute anything meaningfully + // after SGCT initializes glfw. There is a bit of startup delay because of this, + // but it shouldn't be too bad + glfwInit(); + GLFWmonitor* m = glfwGetPrimaryMonitor(); + const GLFWvidmode* mode = glfwGetVideoMode(m); + glm::ivec2 size = glm::ivec2(mode->width, mode->height); + glfwTerminate(); + + // Loading configuration from disk LDEBUG("Loading configuration from disk"); *global::configuration = configuration::loadConfigurationFromFile( configurationFilePath.string(), + size, commandlineArguments.configurationOverride ); @@ -1157,7 +1191,6 @@ int main(int argc, char* argv[]) { // Call profile GUI const std::string labelFromCfgFile = " (from .cfg)"; - const std::string xmlExt = ".xml"; std::string windowCfgPreset = setWindowConfigPresetForGui( labelFromCfgFile, hasSGCTConfig, @@ -1205,8 +1238,7 @@ int main(int argc, char* argv[]) { win, hasSGCTConfig, windowConfiguration, - labelFromCfgFile, - xmlExt + labelFromCfgFile ); } else { glfwInit(); diff --git a/apps/Sync/CMakeLists.txt b/apps/Sync/CMakeLists.txt index 58ba3cbf69..9aca731357 100644 --- a/apps/Sync/CMakeLists.txt +++ b/apps/Sync/CMakeLists.txt @@ -2,7 +2,7 @@ # # # OpenSpace # # # -# Copyright (c) 2014-2021 # +# Copyright (c) 2014-2022 # # # # 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 # diff --git a/apps/Sync/main.cpp b/apps/Sync/main.cpp index 1de9e7aad5..00fd95d430 100644 --- a/apps/Sync/main.cpp +++ b/apps/Sync/main.cpp @@ -2,7 +2,7 @@ * * * OpenSpace * * * - * Copyright (c) 2014-2021 * + * Copyright (c) 2014-2022 * * * * 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 * diff --git a/apps/TaskRunner/CMakeLists.txt b/apps/TaskRunner/CMakeLists.txt index c000cb973f..017ee293c7 100644 --- a/apps/TaskRunner/CMakeLists.txt +++ b/apps/TaskRunner/CMakeLists.txt @@ -2,7 +2,7 @@ # # # OpenSpace # # # -# Copyright (c) 2014-2021 # +# Copyright (c) 2014-2022 # # # # 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 # diff --git a/apps/TaskRunner/main.cpp b/apps/TaskRunner/main.cpp index 1bd16c6394..979da435a8 100644 --- a/apps/TaskRunner/main.cpp +++ b/apps/TaskRunner/main.cpp @@ -2,7 +2,7 @@ * * * OpenSpace * * * - * Copyright (c) 2014-2021 * + * Copyright (c) 2014-2022 * * * * 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 * diff --git a/apps/Wormhole/CMakeLists.txt b/apps/Wormhole/CMakeLists.txt index 2478659808..f2ddb1915f 100644 --- a/apps/Wormhole/CMakeLists.txt +++ b/apps/Wormhole/CMakeLists.txt @@ -2,7 +2,7 @@ # # # OpenSpace # # # -# Copyright (c) 2014-2021 # +# Copyright (c) 2014-2022 # # # # 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 # diff --git a/apps/Wormhole/main.cpp b/apps/Wormhole/main.cpp index 1faa0b7c5d..2ac955bbe7 100644 --- a/apps/Wormhole/main.cpp +++ b/apps/Wormhole/main.cpp @@ -2,7 +2,7 @@ * * * OpenSpace * * * - * Copyright (c) 2014-2021 * + * Copyright (c) 2014-2022 * * * * 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 * @@ -77,6 +77,11 @@ int main(int argc, char** argv) { ) ); + ghoul::logging::LogManager::initialize( + ghoul::logging::LogLevel::Debug, + ghoul::logging::LogManager::ImmediateFlush::Yes + ); + commandlineParser.setCommandLine(arguments); commandlineParser.execute(); @@ -98,10 +103,6 @@ int main(int argc, char** argv) { settings.changeHostPassword = defaultChangeHostPassword.str(); } - ghoul::logging::LogManager::initialize( - ghoul::logging::LogLevel::Debug, - ghoul::logging::LogManager::ImmediateFlush::Yes - ); LINFO(fmt::format("Connection password: {}", settings.password)); LINFO(fmt::format("Host password: {}", settings.changeHostPassword)); diff --git a/config/equirectangular_gui.json b/config/equirectangular_gui.json new file mode 100644 index 0000000000..fe744ef269 --- /dev/null +++ b/config/equirectangular_gui.json @@ -0,0 +1,58 @@ +{ + "version": 1, + "masteraddress": "localhost", + "externalcontrolport": 20500, + "settings": { + "display": { + "swapinterval": 0 + } + }, + "nodes": [ + { + "address": "localhost", + "port": 20401, + "windows": [ + { + "name": "OpenSpace", + "fullscreen": false, + "draw2d": false, + "stereo": "none", + "pos": { "x": 50, "y": 50 }, + "size": { "x": 1280, "y": 720 }, + "viewports": [ + { + "tracked": true, + "pos": { "x": 0.0, "y": 0.0 }, + "size": { "x": 1.0, "y": 1.0 }, + "projection": { + "type": "EquirectangularProjection", + "quality": "1k" + } + } + ] + }, + { + "name": "GUI", + "tags": [ "GUI" ], + "fullscreen": false, + "draw3d": false, + "stereo": "none", + "pos": { "x": 50, "y": 50 }, + "size": { "x": 1280, "y": 720 }, + "viewports": [ + { + "pos": { "x": 0.0, "y": 0.0 }, + "size": { "x": 1.0, "y": 1.0 } + } + ] + } + ] + } + ], + "users": [ + { + "eyeseparation": 0.065, + "pos": { "x": 0.0, "y": 0.0, "z": 0.0 } + } + ] +} diff --git a/config/equirectangular_gui.xml b/config/equirectangular_gui.xml deleted file mode 100644 index 98c6d545bb..0000000000 --- a/config/equirectangular_gui.xml +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/config/fullscreen1080.json b/config/fullscreen1080.json new file mode 100644 index 0000000000..59ef891571 --- /dev/null +++ b/config/fullscreen1080.json @@ -0,0 +1,47 @@ +{ + "version": 1, + "masteraddress": "localhost", + "externalcontrolport": 20500, + "settings": { + "display": { + "swapinterval": 0 + } + }, + "nodes": [ + { + "address": "localhost", + "port": 20401, + "windows": [ + { + "fullscreen": true, + "name": "OpenSpace", + "msaa": 4, + "stereo": "none", + "pos": { "x": 0, "y": 0 }, + "size": { "x": 1920, "y": 1080 }, + "viewports": [ + { + "tracked": true, + "pos": { "x": 0.0, "y": 0.0 }, + "size": { "x": 1.0, "y": 1.0 }, + "projection": { + "type": "PlanarProjection", + "fov": { + "hfov": 80.0, + "vfov": 50.534015846724 + }, + "orientation": { "yaw": 0.0, "pitch": 0.0, "roll": 0.0 } + } + } + ] + } + ] + } + ], + "users": [ + { + "eyeseparation": 0.065, + "pos": { "x": 0.0, "y": 0.0, "z": 0.0 } + } + ] +} diff --git a/config/fullscreen1080.xml b/config/fullscreen1080.xml deleted file mode 100644 index 52d703f435..0000000000 --- a/config/fullscreen1080.xml +++ /dev/null @@ -1,24 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/config/gui_projector.json b/config/gui_projector.json new file mode 100644 index 0000000000..7afdaa45df --- /dev/null +++ b/config/gui_projector.json @@ -0,0 +1,64 @@ +{ + "version": 1, + "masteraddress": "localhost", + "externalcontrolport": 20500, + "settings": { + "display": { + "swapinterval": 0 + } + }, + "nodes": [ + { + "address": "localhost", + "port": 20401, + "windows": [ + { + "fullscreen": true, + "monitor": 1, + "name": "OpenSpace", + "draw2d": false, + "stereo": "none", + "pos": { "x": 0, "y": 0 }, + "size": { "x": 1920, "y": 1080 }, + "viewports": [ + { + "tracked": true, + "pos": { "x": 0.0, "y": 0.0 }, + "size": { "x": 1.0, "y": 1.0 }, + "projection": { + "type": "PlanarProjection", + "fov": { + "hfov": 80.0, + "vfov": 50.534015846724 + }, + "orientation": { "yaw": 0.0, "pitch": 0.0, "roll": 0.0 } + } + } + ] + }, + { + "fullscreen": false, + "border": false, + "name": "GUI", + "tags": [ "GUI" ], + "draw3d": false, + "stereo": "none", + "pos": { "x": 0, "y": 0 }, + "size": { "x": 1920, "y": 1080 }, + "viewports": [ + { + "pos": { "x": 0.0, "y": 0.0 }, + "size": { "x": 1.0, "y": 1.0 } + } + ] + } + ] + } + ], + "users": [ + { + "eyeseparation": 0.065, + "pos": { "x": 0.0, "y": 0.0, "z": 0.0 } + } + ] +} diff --git a/config/gui_projector.xml b/config/gui_projector.xml deleted file mode 100644 index 9ac213193b..0000000000 --- a/config/gui_projector.xml +++ /dev/null @@ -1,33 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/config/openvr_htcVive.xml b/config/openvr_htcVive.xml deleted file mode 100644 index c5ab46597a..0000000000 --- a/config/openvr_htcVive.xml +++ /dev/null @@ -1,23 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - diff --git a/config/openvr_oculusRiftCv1.xml b/config/openvr_oculusRiftCv1.xml deleted file mode 100644 index 665715fb53..0000000000 --- a/config/openvr_oculusRiftCv1.xml +++ /dev/null @@ -1,23 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - diff --git a/config/single.json b/config/single.json new file mode 100644 index 0000000000..b471846706 --- /dev/null +++ b/config/single.json @@ -0,0 +1,46 @@ +{ + "version": 1, + "masteraddress": "localhost", + "externalcontrolport": 20500, + "settings": { + "display": { + "swapinterval": 0 + } + }, + "nodes": [ + { + "address": "localhost", + "port": 20401, + "windows": [ + { + "name": "OpenSpace", + "fullscreen": false, + "stereo": "none", + "pos": { "x": 50, "y": 50 }, + "size": { "x": 1280, "y": 720 }, + "viewports": [ + { + "tracked": true, + "pos": { "x": 0.0, "y": 0.0 }, + "size": { "x": 1.0, "y": 1.0 }, + "projection": { + "type": "PlanarProjection", + "fov": { + "hfov": 80.0, + "vfov": 50.534015846724 + }, + "orientation": { "yaw": 0.0, "pitch": 0.0, "roll": 0.0 } + } + } + ] + } + ] + } + ], + "users": [ + { + "eyeseparation": 0.065, + "pos": { "x": 0.0, "y": 0.0, "z": 0.0 } + } + ] +} diff --git a/config/single.xml b/config/single.xml deleted file mode 100644 index 6ec2d5a125..0000000000 --- a/config/single.xml +++ /dev/null @@ -1,24 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/config/single_fisheye.json b/config/single_fisheye.json new file mode 100644 index 0000000000..adfacbe680 --- /dev/null +++ b/config/single_fisheye.json @@ -0,0 +1,37 @@ +{ + "version": 1, + "masteraddress": "localhost", + "nodes": [ + { + "address": "localhost", + "port": 20401, + "windows": [ + { + "name": "OpenSpace", + "fullscreen": false, + "stereo": "none", + "size": { "x": 1024, "y": 1024 }, + "viewports": [ + { + "pos": { "x": 0.0, "y": 0.0 }, + "size": { "x": 1.0, "y": 1.0 }, + "projection": { + "type": "FisheyeProjection", + "fov": 180.0, + "quality": "1k", + "tilt": 27.0, + "background": { "r": 0.1, "g": 0.1, "b": 0.1, "a": 1.0 } + } + } + ] + } + ] + } + ], + "users": [ + { + "eyeseparation": 0.06, + "pos": { "x": 0.0, "y": 0.0, "z": 0.0 } + } + ] +} diff --git a/config/single_fisheye.xml b/config/single_fisheye.xml deleted file mode 100644 index e27230e520..0000000000 --- a/config/single_fisheye.xml +++ /dev/null @@ -1,37 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - diff --git a/config/single_fisheye_gui.json b/config/single_fisheye_gui.json new file mode 100644 index 0000000000..6c78d1ecfd --- /dev/null +++ b/config/single_fisheye_gui.json @@ -0,0 +1,61 @@ +{ + "version": 1, + "masteraddress": "localhost", + "nodes": [ + { + "address": "localhost", + "port": 20401, + "windows": [ + { + "name": "OpenSpace", + "fullscreen": false, + "draw2d": false, + "stereo": "none", + "size": { "x": 1024, "y": 1024 }, + "viewports": [ + { + "pos": { "x": 0.0, "y": 0.0 }, + "size": { "x": 1.0, "y": 1.0 }, + "projection": { + "type": "FisheyeProjection", + "fov": 180.0, + "quality": "1k", + "tilt": 27.0, + "background": { "r": 0.1, "g": 0.1, "b": 0.1, "a": 1.0 } + } + } + ] + }, + { + "name": "GUI", + "tags": [ "GUI" ], + "fullscreen": false, + "draw3d": false, + "stereo": "none", + "pos": { "x": 50, "y": 50 }, + "size": { "x": 1024, "y": 1024 }, + "viewports": [ + { + "pos": { "x": 0.0, "y": 0.0 }, + "size": { "x": 1.0, "y": 1.0 }, + "projection": { + "type": "PlanarProjection", + "fov": { + "hfov": 80.0, + "vfov": 50.534015846724 + }, + "orientation": { "yaw": 0.0, "pitch": 0.0, "roll": 0.0 } + } + } + ] + } + ] + } + ], + "users": [ + { + "eyeseparation": 0.06, + "pos": { "x": 0.0, "y": 0.0, "z": 0.0 } + } + ] +} diff --git a/config/single_fisheye_gui.xml b/config/single_fisheye_gui.xml deleted file mode 100644 index 794a03b056..0000000000 --- a/config/single_fisheye_gui.xml +++ /dev/null @@ -1,53 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/config/single_gui.json b/config/single_gui.json new file mode 100644 index 0000000000..9149d936da --- /dev/null +++ b/config/single_gui.json @@ -0,0 +1,70 @@ +{ + "version": 1, + "masteraddress": "localhost", + "externalcontrolport": 20500, + "settings": { + "display": { + "swapinterval": 0 + } + }, + "nodes": [ + { + "address": "localhost", + "port": 20401, + "windows": [ + { + "name": "OpenSpace", + "fullscreen": false, + "draw2d": false, + "stereo": "none", + "pos": { "x": 50, "y": 50 }, + "size": { "x": 1280, "y": 720 }, + "viewports": [ + { + "tracked": true, + "pos": { "x": 0.0, "y": 0.0 }, + "size": { "x": 1.0, "y": 1.0 }, + "projection": { + "type": "PlanarProjection", + "fov": { + "hfov": 80.0, + "vfov": 50.534015846724 + }, + "orientation": { "yaw": 0.0, "pitch": 0.0, "roll": 0.0 } + } + } + ] + }, + { + "name": "GUI", + "tags": [ "GUI" ], + "fullscreen": false, + "draw3d": false, + "stereo": "none", + "pos": { "x": 50, "y": 50 }, + "size": { "x": 1280, "y": 720 }, + "viewports": [ + { + "pos": { "x": 0.0, "y": 0.0 }, + "size": { "x": 1.0, "y": 1.0 }, + "projection": { + "type": "PlanarProjection", + "fov": { + "hfov": 80.0, + "vfov": 50.534015846724 + }, + "orientation": { "yaw": 0.0, "pitch": 0.0, "roll": 0.0 } + } + } + ] + } + ] + } + ], + "users": [ + { + "eyeseparation": 0.065, + "pos": { "x": 0.0, "y": 0.0, "z": 0.0 } + } + ] +} diff --git a/config/single_gui.xml b/config/single_gui.xml deleted file mode 100644 index 832273090e..0000000000 --- a/config/single_gui.xml +++ /dev/null @@ -1,37 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/config/single_sbs_stereo.json b/config/single_sbs_stereo.json new file mode 100644 index 0000000000..2c0019f083 --- /dev/null +++ b/config/single_sbs_stereo.json @@ -0,0 +1,46 @@ +{ + "version": 1, + "masteraddress": "localhost", + "externalcontrolport": 20500, + "settings": { + "display": { + "swapinterval": 0 + } + }, + "nodes": [ + { + "address": "localhost", + "port": 20401, + "windows": [ + { + "name": "OpenSpace", + "fullscreen": false, + "stereo": "side_by_side", + "pos": { "x": 50, "y": 50 }, + "size": { "x": 1280, "y": 720 }, + "viewports": [ + { + "tracked": true, + "pos": { "x": 0.0, "y": 0.0 }, + "size": { "x": 1.0, "y": 1.0 }, + "projection": { + "type": "PlanarProjection", + "fov": { + "hfov": 80.0, + "vfov": 50.534015846724 + }, + "orientation": { "yaw": 0.0, "pitch": 0.0, "roll": 0.0 } + } + } + ] + } + ] + } + ], + "users": [ + { + "eyeseparation": 0.065, + "pos": { "x": 0.0, "y": 0.0, "z": 0.0 } + } + ] +} diff --git a/config/single_sbs_stereo.xml b/config/single_sbs_stereo.xml deleted file mode 100644 index e0707559c1..0000000000 --- a/config/single_sbs_stereo.xml +++ /dev/null @@ -1,24 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/config/single_two_win.json b/config/single_two_win.json new file mode 100644 index 0000000000..caaefa2cb1 --- /dev/null +++ b/config/single_two_win.json @@ -0,0 +1,59 @@ +{ + "version": 1, + "masteraddress": "127.0.0.1", + "nodes": [ + { + "address": "127.0.0.1", + "port": 20401, + "windows": [ + { + "border": true, + "fullscreen": false, + "pos": { "x": 10, "y": 100 }, + "size": { "x": 1280, "y": 720 }, + "viewports": [ + { + "tracked": true, + "pos": { "x": 0.0, "y": 0.0 }, + "size": { "x": 1.0, "y": 1.0 }, + "projection": { + "type": "PlanarProjection", + "fov": { + "hfov": 80.0, + "vfov": 50.534015846724 + }, + "orientation": { "yaw": 0.0, "pitch": 0.0, "roll": 0.0 } + } + } + ] + }, + { + "border": true, + "fullscreen": false, + "pos": { "x": 340, "y": 100 }, + "size": { "x": 1280, "y": 720 }, + "viewports": [ + { + "pos": { "x": 0.0, "y": 0.0 }, + "size": { "x": 1.0, "y": 1.0 }, + "projection": { + "type": "PlanarProjection", + "fov": { + "hfov": 80.0, + "vfov": 50.534015846724 + }, + "orientation": { "yaw": 0.0, "pitch": 0.0, "roll": 0.0 } + } + } + ] + } + ] + } + ], + "users": [ + { + "eyeseparation": 0.065, + "pos": { "x": 0.0, "y": 0.0, "z": 4.0 } + } + ] +} diff --git a/config/single_two_win.xml b/config/single_two_win.xml deleted file mode 100644 index ed1b09fc04..0000000000 --- a/config/single_two_win.xml +++ /dev/null @@ -1,32 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/config/spherical_mirror.json b/config/spherical_mirror.json new file mode 100644 index 0000000000..f8f1e5669c --- /dev/null +++ b/config/spherical_mirror.json @@ -0,0 +1,40 @@ +{ + "version": 1, + "masteraddress": "127.0.0.1", + "nodes": [ + { + "address": "127.0.0.1", + "port": 20401, + "windows": [ + { + "fullscreen": false, + "name": "Spherical Projection", + "stereo": "none", + "pos": { "x": 0, "y": 100 }, + "size": { "x": 1280, "y": 720 }, + "res": { "x": 2048, "y": 2048 }, + "viewports": [ + { + "mesh": "mesh/standard_16x9.data", + "pos": { "x": 0.0, "y": 0.0 }, + "size": { "x": 1.0, "y": 1.0 }, + "projection": { + "type": "FisheyeProjection", + "fov": 180.0, + "quality": "2k", + "tilt": 30.0, + "background": { "r": 0.1, "g": 0.1, "b": 0.1, "a": 1.0 } + } + } + ] + } + ] + } + ], + "users": [ + { + "eyeseparation": 0.06, + "pos": { "x": 0.0, "y": 0.0, "z": 0.0 } + } + ] +} diff --git a/config/spherical_mirror.xml b/config/spherical_mirror.xml deleted file mode 100644 index f15de39d45..0000000000 --- a/config/spherical_mirror.xml +++ /dev/null @@ -1,34 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/config/spherical_mirror_gui.json b/config/spherical_mirror_gui.json new file mode 100644 index 0000000000..07d4ffbd7a --- /dev/null +++ b/config/spherical_mirror_gui.json @@ -0,0 +1,65 @@ +{ + "version": 1, + "masteraddress": "127.0.0.1", + "nodes": [ + { + "address": "127.0.0.1", + "port": 20401, + "windows": [ + { + "fullscreen": false, + "name": "Spherical Projection", + "stereo": "none", + "draw2d": false, + "pos": { "x": 0, "y": 100 }, + "size": { "x": 1280, "y": 720 }, + "res": { "x": 2048, "y": 2048 }, + "viewports": [ + { + "mesh": "mesh/standard_16x9.data", + "pos": { "x": 0.0, "y": 0.0 }, + "size": { "x": 1.0, "y": 1.0 }, + "projection": { + "type": "FisheyeProjection", + "fov": 180.0, + "quality": "2k", + "tilt": 30.0, + "background": { "r": 0.1, "g": 0.1, "b": 0.1, "a": 1.0 } + } + } + ] + }, + { + "fullscreen": false, + "name": "GUI", + "tags": [ "GUI" ], + "draw3d": false, + "stereo": "none", + "pos": { "x": 50, "y": 50 }, + "size": { "x": 1280, "y": 720 }, + "res": { "x": 2048, "y": 2048 }, + "viewports": [ + { + "pos": { "x": 0.0, "y": 0.0 }, + "size": { "x": 1.0, "y": 1.0 }, + "projection": { + "type": "PlanarProjection", + "fov": { + "hfov": 80.0, + "vfov": 50.534015846724 + }, + "orientation": { "yaw": 0.0, "pitch": 0.0, "roll": 0.0 } + } + } + ] + } + ] + } + ], + "users": [ + { + "eyeseparation": 0.06, + "pos": { "x": 0.0, "y": 0.0, "z": 0.0 } + } + ] +} diff --git a/config/spherical_mirror_gui.xml b/config/spherical_mirror_gui.xml deleted file mode 100644 index e1e84e46df..0000000000 --- a/config/spherical_mirror_gui.xml +++ /dev/null @@ -1,48 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/config/spout_output.json b/config/spout_output.json new file mode 100644 index 0000000000..a6d5d1148d --- /dev/null +++ b/config/spout_output.json @@ -0,0 +1,36 @@ +{ + "version": 1, + "masteraddress": "localhost", + "nodes": [ + { + "address": "localhost", + "port": 20401, + "windows": [ + { + "fullscreen": false, + "name": "OpenSpace", + "stereo": "none", + "size": { "x": 1024, "y": 1024 }, + "viewports": [ + { + "pos": { "x": 0.0, "y": 0.0 }, + "size": { "x": 1.0, "y": 1.0 }, + "projection": { + "type": "SpoutOutputProjection", + "quality": "1k", + "mappingspoutname": "OpenSpace", + "background": { "r": 0.1, "g": 0.1, "b": 0.1, "a": 1.0 } + } + } + ] + } + ] + } + ], + "users": [ + { + "eyeseparation": 0.06, + "pos": { "x": 0.0, "y": 0.0, "z": 0.0 } + } + ] +} diff --git a/config/spout_output.xml b/config/spout_output.xml deleted file mode 100644 index da4efdc48f..0000000000 --- a/config/spout_output.xml +++ /dev/null @@ -1,19 +0,0 @@ - - - - - - - - - - - - - - - - - - - diff --git a/config/two_nodes.json b/config/two_nodes.json new file mode 100644 index 0000000000..723250a6f0 --- /dev/null +++ b/config/two_nodes.json @@ -0,0 +1,64 @@ +{ + "version": 1, + "masteraddress": "127.0.0.1", + "nodes": [ + { + "address": "127.0.0.1", + "port": 20401, + "windows": [ + { + "fullscreen": false, + "pos": { "x": 0, "y": 300 }, + "size": { "x": 1280, "y": 720 }, + "viewports": [ + { + "tracked": true, + "pos": { "x": 0.0, "y": 0.0 }, + "size": { "x": 1.0, "y": 1.0 }, + "projection": { + "type": "PlanarProjection", + "fov": { + "hfov": 80.0, + "vfov": 50.534015846724 + }, + "orientation": { "yaw": 0.0, "pitch": 0.0, "roll": 0.0 } + } + } + ] + } + ] + }, + { + "address": "127.0.0.2", + "port": 20402, + "windows": [ + { + "fullscreen": false, + "pos": { "x": 640, "y": 300 }, + "size": { "x": 1280, "y": 720 }, + "viewports": [ + { + "tracked": true, + "pos": { "x": 0.0, "y": 0.0 }, + "size": { "x": 1.0, "y": 1.0 }, + "projection": { + "type": "PlanarProjection", + "fov": { + "hfov": 80.0, + "vfov": 50.534015846724 + }, + "orientation": { "yaw": 0.0, "pitch": 0.0, "roll": 0.0 } + } + } + ] + } + ] + } + ], + "users": [ + { + "eyeseparation": 0.065, + "pos": { "x": 0.0, "y": 0.0, "z": 4.0 } + } + ] +} diff --git a/config/two_nodes.xml b/config/two_nodes.xml deleted file mode 100644 index e47946d5ef..0000000000 --- a/config/two_nodes.xml +++ /dev/null @@ -1,36 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/data/assets/actions/toggle_trail.asset b/data/assets/actions/toggle_trail.asset index d3c5848d6c..0cb559b0f3 100644 --- a/data/assets/actions/toggle_trail.asset +++ b/data/assets/actions/toggle_trail.asset @@ -99,7 +99,17 @@ asset.onInitialize(function() end) asset.onDeinitialize(function() - openspace.action.removeAction(toggle_trail.Identifier) - openspace.action.removeAction(show_trail.Identifier) - openspace.action.removeAction(hide_trail.Identifier) + openspace.action.removeAction(toggle_trail) + openspace.action.removeAction(show_trail) + openspace.action.removeAction(hide_trail) end) + + +asset.meta = { + Name = "Actions - Toggle current Trails", + Version = "1.0", + Description = [[ Asset providing actions to toggle trails]], + Author = "OpenSpace Team", + URL = "http://openspaceproject.com", + License = "MIT license" +} diff --git a/data/assets/base.asset b/data/assets/base.asset index d80f40934f..ffed062348 100644 --- a/data/assets/base.asset +++ b/data/assets/base.asset @@ -2,69 +2,66 @@ -- loading this scene directly without any other elements added on top of it will -- probably not work -asset.require('./base_blank') +asset.require("./base_blank") -- Specifying which other assets should be loaded in this scene -asset.require('scene/solarsystem/sun/sun') -asset.require('scene/solarsystem/sun/glare') -asset.require('scene/solarsystem/sun/habitablezone') -asset.require('scene/solarsystem/sun/default_layers') -asset.require('scene/solarsystem/planets/planets') -asset.require('scene/solarsystem/planets/default_layers') -asset.require('scene/solarsystem/dwarf_planets/pluto/system') -asset.require('scene/solarsystem/dwarf_planets/pluto/default_layers') -asset.require('scene/solarsystem/dwarf_planets/pluto/charon/default_layers') -asset.require('scene/milkyway/milkyway/volume') -asset.require('scene/milkyway/constellations/constellation_art') -asset.require('scene/milkyway/constellations/constellation_keybinds') -asset.require('scene/milkyway/objects/orionnebula/orionnebula') -asset.require('util/launcher_images') +asset.require("scene/solarsystem/sun/sun") +asset.require("scene/solarsystem/sun/glare") +asset.require("scene/solarsystem/sun/habitablezone") +asset.require("scene/solarsystem/sun/default_layers") +asset.require("scene/solarsystem/planets/planets") +asset.require("scene/solarsystem/planets/default_layers") +asset.require("scene/solarsystem/dwarf_planets/pluto/system") +asset.require("scene/solarsystem/dwarf_planets/pluto/default_layers") +asset.require("scene/solarsystem/dwarf_planets/pluto/charon/default_layers") +asset.require("scene/milkyway/milkyway/volume") +asset.require("scene/milkyway/constellations/constellation_art") +asset.require("scene/milkyway/constellations/constellation_keybinds") +asset.require("scene/milkyway/objects/orionnebula/orionnebula") +asset.require("util/launcher_images") -- For exoplanet system visualizations -asset.require('scene/milkyway/exoplanets/exoplanets_data') -asset.require('scene/milkyway/exoplanets/exoplanets_textures') +asset.require("scene/milkyway/exoplanets/exoplanets_data") +asset.require("scene/milkyway/exoplanets/exoplanets_textures") -local assetHelper = asset.require('util/asset_helper') -asset.require('scene/digitaluniverse/2dF') -asset.require('scene/digitaluniverse/2mass') -asset.require('scene/digitaluniverse/6dF') -asset.require('scene/digitaluniverse/abell') -asset.require('scene/digitaluniverse/alternatestarlabels') -asset.require('scene/digitaluniverse/backgroundradiation') --- asset.require('scene/digitaluniverse/backgroundradiation_multiverse') -asset.require('scene/digitaluniverse/clusters') -asset.require('scene/digitaluniverse/constellationbounds') -asset.require('scene/digitaluniverse/constellations') -asset.require('scene/digitaluniverse/deepsky') -asset.require('scene/digitaluniverse/dwarfs') -asset.require('scene/digitaluniverse/exoplanets') -asset.require('scene/digitaluniverse/globularclusters') -asset.require('scene/digitaluniverse/grids') -asset.require('scene/digitaluniverse/groups') -asset.require('scene/digitaluniverse/h2regions') -asset.require('scene/digitaluniverse/kepler') -asset.require('scene/digitaluniverse/localdwarfs') -asset.require('scene/digitaluniverse/milkyway') -asset.require('scene/digitaluniverse/milkyway_arm_labels') -asset.require('scene/digitaluniverse/milkyway_data') -asset.require('scene/digitaluniverse/milkyway_label') -asset.require('scene/digitaluniverse/milkyway_sphere') -asset.require('scene/digitaluniverse/obassociations') -asset.require('scene/digitaluniverse/openclusters') -asset.require('scene/digitaluniverse/planetarynebulae') -asset.require('scene/digitaluniverse/pulsars') -asset.require('scene/digitaluniverse/quasars') -asset.require('scene/digitaluniverse/sdss') -asset.require('scene/digitaluniverse/starlabels') -asset.require('scene/digitaluniverse/starorbits') -asset.require('scene/digitaluniverse/stars') -asset.require('scene/digitaluniverse/superclusters') -asset.require('scene/digitaluniverse/supernovaremnants') -asset.require('scene/digitaluniverse/tully') -asset.require('scene/digitaluniverse/voids') +asset.require("scene/digitaluniverse/2dF") +asset.require("scene/digitaluniverse/2mass") +asset.require("scene/digitaluniverse/6dF") +asset.require("scene/digitaluniverse/abell") +asset.require("scene/digitaluniverse/alternatestarlabels") +asset.require("scene/digitaluniverse/backgroundradiation") +asset.require("scene/digitaluniverse/clusters") +asset.require("scene/digitaluniverse/constellationbounds") +asset.require("scene/digitaluniverse/constellations") +asset.require("scene/digitaluniverse/deepsky") +asset.require("scene/digitaluniverse/dwarfs") +asset.require("scene/digitaluniverse/exoplanets") +asset.require("scene/digitaluniverse/globularclusters") +asset.require("scene/digitaluniverse/grids") +asset.require("scene/digitaluniverse/groups") +asset.require("scene/digitaluniverse/h2regions") +asset.require("scene/digitaluniverse/kepler") +asset.require("scene/digitaluniverse/localdwarfs") +asset.require("scene/digitaluniverse/milkyway") +asset.require("scene/digitaluniverse/milkyway_arm_labels") +asset.require("scene/digitaluniverse/milkyway_label") +asset.require("scene/digitaluniverse/milkyway_sphere") +asset.require("scene/digitaluniverse/obassociations") +asset.require("scene/digitaluniverse/openclusters") +asset.require("scene/digitaluniverse/planetarynebulae") +asset.require("scene/digitaluniverse/pulsars") +asset.require("scene/digitaluniverse/quasars") +asset.require("scene/digitaluniverse/sdss") +asset.require("scene/digitaluniverse/starlabels") +asset.require("scene/digitaluniverse/starorbits") +asset.require("scene/digitaluniverse/stars") +asset.require("scene/digitaluniverse/superclusters") +asset.require("scene/digitaluniverse/supernovaremnants") +asset.require("scene/digitaluniverse/tully") +asset.require("scene/digitaluniverse/voids") -asset.require('customization/globebrowsing') +asset.require("customization/globebrowsing") asset.onInitialize(function () openspace.globebrowsing.loadWMSServersFromFile( diff --git a/data/assets/base_blank.asset b/data/assets/base_blank.asset index 6c47bea5d9..5b771af9ab 100644 --- a/data/assets/base_blank.asset +++ b/data/assets/base_blank.asset @@ -1,23 +1,27 @@ -- This is a blank scene that that just sets up the default menus/dasboard/keys, etc. -local assetHelper = asset.require('util/asset_helper') -local propertyHelper = asset.require('util/property_helper') +local propertyHelper = asset.require("util/property_helper") -- Specifying which other assets should be loaded in this scene -asset.require('spice/base') +asset.require("spice/base") -- Load default key bindings applicable to most scenes -asset.require('dashboard/default_dashboard') -asset.require('util/default_keybindings') +asset.require("dashboard/default_dashboard") +asset.require("util/default_keybindings") -- Load web gui -local webGui = asset.require('util/webgui') +local webGui = asset.require("util/webgui") local toggle_trails = { Identifier = "os_default.toggle_trails", Name = "Toggle Trails", - Command = "local list = openspace.getProperty('{planetTrail_solarSystem}.Renderable.Enabled'); for _,v in pairs(list) do openspace.setPropertyValueSingle(v, not openspace.getPropertyValue(v)) end\n" .. - "local moonlist = openspace.getProperty('{moonTrail_solarSystem}.Renderable.Enabled'); for _,v in pairs(moonlist) do openspace.setPropertyValueSingle(v, not openspace.getPropertyValue(v)) end", + Command = [[ + local list = openspace.getProperty("{planetTrail_solarSystem}.Renderable.Enabled"); + for _,v in pairs(list) do openspace.setPropertyValueSingle(v, not openspace.getPropertyValue(v)) end + + local moonlist = openspace.getProperty("{moonTrail_solarSystem}.Renderable.Enabled"); + for _,v in pairs(moonlist) do openspace.setPropertyValueSingle(v, not openspace.getPropertyValue(v)) end + ]], Documentation = "Toggles the visibility of planet and moon trails", GuiPath = "/Rendering", IsLocal = false, @@ -28,7 +32,10 @@ local toggle_trails = { local toggle_planet_labels = { Identifier = "os_default.toggle_planet_labels", Name = "Toggle planet labels", - Command = "local list = openspace.getProperty('{solarsystem_labels}.Renderable.Enabled'); for _,v in pairs(list) do openspace.setPropertyValueSingle(v, not openspace.getPropertyValue(v)) end", + Command = [[ + local list = openspace.getProperty("{solarsystem_labels}.Renderable.Enabled"); + for _,v in pairs(list) do openspace.setPropertyValueSingle(v, not openspace.getPropertyValue(v)) end + ]], Documentation = "Turns on visibility for all solar system labels", GuiPath = "/Rendering", IsLocal = false, @@ -51,9 +58,9 @@ asset.onInitialize(function () end) asset.onDeinitialize(function () - openspace.action.removeAction(toggle_trails.Identifier) + openspace.action.removeAction(toggle_trails) openspace.clearKey(toggle_trails.Key) - openspace.action.removeAction(toggle_planet_labels.Identifier) + openspace.action.removeAction(toggle_planet_labels) openspace.clearKey(toggle_planet_labels.Key) end) diff --git a/data/assets/customization/globebrowsing.asset b/data/assets/customization/globebrowsing.asset index fe03f650af..a5b5eeb090 100644 --- a/data/assets/customization/globebrowsing.asset +++ b/data/assets/customization/globebrowsing.asset @@ -4,7 +4,7 @@ local CreateFocusNodes = false local AddMarsLayers = true local AddMoonLayers = true local AddMercuryLayers = true -local DataFolder = openspace.absPath('${BASE}/../OpenSpaceData') +local DataFolder = openspace.absPath("${BASE}/../OpenSpaceData") ---------------------------------------- -- If you add layers for different planets than listed here, be sure to add an @@ -23,61 +23,61 @@ local vrt_folders = { -- CTX will stomp over the HiRISE. -- tl;dr: Specify CTX folders first, then HiRISE - -- example: 'C:/OpenSpace/GlobeBrowsingData/Mars/CTX' + -- example: "C:/OpenSpace/GlobeBrowsingData/Mars/CTX" -- We recommend using this folder for CTX - DataFolder .. '/Mars/CTX', + DataFolder .. "/Mars/CTX", -- if not and you have a custom path for CTX layers, enter it below - '', + "", -- We recommend using this folder for HiRISE - DataFolder .. '/Mars/HiRISE', + DataFolder .. "/Mars/HiRISE", -- if not and you have a custom path for HiRISE layers, enter it below - '' + "" }, Moon = { -- Add folders here whose contents will be automatically added to the Moon globe -- If multiple folders are added, the results will be added sequentially, meaning that -- if areas overlap, images from the lower results will overwrite the images from former -- results - -- example: 'C:/OpenSpace/GlobeBrowsingData/Moon' - DataFolder .. '/Moon', - DataFolder .. '/Apollo', - '' + -- example: "C:/OpenSpace/GlobeBrowsingData/Moon" + DataFolder .. "/Moon", + DataFolder .. "/Apollo", + "" }, Mercury = { -- Add folders here whose contents will be automatically added to the Mercury globe -- If multiple folders are added, the results will be added sequentially, meaning that -- if areas overlap, images from the lower results will overwrite the images from former -- results - -- example: 'C:/OpenSpace/GlobeBrowsingData/Mercury' - DataFolder .. '/Mercury', - '' + -- example: "C:/OpenSpace/GlobeBrowsingData/Mercury" + DataFolder .. "/Mercury", + "" } } -- Add require statements for assets exporting the neccessary globes -- here we add Mars, Moon and Mercury: if AddMarsLayers then - asset.require('../scene/solarsystem/planets/mars/mars') + asset.require("../scene/solarsystem/planets/mars/mars") else - vrt_folders['Mars'] = nil + vrt_folders["Mars"] = nil end if AddMoonLayers then - asset.require('../scene/solarsystem/planets/earth/moon/moon') + asset.require("../scene/solarsystem/planets/earth/moon/moon") else - vrt_folders['Moon'] = nil + vrt_folders["Moon"] = nil end if AddMercuryLayers then - asset.require('../scene/solarsystem/planets/mercury/mercury') + asset.require("../scene/solarsystem/planets/mercury/mercury") else - vrt_folders['Mercury'] = nil + vrt_folders["Mercury"] = nil end asset.onInitialize(function () -- Add local patches described at the top of this file for obj, list in pairs(vrt_folders) do for _, dir in pairs(list) do - if (dir ~= '') then + if (dir ~= "") then openspace.globebrowsing.addBlendingLayersFromDirectory(dir, obj) if CreateFocusNodes then @@ -87,3 +87,14 @@ asset.onInitialize(function () end end end) + + +asset.meta = { + Name = "Customization - GlobeBrowsing", + Version = "1.0", + Description = [[ This asset adds planetary images that can be downloaded separately + and placed in the OpenSpaceData folder]], + Author = "OpenSpace Team", + URL = "http://openspaceproject.com", + License = "MIT license" +} diff --git a/data/assets/customization/gui.asset b/data/assets/customization/gui.asset index 6a43444b0a..e89fa7b955 100644 --- a/data/assets/customization/gui.asset +++ b/data/assets/customization/gui.asset @@ -6,3 +6,13 @@ asset.export("webguiDevelopmentMode", true) -- 2) Clone the repository: https://github.com/OpenSpace/OpenSpace-WebGuiFrontend -- 3) Install nodejs (including npm) -- 4) Within the repository, run `npm install` and `npm start` + + +asset.meta = { + Name = "Customization - User Interface", + Version = "1.0", + Description = [[ This asset is used by developers working on the GUI.]], + Author = "OpenSpace Team", + URL = "http://openspaceproject.com", + License = "MIT license" +} diff --git a/data/assets/dashboard/date.asset b/data/assets/dashboard/date.asset index 01ada33be2..111e8125fb 100644 --- a/data/assets/dashboard/date.asset +++ b/data/assets/dashboard/date.asset @@ -9,5 +9,17 @@ asset.onInitialize(function() end) asset.onDeinitialize(function() - openspace.dashboard.removeDashboardItem(item.Identifier) + openspace.dashboard.removeDashboardItem(item) end) + +asset.export(item) + + +asset.meta = { + Name = "Dashboard - Date", + Version = "1.0", + Description = [[ This asset provides a Date dashboard item.]], + Author = "OpenSpace Team", + URL = "http://openspaceproject.com", + License = "MIT license" +} diff --git a/data/assets/dashboard/default_dashboard.asset b/data/assets/dashboard/default_dashboard.asset index af524db703..fcb7c9be8b 100644 --- a/data/assets/dashboard/default_dashboard.asset +++ b/data/assets/dashboard/default_dashboard.asset @@ -1,8 +1,16 @@ -local assetHelper = asset.require('util/asset_helper') +asset.require("./date") +asset.require("./simulationincrement") +asset.require("./distance") +asset.require("./framerate") +asset.require("./parallelconnection") +asset.require("./globelocation") -asset.require('./date') -asset.require('./simulationincrement') -asset.require('./distance') -asset.require('./framerate') -asset.require('./parallelconnection') -asset.require('./globelocation') + +asset.meta = { + Name = "Dashboard - Default Items", + Version = "1.0", + Description = [[ This asset provides the default items for the dashboard.]], + Author = "OpenSpace Team", + URL = "http://openspaceproject.com", + License = "MIT license" +} diff --git a/data/assets/dashboard/distance.asset b/data/assets/dashboard/distance.asset index 6316a79948..e10cb5a54e 100644 --- a/data/assets/dashboard/distance.asset +++ b/data/assets/dashboard/distance.asset @@ -9,5 +9,17 @@ asset.onInitialize(function() end) asset.onDeinitialize(function() - openspace.dashboard.removeDashboardItem(item.Identifier) + openspace.dashboard.removeDashboardItem(item) end) + +asset.export(item) + + +asset.meta = { + Name = "Dashboard - Distance", + Version = "1.0", + Description = [[ This asset provides a Distance dashboard item.]], + Author = "OpenSpace Team", + URL = "http://openspaceproject.com", + License = "MIT license" +} diff --git a/data/assets/dashboard/framerate.asset b/data/assets/dashboard/framerate.asset index 1c28a17674..47b6b3b71b 100644 --- a/data/assets/dashboard/framerate.asset +++ b/data/assets/dashboard/framerate.asset @@ -9,5 +9,17 @@ asset.onInitialize(function() end) asset.onDeinitialize(function() - openspace.dashboard.removeDashboardItem(item.Identifier) + openspace.dashboard.removeDashboardItem(item) end) + +asset.export(item) + + +asset.meta = { + Name = "Dashboard - Framerate", + Version = "1.0", + Description = [[ This asset provides a Framerate dashboard item.]], + Author = "OpenSpace Team", + URL = "http://openspaceproject.com", + License = "MIT license" +} diff --git a/data/assets/dashboard/globelocation.asset b/data/assets/dashboard/globelocation.asset index 268e2593f7..8fd743b7f9 100644 --- a/data/assets/dashboard/globelocation.asset +++ b/data/assets/dashboard/globelocation.asset @@ -9,5 +9,17 @@ asset.onInitialize(function() end) asset.onDeinitialize(function() - openspace.dashboard.removeDashboardItem(item.Identifier) + openspace.dashboard.removeDashboardItem(item) end) + +asset.export(item) + + +asset.meta = { + Name = "Dashboard - GlobeLocation", + Version = "1.0", + Description = [[ This asset provides a GlobeLocation dashboard item.]], + Author = "OpenSpace Team", + URL = "http://openspaceproject.com", + License = "MIT license" +} diff --git a/data/assets/dashboard/parallelconnection.asset b/data/assets/dashboard/parallelconnection.asset index 2ee8bd6307..29f932fc8b 100644 --- a/data/assets/dashboard/parallelconnection.asset +++ b/data/assets/dashboard/parallelconnection.asset @@ -9,5 +9,17 @@ asset.onInitialize(function() end) asset.onDeinitialize(function() - openspace.dashboard.removeDashboardItem(item.Identifier) + openspace.dashboard.removeDashboardItem(item) end) + +asset.export(item) + + +asset.meta = { + Name = "Dashboard - ParallelConnection", + Version = "1.0", + Description = [[ This asset provides a ParallelConnection dashboard item.]], + Author = "OpenSpace Team", + URL = "http://openspaceproject.com", + License = "MIT license" +} diff --git a/data/assets/dashboard/simulationincrement.asset b/data/assets/dashboard/simulationincrement.asset index 1ced58eed5..0e72bcbf22 100644 --- a/data/assets/dashboard/simulationincrement.asset +++ b/data/assets/dashboard/simulationincrement.asset @@ -9,5 +9,18 @@ asset.onInitialize(function() end) asset.onDeinitialize(function() - openspace.dashboard.removeDashboardItem(item.Identifier) + openspace.dashboard.removeDashboardItem(item) end) + +asset.export(item) + + +asset.meta = { + Name = "Dashboard - Simulation Increment", + Version = "1.0", + Description = [[ This asset provides a dashboard item that shows the simulation + increment, meaning how fast the in-game time progresses relative to the wall-clock.]], + Author = "OpenSpace Team", + URL = "http://openspaceproject.com", + License = "MIT license" +} diff --git a/data/assets/dashboard/velocity.asset b/data/assets/dashboard/velocity.asset index 5373ee315c..2e3fea1a6b 100644 --- a/data/assets/dashboard/velocity.asset +++ b/data/assets/dashboard/velocity.asset @@ -10,5 +10,17 @@ asset.onInitialize(function() end) asset.onDeinitialize(function() - openspace.dashboard.removeDashboardItem(item.Identifier) + openspace.dashboard.removeDashboardItem(item) end) + +asset.export(item) + + +asset.meta = { + Name = "Dashboard - Velocity", + Version = "1.0", + Description = [[ This asset provides a dashboard item that shows the camera's velocity]], + Author = "OpenSpace Team", + URL = "http://openspaceproject.com", + License = "MIT license" +} diff --git a/data/assets/events/toggle_trail.asset b/data/assets/events/toggle_trail.asset index 2e397ed7d8..803885cf73 100644 --- a/data/assets/events/toggle_trail.asset +++ b/data/assets/events/toggle_trail.asset @@ -1,4 +1,4 @@ -local action = asset.require('actions/toggle_trail') +local action = asset.require("actions/toggle_trail") asset.onInitialize(function() openspace.event.registerEventAction( diff --git a/data/assets/examples/animation.asset b/data/assets/examples/animation.asset index 24a66a4d94..5805b754aa 100644 --- a/data/assets/examples/animation.asset +++ b/data/assets/examples/animation.asset @@ -1,6 +1,5 @@ -local assetHelper = asset.require('util/asset_helper') -local sunTransforms = asset.require('scene/solarsystem/sun/transforms') -local transforms = asset.require('scene/solarsystem/planets/earth/transforms') +local sunTransforms = asset.require("scene/solarsystem/sun/transforms") +local transforms = asset.require("scene/solarsystem/planets/earth/transforms") local model = asset.syncedResource({ Name = "Animated Box", @@ -22,7 +21,7 @@ local animationLoop = { }, Renderable = { Type = "RenderableModel", - GeometryFile = model .. "/BoxAnimated.glb", + GeometryFile = model .. "BoxAnimated.glb", EnableAnimation = true, AnimationMode = "LoopFromStart", AnimationStartTime = StartTime, @@ -56,7 +55,7 @@ local animationLoopInf = { }, Renderable = { Type = "RenderableModel", - GeometryFile = model .. "/BoxAnimated.glb", + GeometryFile = model .. "BoxAnimated.glb", EnableAnimation = true, AnimationMode = "LoopInfinitely", AnimationStartTime = StartTime, @@ -90,7 +89,7 @@ local animationOnce = { }, Renderable = { Type = "RenderableModel", - GeometryFile = model .. "/BoxAnimated.glb", + GeometryFile = model .. "BoxAnimated.glb", EnableAnimation = true, AnimationMode = "Once", AnimationStartTime = StartTime, @@ -124,7 +123,7 @@ local animationBounceInf = { }, Renderable = { Type = "RenderableModel", - GeometryFile = model .. "/BoxAnimated.glb", + GeometryFile = model .. "BoxAnimated.glb", EnableAnimation = true, AnimationMode = "BounceInfinitely", AnimationStartTime = StartTime, @@ -158,7 +157,7 @@ local animationBounce = { }, Renderable = { Type = "RenderableModel", - GeometryFile = model .. "/BoxAnimated.glb", + GeometryFile = model .. "BoxAnimated.glb", EnableAnimation = true, AnimationMode = "BounceFromStart", AnimationStartTime = StartTime, @@ -181,13 +180,28 @@ local animationBounce = { } } -assetHelper.registerSceneGraphNodesAndExport(asset, { - animationLoop, - animationLoopInf, - animationOnce, - animationBounceInf, - animationBounce -}) +asset.onInitialize(function() + openspace.addSceneGraphNode(animationLoop) + openspace.addSceneGraphNode(animationLoopInf) + openspace.addSceneGraphNode(animationOnce) + openspace.addSceneGraphNode(animationBounceInf) + openspace.addSceneGraphNode(animationBounce) +end) + +asset.onDeinitialize(function() + openspace.removeSceneGraphNode(animationBounce) + openspace.removeSceneGraphNode(animationBounceInf) + openspace.removeSceneGraphNode(animationOnce) + openspace.removeSceneGraphNode(animationLoopInf) + openspace.removeSceneGraphNode(animationLoop) +end) + + +asset.export(animationLoop) +asset.export(animationLoopInf) +asset.export(animationOnce) +asset.export(animationBounceInf) +asset.export(animationBounce) -- Asset asset.meta = { @@ -196,17 +210,11 @@ asset.meta = { Description = "Simple animation example asset with an animated box model", Author = "OpenSpace Team", URL = "http://openspaceproject.com", - License = "MIT license", - Identifiers = { - "animationLoop", - "animationLoopInf", - "animationOnce", - "animationBounceInf", - "animationBounce" - } + License = "MIT license" } -- Model +-- @TODO: At the moment, this overwrites the previous meta description. Probably needs a way to specify multiple meta's per file? asset.meta = { Name = "Animated Box Model", Version = "1.0", @@ -216,12 +224,5 @@ asset.meta = { License = [[ Creative Commons Attribution 4.0 International License, https://creativecommons.org/licenses/by/4.0/ - ]], - Identifiers = { - "animationLoop", - "animationLoopInf", - "animationOnce", - "animationBounceInf", - "animationBounce" - } + ]] } diff --git a/data/assets/examples/approachevents.asset b/data/assets/examples/approachevents.asset index 47ddc3281c..90b049096f 100644 --- a/data/assets/examples/approachevents.asset +++ b/data/assets/examples/approachevents.asset @@ -1,6 +1,5 @@ -local assetHelper = asset.require('util/asset_helper') -local sunTransforms = asset.require('scene/solarsystem/sun/transforms') -local transforms = asset.require('scene/solarsystem/planets/earth/transforms') +local sunTransforms = asset.require("scene/solarsystem/sun/transforms") +local transforms = asset.require("scene/solarsystem/planets/earth/transforms") local generic_action = { Identifier = "os.example.generic", @@ -32,7 +31,7 @@ local obj = { }, Renderable = { Type = "RenderableModel", - GeometryFile = model .. "/BoxAnimated.glb", + GeometryFile = model .. "BoxAnimated.glb", ModelScale = 1.0, LightSources = { { @@ -63,6 +62,6 @@ asset.onInitialize(function() end) asset.onDeinitialize(function() - openspace.removeSceneGraphNode(obj.Identifier) - openspace.action.removeAction(generic_action.Identifier) + openspace.removeSceneGraphNode(obj) + openspace.action.removeAction(generic_action) end) diff --git a/data/assets/examples/basic.scene b/data/assets/examples/basic.scene deleted file mode 100644 index a4ca571d1b..0000000000 --- a/data/assets/examples/basic.scene +++ /dev/null @@ -1,25 +0,0 @@ -local assetHelper = asset.require('util/asset_helper') -local propertyHelper = asset.require('util/property_helper') -local debugHelper = asset.require('util/debug_helper') - --- At this point, a scene needs basic spice data to load. -asset.require('spice/base') - -asset.require('util/default_keybindings') -asset.require('util/default_dashboard') - -asset.require('util/webgui') -local spheres = asset.require('examples/spheres') - -debugHelper.registerCartesianAxes(asset, { - Parent = "Root", - Scale = 10 -}) - -asset.onInitialize(function () - openspace.navigation.setNavigationState({ - Anchor = "Root", - Position = { 20, 20, 20 }, - Up = {0, 1, 0}, - }) -end) diff --git a/data/assets/examples/dashboarditems.asset b/data/assets/examples/dashboarditems.asset index f76fe2e7a0..08e61ac06d 100644 --- a/data/assets/examples/dashboarditems.asset +++ b/data/assets/examples/dashboarditems.asset @@ -1,50 +1,84 @@ -local assetHelper = asset.require('util/asset_helper') +local angle = { + Type = "DashboardItemAngle", + Identifier = "Angle", + GuiName = "Angle", + ReferenceType = "Node", + ReferenceNodeName = "Earth", + DestinationType = "Node", + DestinationNodeName = "Moon" +} -assetHelper.registerDashboardItems(asset, { - { - Type = "DashboardItemAngle", - Identifier = "Angle", - GuiName = "Angle", - ReferenceType = "Node", - ReferenceNodeName = "Earth", - DestinationType = "Node", - DestinationNodeName = "Moon" - }, - { - Type = "DashboardItemDate", - Identifier = "Date", - GuiName = "Date" - }, - { - Type = "DashboardItemSimulationIncrement", - Identifier = "SimulationIncrement", - GuiName = "Simulation Increment" - }, - { - Type = "DashboardItemDistance", - Identifier = "Distance", - GuiName = "Distance" - }, - { - Type = "DashboardItemFramerate", - Identifier = "Framerate", - GuiName = "Framerate" - }, - { - Type = "DashboardItemParallelConnection", - Identifier = "ParallelConnection", - GuiName = "Parallel Connection" - }, - { - Type = "DashboardItemMission", - Identifier = "Mission", - GuiName = "Mission" - }, - { - Type = "DashboardItemPropertyValue", - Identifier = "asd", - GuiName = "adasd", - URI = "Scene.Earth.Renderable.Enabled", - DisplayString = "Earth is enabled: {}" - } -}) +local date = { + Type = "DashboardItemDate", + Identifier = "Date", + GuiName = "Date" +} + +local simulation_increment = { + Type = "DashboardItemSimulationIncrement", + Identifier = "SimulationIncrement", + GuiName = "Simulation Increment" +} + +local distance = { + Type = "DashboardItemDistance", + Identifier = "Distance", + GuiName = "Distance" +} + +local framerate = { + Type = "DashboardItemFramerate", + Identifier = "Framerate", + GuiName = "Framerate" +} + +local parallel_connection = { + Type = "DashboardItemParallelConnection", + Identifier = "ParallelConnection", + GuiName = "Parallel Connection" +} + +local mission = { + Type = "DashboardItemMission", + Identifier = "Mission", + GuiName = "Mission" +} + +local property_value = { + Type = "DashboardItemPropertyValue", + Identifier = "asd", + GuiName = "adasd", + URI = "Scene.Earth.Renderable.Enabled", + DisplayString = "Earth is enabled: {}" +} + +asset.onInitialize(function() + openspace.dashboard.addDashboardItem(angle) + openspace.dashboard.addDashboardItem(date) + openspace.dashboard.addDashboardItem(simulation_increment) + openspace.dashboard.addDashboardItem(distance) + openspace.dashboard.addDashboardItem(framerate) + openspace.dashboard.addDashboardItem(parallel_connection) + openspace.dashboard.addDashboardItem(mission) + openspace.dashboard.addDashboardItem(property_value) +end) + +asset.onDeinitialize(function() + openspace.dashboard.removeDashboardItem(property_value) + openspace.dashboard.removeDashboardItem(mission) + openspace.dashboard.removeDashboardItem(parallel_connection) + openspace.dashboard.removeDashboardItem(framerate) + openspace.dashboard.removeDashboardItem(distance) + openspace.dashboard.removeDashboardItem(simulation_increment) + openspace.dashboard.removeDashboardItem(date) + openspace.dashboard.removeDashboardItem(angle) +end) + +asset.export(property_value) +asset.export(mission) +asset.export(parallel_connection) +asset.export(framerate) +asset.export(distance) +asset.export(simulation_increment) +asset.export(date) +asset.export(angle) diff --git a/data/assets/examples/debugcoordinateaxes.asset b/data/assets/examples/debugcoordinateaxes.asset index 84932ea4a1..defae46505 100644 --- a/data/assets/examples/debugcoordinateaxes.asset +++ b/data/assets/examples/debugcoordinateaxes.asset @@ -1,6 +1,6 @@ -local transforms = asset.require('scene/solarsystem/planets/earth/transforms') -local debugHelper = asset.require('util/debug_helper') -local sun_transforms = asset.require('scene/solarsystem/sun/transforms') +local transforms = asset.require("scene/solarsystem/planets/earth/transforms") +local debugHelper = asset.require("util/debug_helper") +local sun_transforms = asset.require("scene/solarsystem/sun/transforms") local sunRadius = 6.957E8 local earthRadius = 6.371E6 diff --git a/data/assets/examples/discs.asset b/data/assets/examples/discs.asset index 9bb583e96d..cfa461021f 100644 --- a/data/assets/examples/discs.asset +++ b/data/assets/examples/discs.asset @@ -1,8 +1,6 @@ -local assetHelper = asset.require('util/asset_helper') - -- @TODO (emmbr 2020-02-03) Potential threading issue later on? This will run on the main thread -local cyanTexture = openspace.createSingleColorImage("example_disc_color1", {0.0, 1.0, 1.0}) -local purpleTexture = openspace.createSingleColorImage("example_disc_color2", {0.5, 0.0, 0.5}) +local cyanTexture = openspace.createSingleColorImage("example_disc_color1", { 0.0, 1.0, 1.0 }) +local purpleTexture = openspace.createSingleColorImage("example_disc_color2", { 0.5, 0.0, 0.5 }) local BasicDisc = { Identifier = "BasicDisc", @@ -25,7 +23,7 @@ local FullEllipticDisc = { Transform = { Scale = { Type = "NonUniformStaticScale", - Scale = {2.0, 1.0, 1.0} + Scale = { 2.0, 1.0, 1.0 } } }, Renderable = { @@ -40,7 +38,16 @@ local FullEllipticDisc = { } } -assetHelper.registerSceneGraphNodesAndExport(asset, { - BasicDisc, - FullEllipticDisc -}) + +asset.onInitialize(function() + openspace.addSceneGraphNode(BasicDisc) + openspace.addSceneGraphNode(FullEllipticDisc) +end) + +asset.onDeinitialize(function() + openspace.removeSceneGraphNode(FullEllipticDisc) + openspace.removeSceneGraphNode(BasicDisc) +end) + +asset.export(BasicDisc) +asset.export(FullEllipticDisc) diff --git a/data/assets/examples/globerotation.asset b/data/assets/examples/globerotation.asset index f685b0ae5e..4ada35e386 100644 --- a/data/assets/examples/globerotation.asset +++ b/data/assets/examples/globerotation.asset @@ -1,6 +1,5 @@ -local assetHelper = asset.require('util/asset_helper') -local earth = asset.require('scene/solarsystem/planets/earth/earth') -local sunTransforms = asset.require('scene/solarsystem/sun/transforms') +local earth = asset.require("scene/solarsystem/planets/earth/earth") +local sunTransforms = asset.require("scene/solarsystem/sun/transforms") local models = asset.syncedResource({ Name = "New Horizons Model", @@ -37,11 +36,19 @@ local Example_GlobeRotation = { Renderable = { Type = "RenderableModel", Body = "NEW HORIZONS", - GeometryFile = models .. "/NewHorizonsCleanModel.obj" + GeometryFile = models .. "NewHorizonsCleanModel.obj" }, GUI = { Path = "/Example" } } -assetHelper.registerSceneGraphNodesAndExport(asset, { Example_GlobeRotation }) +asset.onInitialize(function() + openspace.addSceneGraphNode(Example_GlobeRotation) +end) + +asset.onDeinitialize(function() + openspace.removeSceneGraphNode(Example_GlobeRotation) +end) + +asset.export(Example_GlobeRotation) diff --git a/data/assets/examples/globetranslation.asset b/data/assets/examples/globetranslation.asset index a61de7e465..2150c723d6 100644 --- a/data/assets/examples/globetranslation.asset +++ b/data/assets/examples/globetranslation.asset @@ -1,6 +1,5 @@ -local assetHelper = asset.require('util/asset_helper') -local earth = asset.require('scene/solarsystem/planets/earth/earth') -local sunTransforms = asset.require('scene/solarsystem/sun/transforms') +local earth = asset.require("scene/solarsystem/planets/earth/earth") +local sunTransforms = asset.require("scene/solarsystem/sun/transforms") local models = asset.syncedResource({ Name = "New Horizons Model", @@ -24,7 +23,7 @@ local Example_Fixed_Height = { Renderable = { Type = "RenderableModel", Body = "NEW HORIZONS", - GeometryFile = models .. "/NewHorizonsCleanModel.obj" + GeometryFile = models .. "NewHorizonsCleanModel.obj" }, GUI = { Path = "/Example" @@ -46,14 +45,22 @@ local Example_Adaptive_Height = { Renderable = { Type = "RenderableModel", Body = "NEW HORIZONS", - GeometryFile = models .. "/NewHorizonsCleanModel.obj" + GeometryFile = models .. "NewHorizonsCleanModel.obj" }, GUI = { Path = "/Example" } } -assetHelper.registerSceneGraphNodesAndExport(asset, { - Example_Fixed_Height, - Example_Adaptive_Height -}) +asset.onInitialize(function() + openspace.addSceneGraphNode(Example_Fixed_Height) + openspace.addSceneGraphNode(Example_Adaptive_Height) +end) + +asset.onDeinitialize(function() + openspace.removeSceneGraphNode(Example_Adaptive_Height) + openspace.removeSceneGraphNode(Example_Fixed_Height) +end) + +asset.export(Example_Fixed_Height) +asset.export(Example_Adaptive_Height) diff --git a/data/assets/examples/grids.asset b/data/assets/examples/grids.asset index 37ebad89e2..2fe816e3fb 100644 --- a/data/assets/examples/grids.asset +++ b/data/assets/examples/grids.asset @@ -1,5 +1,3 @@ -local assetHelper = asset.require('util/asset_helper') - local scale = 149597870700 -- 1 AU local radialGrid = { @@ -90,9 +88,21 @@ local boxGrid = { } } -assetHelper.registerSceneGraphNodesAndExport(asset, { - radialGrid, - planarGrid, - sphericalGrid, - boxGrid -}) +asset.onInitialize(function() + openspace.addSceneGraphNode(radialGrid) + openspace.addSceneGraphNode(planarGrid) + openspace.addSceneGraphNode(sphericalGrid) + openspace.addSceneGraphNode(boxGrid) +end) + +asset.onDeinitialize(function() + openspace.removeSceneGraphNode(boxGrid) + openspace.removeSceneGraphNode(sphericalGrid) + openspace.removeSceneGraphNode(planarGrid) + openspace.removeSceneGraphNode(radialGrid) +end) + +asset.export(radialGrid) +asset.export(sphericalGrid) +asset.export(planarGrid) +asset.export(boxGrid) diff --git a/data/assets/examples/joystickProperty.asset b/data/assets/examples/joystickProperty.asset new file mode 100644 index 0000000000..04088a783a --- /dev/null +++ b/data/assets/examples/joystickProperty.asset @@ -0,0 +1,90 @@ +-- Allowed values for the third parameter of bindJoystickAxis: +-- "None" +-- "Orbit X" +-- "Orbit Y" +-- "Zoom" -- both in and out +-- "Zoom In" +-- "Zoom Out" +-- "LocalRoll X" +-- "LocalRoll Y" +-- "GlobalRoll X" +-- "GlobalRoll Y" +-- "Pan X" +-- "Pan Y" +-- Fourth parameter determines whether the axis should be inverted +-- Fifth parameter determines whether the axis behaves like a joystick or a Trigger. +-- Allowed values are "JoystickLike" and "TriggerLike", the first one is the default +-- Sixth parameters determins if the axis should be "Sticky" or not. +-- The axis values can either go back to 0 when the joystick is released or it can +-- stay at the value it was before the joystick was released. +-- The latter is called a sticky axis, when the values don't go back to 0. +-- Seventh parameter is the sensitivity for the axis + + +-- Parameters for bindJoystickAxisProperty: +-- First - Name of the joystick that should be bound +-- Second - Which axis should be bound of this joystick +-- Third - The property uri +-- Fourth - (optional) The smallest value that you wnat to allow this property on the joystick +-- Fifth - (optional) The largest value that you wnat to allow this property on the joystick +-- Sixth - (optional) Determines whether the axis should be inverted +-- Seventh - (optional) Should this property change be sent to other connected remote sessions + +local XBoxController = { + LeftThumbStick = { 0 , 1 }, + RightThumbStick = { 2, 3 }, + LeftTrigger = 4, + RightTrigger = 5, + A = 0, + B = 1, + X = 2, + Y = 3, + LB = 4, + RB = 5, + Select = 6, + Start = 7, + LeftStickButton = 8, + RightStickButton = 9, + DPad = { + Up = 10, + Right = 11, + Down = 12, + Left = 13 + } +} + +local freezeValue = function(name, axis, min, max) + return [[ + local joystickType = openspace.navigation.joystickAxis("]] .. name .. [[", ]] .. axis .. [[); + local isPropertyBound = true; + if joystickType == "None" then + isPropertyBound = false; + else + isPropertyBound = true; + end + + if isPropertyBound then + openspace.navigation.bindJoystickAxis("]] .. name .. [[", ]] .. axis .. [[, "None"); + isPropertyBound = false; + else + openspace.navigation.bindJoystickAxisProperty("]] .. name .. [[", ]] .. axis .. [[, "Scene.Earth.Scale.Scale", ]] .. min ..", " .. max.. [[); + isPropertyBound = true; + end + ]] +end + +asset.onInitialize(function() + local controller = XBoxController; + local name = "Xbox Controller"; + + -- Bind Right trigger to Earth Scale + openspace.navigation.bindJoystickAxisProperty(name, controller.RightTrigger, "Scene.Earth.Scale.Scale", 0.1, 100); + + -- Bind 'A' button to freeze current value + openspace.navigation.bindJoystickButton( + name, + controller.A, + freezeValue(name, controller.RightTrigger, 0.1, 100), + "Freeze current scale for Earth. Or release it to the trigger again." + ) +end) diff --git a/data/assets/examples/luastatemachine.asset b/data/assets/examples/luastatemachine.asset index 45ce5bb29a..022a16557e 100644 --- a/data/assets/examples/luastatemachine.asset +++ b/data/assets/examples/luastatemachine.asset @@ -1,4 +1,4 @@ -local stateMachineHelper = asset.require('util/lua_state_machine_helper') +local stateMachineHelper = asset.require("util/lua_state_machine_helper") local states = { { @@ -33,15 +33,15 @@ function previous() stateMachine.goToPreviousState() end -asset.onInitialize(function () +asset.onInitialize(function() stateMachine = stateMachineHelper.createStateMachine(states) - openspace.bindKey('RIGHT', 'next()') - openspace.bindKey('LEFT', 'previous()') + openspace.bindKey("RIGHT", "next()") + openspace.bindKey("LEFT", "previous()") end) -asset.onDeinitialize(function () +asset.onDeinitialize(function() stateMachine = nil - openspace.clearKey('RIGHT') - openspace.clearKey('LEFT') + openspace.clearKey("RIGHT") + openspace.clearKey("LEFT") end) diff --git a/data/assets/examples/modelshader/model_fs.glsl b/data/assets/examples/modelshader/model_fs.glsl index 854a04fa98..dbe7871d9a 100644 --- a/data/assets/examples/modelshader/model_fs.glsl +++ b/data/assets/examples/modelshader/model_fs.glsl @@ -2,7 +2,7 @@ * * * OpenSpace * * * - * Copyright (c) 2014-2021 * + * Copyright (c) 2014-2022 * * * * 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 * diff --git a/data/assets/examples/modelshader/model_vs.glsl b/data/assets/examples/modelshader/model_vs.glsl index 4ea52f749b..21cc03ede2 100644 --- a/data/assets/examples/modelshader/model_vs.glsl +++ b/data/assets/examples/modelshader/model_vs.glsl @@ -2,7 +2,7 @@ * * * OpenSpace * * * - * Copyright (c) 2014-2021 * + * Copyright (c) 2014-2022 * * * * 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 * diff --git a/data/assets/examples/modelshader/modelshader.asset b/data/assets/examples/modelshader/modelshader.asset index 3fafbb7184..47042e7ac3 100644 --- a/data/assets/examples/modelshader/modelshader.asset +++ b/data/assets/examples/modelshader/modelshader.asset @@ -1,6 +1,5 @@ -local assetHelper = asset.require('util/asset_helper') -local sunTransforms = asset.require('scene/solarsystem/sun/transforms') -local transforms = asset.require('scene/solarsystem/planets/earth/transforms') +local sunTransforms = asset.require("scene/solarsystem/sun/transforms") +local transforms = asset.require("scene/solarsystem/planets/earth/transforms") local model = asset.syncedResource({ Name = "Animated Box", @@ -20,7 +19,7 @@ local model = { }, Renderable = { Type = "RenderableModel", - GeometryFile = model .. "/BoxAnimated.glb", + GeometryFile = model .. "BoxAnimated.glb", ModelScale = 3E7, LightSources = { { @@ -42,4 +41,12 @@ local model = { } } -assetHelper.registerSceneGraphNodesAndExport(asset, { model }) +asset.onInitialize(function() + openspace.addSceneGraphNode(model) +end) + +asset.onDeinitialize(function() + openspace.removeSceneGraphNode(model) +end) + +asset.export(model) diff --git a/data/assets/examples/primitives.asset b/data/assets/examples/primitives.asset index 23a64b1a0b..61080e73b3 100644 --- a/data/assets/examples/primitives.asset +++ b/data/assets/examples/primitives.asset @@ -1,5 +1,3 @@ -local assetHelper = asset.require('util/asset_helper') - local scale = 149597870700 -- 1 AU local circle = { @@ -46,7 +44,15 @@ local ellipse = { } } -assetHelper.registerSceneGraphNodesAndExport(asset, { - circle, - ellipse -}) +asset.onInitialize(function() + openspace.addSceneGraphNode(circle) + openspace.addSceneGraphNode(ellipse) +end) + +asset.onDeinitialize(function() + openspace.removeSceneGraphNode(ellipse) + openspace.removeSceneGraphNode(circle) +end) + +asset.export(circle) +asset.export(ellipse) diff --git a/data/assets/examples/renderableplaneimageonline.asset b/data/assets/examples/renderableplaneimageonline.asset index bfff9da591..645eac919e 100644 --- a/data/assets/examples/renderableplaneimageonline.asset +++ b/data/assets/examples/renderableplaneimageonline.asset @@ -1,6 +1,5 @@ -- This asset requires OpenSpace to be built with the OPENSPACE_MODULE_SPOUT enabled -local assetHelper = asset.require("util/asset_helper") local transforms = asset.require("scene/solarsystem/sun/transforms") @@ -22,5 +21,12 @@ local RenderablePlaneImageOnline = { -local objects = { RenderablePlaneImageOnline } -assetHelper.registerSceneGraphNodesAndExport(asset, objects) +asset.onInitialize(function() + openspace.addSceneGraphNode(RenderablePlaneImageOnline) +end) + +asset.onDeinitialize(function() + openspace.removeSceneGraphNode(RenderablePlaneImageOnline) +end) + +asset.export(RenderablePlaneImageOnline) diff --git a/data/assets/examples/screenspacebrowser.asset b/data/assets/examples/screenspacebrowser.asset index 282465848c..d6ca2fe1c4 100644 --- a/data/assets/examples/screenspacebrowser.asset +++ b/data/assets/examples/screenspacebrowser.asset @@ -1,5 +1,3 @@ -local assetHelper = asset.require('util/asset_helper') - local spec = { Type = "ScreenSpaceBrowser", Identifier = "ScreenSpaceBrowserExample", @@ -7,4 +5,12 @@ local spec = { Url = "https://www.openspaceproject.com/" }; -assetHelper.registerScreenSpaceRenderables(asset, { spec }) +asset.onInitialize(function() + openspace.addScreenSpaceRenderable(spec) +end) + +asset.onDeinitialize(function() + openspace.removeScreenSpaceRenderable(spec) +end) + +asset.export(spec) diff --git a/data/assets/examples/screenspacespout.asset b/data/assets/examples/screenspacespout.asset index 5ca810ec42..f20f09b303 100644 --- a/data/assets/examples/screenspacespout.asset +++ b/data/assets/examples/screenspacespout.asset @@ -1,6 +1,5 @@ -- This asset requires OpenSpace to be built with the OPENSPACE_MODULE_SPOUT enabled -local assetHelper = asset.require("util/asset_helper") local transforms = asset.require("scene/solarsystem/sun/transforms") @@ -21,5 +20,12 @@ local Spout = { -local objects = { Spout } -assetHelper.registerSceneGraphNodesAndExport(asset, objects) +asset.onInitialize(function() + openspace.addSceneGraphNode(Spout) +end) + +asset.onDeinitialize(function() + openspace.removeSceneGraphNode(Spout) +end) + +asset.export(Spout) diff --git a/data/assets/examples/slidedeck.asset b/data/assets/examples/slidedeck.asset index 885dabb3b8..7765a9b8bd 100644 --- a/data/assets/examples/slidedeck.asset +++ b/data/assets/examples/slidedeck.asset @@ -1,4 +1,4 @@ -local helper = asset.require('util/slide_deck_helper') +local helper = asset.require("util/slide_deck_helper") local deck = nil asset.onInitialize(function () diff --git a/data/assets/examples/spheres.asset b/data/assets/examples/spheres.asset index c3734d8d75..935bb7a82a 100644 --- a/data/assets/examples/spheres.asset +++ b/data/assets/examples/spheres.asset @@ -1,4 +1,4 @@ -local assetHelper = asset.require('util/asset_helper') +local spheres = {} local i = 1 for z=1,3 do @@ -9,7 +9,7 @@ for z=1,3 do Transform = { Translation = { Type = "StaticTranslation", - Position = {x, y, z} + Position = { x, y, z } } }, Renderable = { @@ -26,8 +26,27 @@ for z=1,3 do Path = "/Other/Spheres" } } - assetHelper.registerSceneGraphNodesAndExport(asset, { sphere }) + + table.insert(spheres, sphere) i = i + 1 end end end + + +asset.onInitialize(function() + for _, n in ipairs(spheres) do + openspace.addSceneGraphNode(n) + end +end) + +asset.onDeinitialize(function() + for _, n in ipairs(spheres) do + openspace.removeSceneGraphNode(n) + end +end) + + +for _, n in ipairs(spheres) do + asset.export(n) +end diff --git a/data/assets/examples/statemachine.asset b/data/assets/examples/statemachine.asset index bbc41055f1..3cf24c42b7 100644 --- a/data/assets/examples/statemachine.asset +++ b/data/assets/examples/statemachine.asset @@ -6,9 +6,9 @@ local targetNode = function(nodeIdentifier) openspace.setPropertyValueSingle("NavigationHandler.OrbitalNavigator.RetargetAnchor", nil) openspace.setPropertyValueSingle( "NavigationHandler.OrbitalNavigator.Anchor", - ']] .. nodeIdentifier .. [[' + "]] .. nodeIdentifier .. [[" ) - openspace.setPropertyValueSingle("NavigationHandler.OrbitalNavigator.Aim", '') + openspace.setPropertyValueSingle("NavigationHandler.OrbitalNavigator.Aim", "") ]] end @@ -16,16 +16,16 @@ local states = { { Identifier = "Constellations", Enter = [[ - openspace.setPropertyValueSingle('Scene.Constellations.Renderable.Opacity', 1.0, 1.0) + openspace.setPropertyValueSingle("Scene.Constellations.Renderable.Opacity", 1.0, 1.0) ]], Exit = [[ - openspace.setPropertyValueSingle('Scene.Constellations.Renderable.Opacity', 0.0, 1.0) + openspace.setPropertyValueSingle("Scene.Constellations.Renderable.Opacity", 0.0, 1.0) ]] }, { Identifier = "Earth", - Enter = "openspace.setPropertyValueSingle('Scene.EarthLabel.Renderable.Enabled', true)", - Exit = "openspace.setPropertyValueSingle('Scene.EarthLabel.Renderable.Enabled', false)" + Enter = "openspace.setPropertyValueSingle("Scene.EarthLabel.Renderable.Enabled", true)", + Exit = "openspace.setPropertyValueSingle("Scene.EarthLabel.Renderable.Enabled", false)" }, { Identifier = "Moon" @@ -65,8 +65,8 @@ local transitions = { asset.onInitialize(function() -- Setup (could be done in the profile) - openspace.setPropertyValueSingle('Scene.Constellations.Renderable.Enabled', true) - openspace.setPropertyValueSingle('Scene.Constellations.Renderable.Opacity', 0.0) + openspace.setPropertyValueSingle("Scene.Constellations.Renderable.Enabled", true) + openspace.setPropertyValueSingle("Scene.Constellations.Renderable.Opacity", 0.0) openspace.statemachine.createStateMachine(states, transitions, "Earth") end) diff --git a/data/assets/examples/temperature_land_highres.asset b/data/assets/examples/temperature_land_highres.asset index a5a07af757..eb09de6b08 100644 --- a/data/assets/examples/temperature_land_highres.asset +++ b/data/assets/examples/temperature_land_highres.asset @@ -7,28 +7,51 @@ local path = asset.syncedResource({ Version = 1 }) -local layer = { - Identifier = "ERA5_Land_HighRes_Monthly_2M_Temperature_Temporal", - Name = "ERA5 Land HighRes Monthly 2M Temperature (Temporal)", +local layer_prototype = { + Identifier = "ERA5_Land_HighRes_Monthly_2M_Temperature_Temporal_prototype", + Name = "ERA5 Land HighRes Monthly 2M Temperature (Temporal) [Prototype]", Type = "TemporalTileLayer", - FilePath = - "" .. - "1981-01-01" .. - "1990-10-01" .. - "1M" .. - "YYYY-MM-DD" .. - "" .. path .. "/rainbow.png" .. - "linear" .. - "" .. path .. "/${OpenSpaceTimeId}-land.png" .. - "", + Mode = "Prototyped", + Prototyped = { + Time = { + Start = "1981-01-01", + End = "1990-10-01" + }, + TemporalResolution = "1M", + TimeFormat = "YYYY-MM-DD", + Prototype = path .. "${OpenSpaceTimeId}-land.png" + }, + Interpolation = true, + Colormap = path .. "rainbow.png", Description = [[ Temporal coverage: 01 Jan 1981 - 31 Dec 2020.]] } -asset.onInitialize(function () - openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer) +local layer_folder = { + Identifier = "ERA5_Land_HighRes_Monthly_2M_Temperature_Temporal_folder", + Name = "ERA5 Land HighRes Monthly 2M Temperature (Temporal) [Folder]", + Type = "TemporalTileLayer", + Mode = "Folder", + Folder = { + Folder = "C:/Development/sync/http/earth_textures_climate/1", + Format = "%Y-%m-%d-land.png" + }, + Interpolation = true, + Colormap = path .. "rainbow.png", + Description = [[ Temporal coverage: 01 Jan 1981 - 31 Dec 2020.]] +} + +asset.onInitialize(function() + openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer_prototype) + openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer_folder) end) -asset.export("layer", layer) +asset.onDeinitialize(function() + openspace.globebrowsing.deleteLayer(globeIdentifier, "ColorLayers", layer_folder) + openspace.globebrowsing.deleteLayer(globeIdentifier, "ColorLayers", layer_prototype) +end) + +asset.export("layer", layer_prototype) + asset.meta = { Name = "Climate Earth Layers", Version = "1.0", diff --git a/data/assets/examples/urlsynchronization.asset b/data/assets/examples/urlsynchronization.asset index de55aaaf82..dcc1848591 100644 --- a/data/assets/examples/urlsynchronization.asset +++ b/data/assets/examples/urlsynchronization.asset @@ -1,7 +1,5 @@ -- This asset requires OpenSpace to be built with the OPENSPACE_MODULE_SYNC enabled -local assetHelper = asset.require("util/asset_helper") - asset.syncedResource({ Name = "Example Single", Type = "UrlSynchronization", @@ -35,12 +33,6 @@ asset.syncedResource({ Override = true }) -asset.syncedResource({ - Name = "Example No ident", - Type = "UrlSynchronization", - Url = "http://ipv4.download.thinkbroadband.com/5MB.zip" -}) - asset.syncedResource({ Name = "Example No Hash", Type = "UrlSynchronization", diff --git a/data/assets/examples/volume/generated/cartesian.asset b/data/assets/examples/volume/generated/cartesian.asset index 6561a2a76a..1b6fbb4b1b 100644 --- a/data/assets/examples/volume/generated/cartesian.asset +++ b/data/assets/examples/volume/generated/cartesian.asset @@ -4,7 +4,6 @@ -- the volume data itself needs to be generated, -- using the task 'data/tasks/volume/generate_cartesian.task' -local assetHelper = asset.require('util/asset_helper') local transforms = asset.require("scene/solarsystem/sun/transforms") local sunRadius = 695508000 @@ -34,5 +33,12 @@ local volume = { } } -local objects = { volume } -assetHelper.registerSceneGraphNodes(asset, objects) \ No newline at end of file +asset.onInitialize(function() + openspace.addSceneGraphNode(volume) +end) + +asset.onDeinitialize(function() + openspace.removeSceneGraphNode(volume) +end) + +asset.export(volume) diff --git a/data/assets/examples/volume/generated/cartesiansequence.asset b/data/assets/examples/volume/generated/cartesiansequence.asset index 7b341c79f1..3430cc9b9f 100644 --- a/data/assets/examples/volume/generated/cartesiansequence.asset +++ b/data/assets/examples/volume/generated/cartesiansequence.asset @@ -4,35 +4,41 @@ -- the volume data itself needs to be generated, -- using the task 'data/tasks/volume/generate_cartesian_sequence.task' -local assetHelper = asset.require('util/asset_helper') local transforms = asset.require("scene/solarsystem/sun/transforms") local sunRadius = 695508000 local volume = { - Identifier = "GeneratedVolume", - Parent = transforms.SolarSystemBarycenter.Identifier, - Renderable = { - Type = "RenderableTimeVaryingVolume", - SourceDirectory = asset.localResource("cartesiansequence"), - TransferFunction = asset.localResource("../transferfunction.txt"), - StepSize = 0.01, - MinValue = 0, - MaxValue = 1, - GridType = "Cartesian", - SecondsBefore = 50*365*24*60*60, -- 50 years before - SecondsAfter = 50*365*24*60*60 -- 50 years after - }, - GUI = { - Path = "/Examples" - }, - Transform = { - Scale = { - Type = "StaticScale", - Scale = 1000 * sunRadius - } + Identifier = "GeneratedVolume", + Parent = transforms.SolarSystemBarycenter.Identifier, + Renderable = { + Type = "RenderableTimeVaryingVolume", + SourceDirectory = asset.localResource("cartesiansequence"), + TransferFunction = asset.localResource("../transferfunction.txt"), + StepSize = 0.01, + MinValue = 0, + MaxValue = 1, + GridType = "Cartesian", + SecondsBefore = 50*365*24*60*60, -- 50 years before + SecondsAfter = 50*365*24*60*60 -- 50 years after + }, + GUI = { + Path = "/Examples" + }, + Transform = { + Scale = { + Type = "StaticScale", + Scale = 1000 * sunRadius } + } } -local objects = { volume } -assetHelper.registerSceneGraphNodes(asset, objects) +asset.onInitialize(function() + openspace.addSceneGraphNode(volume) +end) + +asset.onDeinitialize(function() + openspace.removeSceneGraphNode(volume) +end) + +asset.export(volume) diff --git a/data/assets/examples/volume/generated/spherical.asset b/data/assets/examples/volume/generated/spherical.asset index 20c7564393..e80d514272 100644 --- a/data/assets/examples/volume/generated/spherical.asset +++ b/data/assets/examples/volume/generated/spherical.asset @@ -4,35 +4,41 @@ -- the volume data itself needs to be generated, -- using the task 'data/tasks/volume/generate_spherical.task' -local assetHelper = asset.require('util/asset_helper') local transforms = asset.require("scene/solarsystem/sun/transforms") local astronomicalUnit = 149597870700 local volume = { - Identifier = "GeneratedVolume", - Parent = transforms.SolarSystemBarycenter.Identifier, - Renderable = { - Type = "RenderableTimeVaryingVolume", - SourceDirectory = asset.localResource("spherical"), - TransferFunction = asset.localResource("../transferfunction.txt"), - StepSize = 0.01, - MinValue = 0, - MaxValue = 1, - GridType = "Spherical", - SecondsBefore = 50*365*24*60*60, -- 50 years before - SecondsAfter = 50*365*24*60*60 -- 50 years after - }, - GUI = { - Path = "/Examples" - }, - Transform = { - Scale = { - Type = "StaticScale", - Scale = astronomicalUnit - } + Identifier = "GeneratedVolume", + Parent = transforms.SolarSystemBarycenter.Identifier, + Renderable = { + Type = "RenderableTimeVaryingVolume", + SourceDirectory = asset.localResource("spherical"), + TransferFunction = asset.localResource("../transferfunction.txt"), + StepSize = 0.01, + MinValue = 0, + MaxValue = 1, + GridType = "Spherical", + SecondsBefore = 50*365*24*60*60, -- 50 years before + SecondsAfter = 50*365*24*60*60 -- 50 years after + }, + GUI = { + Path = "/Examples" + }, + Transform = { + Scale = { + Type = "StaticScale", + Scale = astronomicalUnit } + } } -local objects = { volume } -assetHelper.registerSceneGraphNodes(asset, objects) \ No newline at end of file +asset.onInitialize(function() + openspace.addSceneGraphNode(volume) +end) + +asset.onDeinitialize(function() + openspace.removeSceneGraphNode(volume) +end) + +asset.export(volume) diff --git a/data/assets/examples/volume/toyvolume.asset b/data/assets/examples/volume/toyvolume.asset index 713b69fff7..3312e03844 100644 --- a/data/assets/examples/volume/toyvolume.asset +++ b/data/assets/examples/volume/toyvolume.asset @@ -1,6 +1,5 @@ -- This asset requires OpenSpace to be built with the OPENSPACE_MODULE_TOYVOLUME enabled -local assetHelper = asset.require("util/asset_helper") local transforms = asset.require("scene/solarsystem/sun/transforms") local ToyVolume = { @@ -18,5 +17,12 @@ local ToyVolume = { } } -local objects = { ToyVolume } -assetHelper.registerSceneGraphNodesAndExport(asset, objects) +asset.onInitialize(function() + openspace.addSceneGraphNode(ToyVolume) +end) + +asset.onDeinitialize(function() + openspace.removeSceneGraphNode(ToyVolume) +end) + +asset.export(ToyVolume) diff --git a/data/assets/global/localbookmarks.asset b/data/assets/global/localbookmarks.asset index 18fd5b408e..3543a8cbb7 100644 --- a/data/assets/global/localbookmarks.asset +++ b/data/assets/global/localbookmarks.asset @@ -1,5 +1,20 @@ -local assetHelper = asset.require('util/asset_helper') -local bookmarkHelper = asset.require('util/generate_bookmarks') +local bookmarkHelper = asset.require("util/generate_bookmarks") -local nodes = bookmarkHelper.getBookmarks('Local Bookmarks', '${ASSETS}/customization/localbookmarks.csv') -assetHelper.registerSceneGraphNodesAndExport(asset, nodes); +local nodes = bookmarkHelper.getBookmarks("Local Bookmarks", "${ASSETS}/customization/localbookmarks.csv") + + +asset.onInitialize(function() + for _, n in ipairs(nodes) do + openspace.addSceneGraphNode(n) + end +end) + +asset.onDeinitialize(function() + for _, n in ipairs(nodes) do + openspace.removeSceneGraphNode(n) + end +end) + +for _, n in ipairs(nodes) do + asset.export(n) +end diff --git a/data/assets/global/openspacebookmarks.asset b/data/assets/global/openspacebookmarks.asset index 2d3893d1a3..c02f546fd9 100644 --- a/data/assets/global/openspacebookmarks.asset +++ b/data/assets/global/openspacebookmarks.asset @@ -1,12 +1,11 @@ -local assetHelper = asset.require('util/asset_helper') -local bookmarkHelper = asset.require('util/generate_bookmarks') +local bookmarkHelper = asset.require("util/generate_bookmarks") -local dataProvider = 'http://data.openspaceproject.com/files/bookmarks/v1/bookmarks.csv' +local dataProvider = "http://data.openspaceproject.com/files/bookmarks/v1/bookmarks.csv" local bookmarksCSV = asset.syncedResource({ - Identifier = 'openspace_bookmarks', - Name = 'OpenSpace Bookmarks', - Type = 'UrlSynchronization', + Identifier = "openspace_bookmarks", + Name = "OpenSpace Bookmarks", + Type = "UrlSynchronization", UseHash = false, Override = true, Url = dataProvider @@ -15,7 +14,7 @@ local bookmarksCSV = asset.syncedResource({ local nodes = {} asset.onInitialize(function () - nodes = bookmarkHelper.getBookmarks('OpenSpace Bookmarks', bookmarksCSV .. '/bookmarks.csv') + nodes = bookmarkHelper.getBookmarks("OpenSpace Bookmarks", bookmarksCSV .. "bookmarks.csv") for _, n in ipairs(nodes) do openspace.addSceneGraphNode(n); end @@ -23,6 +22,10 @@ end) asset.onDeinitialize(function () for _, n in ipairs(nodes) do - openspace.removeSceneGraphNode(n.Identifier); + openspace.removeSceneGraphNode(n); end end) + +for _, n in ipairs(nodes) do + asset.export(n); +end \ No newline at end of file diff --git a/data/assets/gui/images.asset b/data/assets/gui/images.asset index 7f55b59f0e..315fc0ff64 100644 --- a/data/assets/gui/images.asset +++ b/data/assets/gui/images.asset @@ -1,7 +1,5 @@ -- This asset requires OpenSpace to be built with the OPENSPACE_MODULE_SYNC enabled -local assetHelper = asset.require("util/asset_helper") - asset.syncedResource({ Type = "UrlSynchronization", Name = "Icons", diff --git a/data/assets/scene/digitaluniverse/2dF.asset b/data/assets/scene/digitaluniverse/2dF.asset index 4c881fe192..bbd601d532 100644 --- a/data/assets/scene/digitaluniverse/2dF.asset +++ b/data/assets/scene/digitaluniverse/2dF.asset @@ -1,7 +1,3 @@ -local assetHelper = asset.require('util/asset_helper') - - - local textures = asset.syncedResource({ Name = "2dF Textures", Type = "HttpSynchronization", @@ -23,10 +19,10 @@ local object = { Enabled = false, Color = { 1.0, 1.0, 1.0 }, Opacity = 1.0, - File = speck .. "/2dF.speck", + File = speck .. "2dF.speck", Unit = "Mpc", - Texture = textures .. "/point3A.png", - ColorMap = speck .. "/2dF.cmap", + Texture = textures .. "point3A.png", + ColorMap = speck .. "2dF.cmap", ColorOption = { "redshift", "proximity" }, ColorRange = { { 0.0, 0.075 }, { 1.0, 25.0 } }, ScaleFactor = 520.0, @@ -53,15 +49,24 @@ local object = { } -assetHelper.registerSceneGraphNodesAndExport(asset, { object }) + +asset.onInitialize(function() + openspace.addSceneGraphNode(object) +end) + +asset.onDeinitialize(function() + openspace.removeSceneGraphNode(object) +end) + +asset.export(object) + asset.meta = { Name = "2dF Galaxies", - Version = "2.0", + Version = "2.1", Description = [[Digital Universe asset for the The Two-degree Field (2dF) Survey.]], Author = "Brian Abbott (AMNH), Eric Gawiser (Rutgers U)", URL = "https://www.amnh.org/research/hayden-planetarium/digital-universe", - License = "AMNH Digital Universe", - Identifiers = {"2dF"} + License = "AMNH Digital Universe" } diff --git a/data/assets/scene/digitaluniverse/2mass.asset b/data/assets/scene/digitaluniverse/2mass.asset index 5e5cfa091d..a28e1a21c6 100644 --- a/data/assets/scene/digitaluniverse/2mass.asset +++ b/data/assets/scene/digitaluniverse/2mass.asset @@ -1,7 +1,3 @@ -local assetHelper = asset.require('util/asset_helper') - - - local textures = asset.syncedResource({ Name = "2MASS Textures", Type = "HttpSynchronization", @@ -23,10 +19,10 @@ local object = { Enabled = false, Color = { 1.0, 0.4, 0.2 }, Opacity = 1.0, - File = speck .. "/2MASS.speck", + File = speck .. "2MASS.speck", Unit = "Mpc", - Texture = textures .. "/point3A.png", - ColorMap = speck .. "/lss.cmap", + Texture = textures .. "point3A.png", + ColorMap = speck .. "lss.cmap", ColorOption = { "redshift", "prox5Mpc" }, ColorRange = { { 0.0, 0.075 }, { 1.0, 50.0 } }, CorrectionSizeEndDistance = 20.6, @@ -49,16 +45,24 @@ local object = { } -assetHelper.registerSceneGraphNodesAndExport(asset, { object }) +asset.onInitialize(function() + openspace.addSceneGraphNode(object) +end) + +asset.onDeinitialize(function() + openspace.removeSceneGraphNode(object) +end) + +asset.export(object) + asset.meta = { Name = "2MASS Galaxies", - Version = "1.0", + Version = "1.1", Description = [[ Digital Universe asset for the Two Micron All-Sky Survey (2MASS) survey]], Author = "Brian Abbott (AMNH)", URL = "https://www.amnh.org/research/hayden-planetarium/digital-universe", - License = "AMNH Digital Universe", - Identifiers = {"2MASS"} + License = "AMNH Digital Universe" } diff --git a/data/assets/scene/digitaluniverse/6dF.asset b/data/assets/scene/digitaluniverse/6dF.asset index 90f9ed8634..3d84f0f4d1 100644 --- a/data/assets/scene/digitaluniverse/6dF.asset +++ b/data/assets/scene/digitaluniverse/6dF.asset @@ -1,7 +1,3 @@ -local assetHelper = asset.require('util/asset_helper') - - - local textures = asset.syncedResource({ Name = "6dF Textures", Type = "HttpSynchronization", @@ -23,10 +19,10 @@ local object = { Enabled = false, Color = { 1.0, 1.0, 0.0 }, Opacity = 1.0, - File = speck .. "/6dF.speck", + File = speck .. "6dF.speck", Unit = "Mpc", - Texture = textures .. "/point3A.png", - ColorMap = speck .. "/6dF.cmap", + Texture = textures .. "point3A.png", + ColorMap = speck .. "6dF.cmap", ColorOption = { "redshift", "proximity" }, ColorRange = { { 0.0, 0.075 }, { 1.0, 10.0 } }, ScaleFactor = 534.0, @@ -51,15 +47,23 @@ local object = { } -assetHelper.registerSceneGraphNodesAndExport(asset, { object }) +asset.onInitialize(function() + openspace.addSceneGraphNode(object) +end) + +asset.onDeinitialize(function() + openspace.removeSceneGraphNode(object) +end) + +asset.export(object) + asset.meta = { Name = "6dF Galaxies", - Version = "2.0", + Version = "2.1", Description = [[Digital Universe asset for The Six-degree Field (6dF) Galaxy Survey]], Author = "Brian Abbott (AMNH)", URL = "https://www.amnh.org/research/hayden-planetarium/digital-universe", - License = "AMNH Digital Universe", - Identifiers = {"6dF"} + License = "AMNH Digital Universe" } diff --git a/data/assets/scene/digitaluniverse/abell.asset b/data/assets/scene/digitaluniverse/abell.asset index 38863eba9d..c218cf6620 100644 --- a/data/assets/scene/digitaluniverse/abell.asset +++ b/data/assets/scene/digitaluniverse/abell.asset @@ -1,7 +1,3 @@ -local assetHelper = asset.require('util/asset_helper') - - - local textures = asset.syncedResource({ Name = "Abell Textures", Type = "HttpSynchronization", @@ -23,10 +19,10 @@ local object = { Enabled = false, Color = { 1.0, 0.4, 0.2 }, Opacity = 1.0, - --ColorMap = speck .. "/abell.cmap", - File = speck .. "/abell.speck", - Texture = textures .. "/point3A.png", - LabelFile = speck .. "/abell.label", + --ColorMap = speck .. "abell.cmap", + File = speck .. "abell.speck", + Texture = textures .. "point3A.png", + LabelFile = speck .. "abell.label", Unit = "Mpc", TextColor = { 0.0, 0.8, 0.0 }, TextSize = 22, @@ -60,15 +56,23 @@ local object = { } -assetHelper.registerSceneGraphNodesAndExport(asset, { object }) +asset.onInitialize(function() + openspace.addSceneGraphNode(object) +end) + +asset.onDeinitialize(function() + openspace.removeSceneGraphNode(object) +end) + +asset.export(object) + asset.meta = { Name = "Abell Galaxy Clusters", - Version = "2.0", + Version = "2.1", Description = [[Digital Universe asset for The Abell catalog]], Author = "Stuart Levy (NCSA/UIUC), Brian Abbott (AMNH)", URL = "https://www.amnh.org/research/hayden-planetarium/digital-universe", - License = "AMNH Digital Universe", - Identifiers = {"Abell"} + License = "AMNH Digital Universe" } diff --git a/data/assets/scene/digitaluniverse/alternatestarlabels.asset b/data/assets/scene/digitaluniverse/alternatestarlabels.asset index 5e19b98207..a72d00012e 100644 --- a/data/assets/scene/digitaluniverse/alternatestarlabels.asset +++ b/data/assets/scene/digitaluniverse/alternatestarlabels.asset @@ -1,7 +1,3 @@ -local assetHelper = asset.require('util/asset_helper') - - - local speck = asset.syncedResource({ Name = "Alternate Star Labels Speck Files", Type = "HttpSynchronization", @@ -16,7 +12,7 @@ local object = { Enabled = false, Color = { 1.0, 1.0, 1.0 }, Opacity = 0.65, - LabelFile = speck .. "/stars-altlbl.label", + LabelFile = speck .. "stars-altlbl.label", Unit = "pc", TextColor = { 0.4, 0.4, 0.4 }, DrawLabels = true, @@ -37,14 +33,23 @@ local object = { } +asset.onInitialize(function() + openspace.addSceneGraphNode(object) +end) + +asset.onDeinitialize(function() + openspace.removeSceneGraphNode(object) +end) + +asset.export(object) + + + asset.meta = { Name = "Stars Labels - Alternate", - Version = "1.0", + Version = "1.1", Description = [[Digital Universe asset for alternate start labels]], Author = "Brian Abbott (AMNH)", URL = "https://www.amnh.org/research/hayden-planetarium/digital-universe", - License = "AMNH Digital Universe", - Identifiers = {"StarLabelsAlternate"} + License = "AMNH Digital Universe" } - -assetHelper.registerSceneGraphNodesAndExport(asset, { object }) diff --git a/data/assets/scene/digitaluniverse/backgroundradiation.asset b/data/assets/scene/digitaluniverse/backgroundradiation.asset index b2f6908637..b088e2b642 100644 --- a/data/assets/scene/digitaluniverse/backgroundradiation.asset +++ b/data/assets/scene/digitaluniverse/backgroundradiation.asset @@ -1,6 +1,3 @@ -local assetHelper = asset.require('util/asset_helper') -local textures = asset.require('./backgroundradiation_textures').textures - local speck = asset.syncedResource({ Name = "Background Radiation Speck Files", Type = "HttpSynchronization", @@ -8,12 +5,19 @@ local speck = asset.syncedResource({ Version = 1 }) +local textures = asset.syncedResource({ + Name = "Background Radiation Textures", + Type = "HttpSynchronization", + Identifier = "digitaluniverse_backgroundradiation_textures", + Version = 2 +}) + local wmap = { Identifier = "WMAP", Transform = { Rotation = { Type = "StaticRotation", - Rotation = { 0, 0, 3.14159265359 } + Rotation = { 0, 0, math.pi } } }, Renderable = { @@ -22,10 +26,10 @@ local wmap = { Size = 3975.41417036064E23, Segments = 80, Opacity = 0.5, - Texture = textures .. "/wmap_ilc_7yr_v4_200uK_RGB_sos.png", + Texture = textures .. "wmap_ilc_7yr_v4_200uK_RGB_sos.png", Orientation = "Both", MirrorTexture = true, - UseAdditiveBlending = true, + RenderBinMode = "PreDeferredTransparent", FadeInThreshold = 0.4 }, GUI = { @@ -39,7 +43,7 @@ local cbe = { Transform = { Rotation = { Type = "StaticRotation", - Rotation = { 0, 0, 3.14159265359 } + Rotation = { 0, 0, math.pi } } }, Renderable = { @@ -48,10 +52,10 @@ local cbe = { Size = 3975.41417036064E23, Segments = 80, Opacity = 0.5, - Texture = textures .. "/COBErect.png", + Texture = textures .. "COBErect.png", Orientation = "Both", MirrorTexture = true, - UseAdditiveBlending = true, + RenderBinMode = "PreDeferredTransparent", FadeInThreshold = 0.4 }, GUI = { @@ -65,7 +69,7 @@ local planck = { Transform = { Rotation = { Type = "StaticRotation", - Rotation = { 0, 0, 3.14159265359 } + Rotation = { 0, 0, math.pi } } }, Renderable = { @@ -74,10 +78,10 @@ local planck = { Size = 3975.41417036064E23, Segments = 80, Opacity = 0.3, - Texture = textures .. "/cmb4k.jpg", + Texture = textures .. "cmb4k.jpg", Orientation = "Both", MirrorTexture = true, - UseAdditiveBlending = true, + RenderBinMode = "PreDeferredTransparent", FadeInThreshold = 0.4 }, GUI = { @@ -92,7 +96,7 @@ local Halpha = { Transform = { Rotation = { Type = "StaticRotation", - Rotation = {0, 0, 3.14159265359} + Rotation = { 0, 0, math.pi } } }, Renderable = { @@ -101,9 +105,9 @@ local Halpha = { Size = 9.2E21, Segments = 40, Opacity = 0.4, - Texture = textures .. "/mwHalpha-f.png", + Texture = textures .. "mwHalpha-f.png", Orientation = "Inside", - UseAdditiveBlending = true, + RenderBinMode = "PreDeferredTransparent", MirrorTexture = true, FadeOutThreshold = 0.025, Background = true @@ -115,14 +119,30 @@ local Halpha = { } -assetHelper.registerSceneGraphNodesAndExport(asset, { - wmap, cbe, planck, Halpha -}) +asset.onInitialize(function() + openspace.addSceneGraphNode(wmap) + openspace.addSceneGraphNode(cbe) + openspace.addSceneGraphNode(planck) + openspace.addSceneGraphNode(Halpha) +end) + +asset.onDeinitialize(function() + openspace.removeSceneGraphNode(Halpha) + openspace.removeSceneGraphNode(planck) + openspace.removeSceneGraphNode(cbe) + openspace.removeSceneGraphNode(wmap) +end) + +asset.export(wmap) +asset.export(cbe) +asset.export(planck) +asset.export(Halpha) + asset.meta = { Name = "Background Radiation", - Version = "2.0", + Version = "2.1", Description = [[Various AllSky images for the Milky Way and observable Universe. Included: Wilkinson Microwave Anisotropy Probe (WMAP), Cosmic Background Explorer, Planck, and H Alpha

Data Reference: Planck/ESA and the Planck @@ -130,6 +150,5 @@ asset.meta = { Finkbeiner (Princeton)]], Author = "Brian Abbott (AMNH), OpenSpace Team", URL = "https://www.amnh.org/research/hayden-planetarium/digital-universe", - License = "AMNH Digital Universe", - Identifiers = {"WMAP", "CBE", "Planck", "HAlpha"} + License = "AMNH Digital Universe" } diff --git a/data/assets/scene/digitaluniverse/backgroundradiation_multiverse.asset b/data/assets/scene/digitaluniverse/backgroundradiation_multiverse.asset index bc54679e0b..5a2cf75244 100644 --- a/data/assets/scene/digitaluniverse/backgroundradiation_multiverse.asset +++ b/data/assets/scene/digitaluniverse/backgroundradiation_multiverse.asset @@ -1,16 +1,20 @@ -local assetHelper = asset.require('util/asset_helper') -local textures = asset.require('./backgroundradiation_textures').textures +local textures = asset.syncedResource({ + Name = "Background Radiation Textures", + Type = "HttpSynchronization", + Identifier = "digitaluniverse_backgroundradiation_textures", + Version = 2 +}) local multiverse_planck_1 = { Identifier = "PlanckMultiverse1", Transform = { Translation = { Type = "StaticTranslation", - Position = { 0.0, 0.0, 2000E23} + Position = { 0.0, 0.0, 2000E23 } }, Rotation = { Type = "StaticRotation", - Rotation = { 0, 0, 3.14159265359 } + Rotation = { 0, 0, math.pi } } }, Renderable = { @@ -19,10 +23,10 @@ local multiverse_planck_1 = { Size = 3975.41417036064E23, Segments = 80, Opacity = 0.3, - Texture = textures .. "/cmb4k.jpg", + Texture = textures .. "cmb4k.jpg", Orientation = "Both", MirrorTexture = true, - UseAdditiveBlending = true, + RenderBinMode = "PreDeferredTransparent", FadeInThreshold = 0.4 }, GUI = { @@ -40,7 +44,7 @@ local multiverse_planck_2 = { }, Rotation = { Type = "StaticRotation", - Rotation = { 0, 0, 3.14159265359 } + Rotation = { 0, 0, math.pi } } }, Renderable = { @@ -49,10 +53,10 @@ local multiverse_planck_2 = { Size = 3975.41417036064E23, Segments = 80, Opacity = 0.3, - Texture = textures .. "/cmb4k.jpg", + Texture = textures .. "cmb4k.jpg", Orientation = "Both", MirrorTexture = true, - UseAdditiveBlending = true, + RenderBinMode = "PreDeferredTransparent", FadeInThreshold = 0.4 }, GUI = { @@ -70,7 +74,7 @@ local multiverse_planck_3 = { }, Rotation = { Type = "StaticRotation", - Rotation = { 0, 0, 3.14159265359 } + Rotation = { 0, 0, math.pi } } }, Renderable = { @@ -79,10 +83,10 @@ local multiverse_planck_3 = { Size = 3975.41417036064E23, Segments = 80, Opacity = 0.3, - Texture = textures .. "/cmb4k.jpg", + Texture = textures .. "cmb4k.jpg", Orientation = "Both", MirrorTexture = true, - UseAdditiveBlending = true, + RenderBinMode = "PreDeferredTransparent", FadeInThreshold = 0.4 }, GUI = { @@ -100,7 +104,7 @@ local multiverse_planck_4 = { }, Rotation = { Type = "StaticRotation", - Rotation = { 0, 0, 3.14159265359 } + Rotation = { 0, 0, math.pi } } }, Renderable = { @@ -109,10 +113,10 @@ local multiverse_planck_4 = { Size = 3975.41417036064E23, Segments = 80, Opacity = 0.3, - Texture = textures .. "/cmb4k.jpg", + Texture = textures .. "cmb4k.jpg", Orientation = "Both", MirrorTexture = true, - UseAdditiveBlending = true, + RenderBinMode = "PreDeferredTransparent", FadeInThreshold = 0.4 }, GUI = { @@ -122,20 +126,34 @@ local multiverse_planck_4 = { } -assetHelper.registerSceneGraphNodesAndExport(asset, { - multiverse_planck_1, multiverse_planck_2, multiverse_planck_3, multiverse_planck_4 -}) +asset.onInitialize(function() + openspace.addSceneGraphNode(multiverse_planck_1) + openspace.addSceneGraphNode(multiverse_planck_2) + openspace.addSceneGraphNode(multiverse_planck_3) + openspace.addSceneGraphNode(multiverse_planck_4) +end) + +asset.onDeinitialize(function() + openspace.removeSceneGraphNode(multiverse_planck_4) + openspace.removeSceneGraphNode(multiverse_planck_3) + openspace.removeSceneGraphNode(multiverse_planck_2) + openspace.removeSceneGraphNode(multiverse_planck_1) +end) + +asset.export(multiverse_planck_1) +asset.export(multiverse_planck_2) +asset.export(multiverse_planck_3) +asset.export(multiverse_planck_4) + asset.meta = { Name = "Multiverse Background Radiation", - Version = "2.0", + Version = "2.1", Description = [[ Non-physical representation of the location of hypothetical cosmic microwave background radiation images how they would be observed from other locations in the universe.
This is not a measured dataset!]], Author = "Brian Abbott (AMNH), OpenSpace Team", URL = "https://www.amnh.org/research/hayden-planetarium/digital-universe", - License = "AMNH Digital Universe", - Identifiers = { "PlanckMultiverse1", "PlanckMultiverse2", - "PlanckMultiverse3", "PlanckMultiverse4" } + License = "AMNH Digital Universe" } diff --git a/data/assets/scene/digitaluniverse/backgroundradiation_textures.asset b/data/assets/scene/digitaluniverse/backgroundradiation_textures.asset deleted file mode 100644 index dd268d2165..0000000000 --- a/data/assets/scene/digitaluniverse/backgroundradiation_textures.asset +++ /dev/null @@ -1,8 +0,0 @@ -local textures = asset.syncedResource({ - Name = "Background Radiation Textures", - Type = "HttpSynchronization", - Identifier = "digitaluniverse_backgroundradiation_textures", - Version = 2 -}) - -asset.export('textures', textures) diff --git a/data/assets/scene/digitaluniverse/clusters.asset b/data/assets/scene/digitaluniverse/clusters.asset index 03c232a957..6945184d6d 100644 --- a/data/assets/scene/digitaluniverse/clusters.asset +++ b/data/assets/scene/digitaluniverse/clusters.asset @@ -1,7 +1,3 @@ -local assetHelper = asset.require('util/asset_helper') - - - local speck = asset.syncedResource({ Name = "Clusters Speck Files", Type = "HttpSynchronization", @@ -16,7 +12,7 @@ local object = { Enabled = false, Color = { 1.0, 1.0, 1.0 }, Opacity = 0.65, - LabelFile = speck .. "/galclust.label", + LabelFile = speck .. "galclust.label", Unit = "Mpc", TextColor = { 1.0, 0.44, 0.0 }, DrawLabels = true, @@ -40,15 +36,23 @@ local object = { } } -assetHelper.registerSceneGraphNodesAndExport(asset, { object }) +asset.onInitialize(function() + openspace.addSceneGraphNode(object) +end) + +asset.onDeinitialize(function() + openspace.removeSceneGraphNode(object) +end) + +asset.export(object) + asset.meta = { Name = "Galaxy Clusters Labels", - Version = "1.0", + Version = "1.1", Description = [[Digital Universe asset for Galaxy Clusters]], Author = "Brian Abbott (AMNH)", URL = "https://www.amnh.org/research/hayden-planetarium/digital-universe", - License = "AMNH Digital Universe", - Identifiers = {"GalaxyClusterLabels"} + License = "AMNH Digital Universe" } diff --git a/data/assets/scene/digitaluniverse/constellationbounds.asset b/data/assets/scene/digitaluniverse/constellationbounds.asset index 8987fd2407..94dad6b98c 100644 --- a/data/assets/scene/digitaluniverse/constellationbounds.asset +++ b/data/assets/scene/digitaluniverse/constellationbounds.asset @@ -1,7 +1,3 @@ -local assetHelper = asset.require('util/asset_helper') - - - local data = asset.syncedResource({ Name = "Constellation Bounds Data", Type = "HttpSynchronization", @@ -19,8 +15,8 @@ local object = { Renderable = { Type = "RenderableConstellationBounds", Enabled = false, - File = data .. "/bound_20.dat", - ConstellationFile = data .. "/constellations.dat" + File = data .. "bound_20.dat", + ConstellationFile = data .. "constellations.dat" -- ConstellationSelection = zodiacs }, Transform = { @@ -42,16 +38,24 @@ local object = { } } -assetHelper.registerSceneGraphNodesAndExport(asset, { object }) +asset.onInitialize(function() + openspace.addSceneGraphNode(object) +end) + +asset.onDeinitialize(function() + openspace.removeSceneGraphNode(object) +end) + +asset.export(object) + asset.meta = { Name = "Constellation Bounds", - Version = "1.0", + Version = "1.1", Description = [[DU asset providing a Spherical mesh dividing the sky into regions that fit the constellations.]], Author = "Brian Abbott (AMNH)", URL = "https://www.amnh.org/research/hayden-planetarium/digital-universe", - License = "AMNH Digital Universe", - Identifiers = {"ConstellationBounds"} + License = "AMNH Digital Universe" } diff --git a/data/assets/scene/digitaluniverse/constellations.asset b/data/assets/scene/digitaluniverse/constellations.asset index a96db07f75..f17e4602c8 100644 --- a/data/assets/scene/digitaluniverse/constellations.asset +++ b/data/assets/scene/digitaluniverse/constellations.asset @@ -1,7 +1,3 @@ -local assetHelper = asset.require('util/asset_helper') - - - local speck = asset.syncedResource({ Name = "Constellation Speck Files", Type = "HttpSynchronization", @@ -15,8 +11,8 @@ local constellationsExtragalactic = { Type = "RenderableDUMeshes", Enabled = false, Opacity = 0.4, - File = speck .. "/constellationsEXGAL.speck", - LabelFile = speck .. "/constellationsEXGAL.label", + File = speck .. "constellationsEXGAL.speck", + LabelFile = speck .. "constellationsEXGAL.label", TextColor = { 0.8, 0.8, 0.8 }, TextOpacity = 0.4, TextSize = 20.0, @@ -36,8 +32,8 @@ local constellations = { Type = "RenderableDUMeshes", Enabled = false, Opacity = 0.3, - File = speck .. "/constellations.speck", - LabelFile = speck .. "/constellations.label", + File = speck .. "constellations.speck", + LabelFile = speck .. "constellations.label", TextColor = { 0.8, 0.8, 0.8 }, TextOpacity = 0.3, TextSize = 14.5, @@ -60,15 +56,26 @@ local constellations = { } } -assetHelper.registerSceneGraphNodesAndExport(asset, { constellationsExtragalactic, constellations }) +asset.onInitialize(function() + openspace.addSceneGraphNode(constellationsExtragalactic) + openspace.addSceneGraphNode(constellations) +end) + +asset.onDeinitialize(function() + openspace.removeSceneGraphNode(constellations) + openspace.removeSceneGraphNode(constellationsExtragalactic) +end) + +asset.export(constellationsExtragalactic) +asset.export(constellations) + asset.meta = { Name = "Constellations", - Version = "1.0", + Version = "1.1", Description = [[Digital Universe asset for constellation lines]], Author = "Brian Abbott (AMNH)", URL = "https://www.amnh.org/research/hayden-planetarium/digital-universe", - License = "AMNH Digital Universe", - Identifiers = {"Constellations", "ConstellationsExtragalactic"} + License = "AMNH Digital Universe" } diff --git a/data/assets/scene/digitaluniverse/deepsky.asset b/data/assets/scene/digitaluniverse/deepsky.asset index b8d91282b0..98abecfa7f 100644 --- a/data/assets/scene/digitaluniverse/deepsky.asset +++ b/data/assets/scene/digitaluniverse/deepsky.asset @@ -1,5 +1,3 @@ -local assetHelper = asset.require('util/asset_helper') - local textures = asset.syncedResource({ Name = "Deep Sky Objects Textures", Type = "HttpSynchronization", @@ -22,14 +20,14 @@ local deepSkyPoints = { Color = { 1.0, 1.0, 0.0 }, Opacity = 0.99, ScaleFactor = 500.0, - File = speck .. "/dso.speck", - Texture = textures .. "/point3.png", - --ColorMap = speck .. "/tully.cmap", - --ColorMap = speck .. "/lss.cmap", + File = speck .. "dso.speck", + Texture = textures .. "point3.png", + --ColorMap = speck .. "tully.cmap", + --ColorMap = speck .. "lss.cmap", --ColorOption = { "proximity" }, --ColorOption = { "prox5Mpc" }, --ColorRange = { { 1.0, 30.0 } }, - LabelFile = speck .. "/dso.label", + LabelFile = speck .. "dso.label", Unit = "pc", TextColor = { 0.1, 0.4, 0.6 }, TextSize = 20.50, @@ -43,7 +41,7 @@ local deepSkyPoints = { Transform = { Rotation = { Type = "StaticRotation", - Rotation = { 0, 0, 3.14159265359 } + Rotation = { 0, 0, math.pi } } }, GUI = { @@ -61,7 +59,7 @@ local deepSkyImages = { Color = { 1.0, 1.0, 1.0 }, Opacity = 0.99, ScaleFactor = 1.0, - File = speck .. "/dso.speck", + File = speck .. "dso.speck", TexturePath = textures, Luminosity = "radius", ScaleLuminosity = 0.001, @@ -73,7 +71,7 @@ local deepSkyImages = { Transform = { Rotation = { Type = "StaticRotation", - Rotation = {3.14159265359, 3.14159265359, 0 } + Rotation = { math.pi, math.pi, 0 } } }, GUI = { @@ -92,15 +90,26 @@ local deepSkyImages = { } } -assetHelper.registerSceneGraphNodesAndExport(asset, { deepSkyPoints, deepSkyImages }) +asset.onInitialize(function() + openspace.addSceneGraphNode(deepSkyPoints) + openspace.addSceneGraphNode(deepSkyImages) +end) + +asset.onDeinitialize(function() + openspace.removeSceneGraphNode(deepSkyImages) + openspace.removeSceneGraphNode(deepSkyPoints) +end) + +asset.export(deepSkyPoints) +asset.export(deepSkyImages) + asset.meta = { Name = "Deep Sky Objects Images", - Version = "1.0", + Version = "1.1", Description = [[Digital Universe asset for Deep Sky Objects and their Images]], Author = "Nate Greenstein, Matt Everhart, Brian Abbott (AMNH)", URL = "https://www.amnh.org/research/hayden-planetarium/digital-universe", - License = "AMNH Digital Universe", - Identifiers = {"DeepSkyObjects", "DeepSkyObjectsImages"} + License = "AMNH Digital Universe" } diff --git a/data/assets/scene/digitaluniverse/digitaluniverse.asset b/data/assets/scene/digitaluniverse/digitaluniverse.asset index 9bdf3c367a..f0b6bc530a 100644 --- a/data/assets/scene/digitaluniverse/digitaluniverse.asset +++ b/data/assets/scene/digitaluniverse/digitaluniverse.asset @@ -1,37 +1,47 @@ -asset.require('./2dF') -asset.require('./2mass') -asset.require('./6dF') -asset.require('./abell') -asset.require('./alternatestarlabels') -asset.require('./backgroundradiation') -asset.require('./backgroundradiation_multiverse') -asset.require('./clusters') -asset.require('./constellationbounds') -asset.require('./constellations') -asset.require('./deepsky') -asset.require('./dwarfs') -asset.require('./exoplanets') -asset.require('./globularclusters') -asset.require('./grids') -asset.require('./groups') -asset.require('./h2regions') -asset.require('./kepler') -asset.require('./localdwarfs') -asset.require('./milkyway') -asset.require('./milkyway_arm_labels') -asset.require('./milkyway_data') -asset.require('./milkyway_label') -asset.require('./milkyway_sphere') -asset.require('./obassociations') -asset.require('./openclusters') -asset.require('./planetarynebulae') -asset.require('./pulsars') -asset.require('./quasars') -asset.require('./sdss') -asset.require('./starlabels') -asset.require('./starorbits') -asset.require('./stars') -asset.require('./superclusters') -asset.require('./supernovaremnants') -asset.require('./tully') -asset.require('./voids') +asset.require("./2dF") +asset.require("./2mass") +asset.require("./6dF") +asset.require("./abell") +asset.require("./alternatestarlabels") +asset.require("./backgroundradiation") +asset.require("./backgroundradiation_multiverse") +asset.require("./clusters") +asset.require("./constellationbounds") +asset.require("./constellations") +asset.require("./deepsky") +asset.require("./dwarfs") +asset.require("./exoplanets") +asset.require("./globularclusters") +asset.require("./grids") +asset.require("./groups") +asset.require("./h2regions") +asset.require("./kepler") +asset.require("./localdwarfs") +asset.require("./milkyway") +asset.require("./milkyway_arm_labels") +asset.require("./milkyway_label") +asset.require("./milkyway_sphere") +asset.require("./obassociations") +asset.require("./openclusters") +asset.require("./planetarynebulae") +asset.require("./pulsars") +asset.require("./quasars") +asset.require("./sdss") +asset.require("./starlabels") +asset.require("./starorbits") +asset.require("./stars") +asset.require("./superclusters") +asset.require("./supernovaremnants") +asset.require("./tully") +asset.require("./voids") + + +asset.meta = { + Name = "Digital Universe", + Version = "1.0", + Description = [[This asset is a meta asset, containing all the assets from the AMNH + Digital Universe.]], + Author = "Brian Abbott (AMNH)", + URL = "https://www.amnh.org/research/hayden-planetarium/digital-universe", + License = "AMNH Digital Universe" +} diff --git a/data/assets/scene/digitaluniverse/dwarfs.asset b/data/assets/scene/digitaluniverse/dwarfs.asset index c4922feb04..b2903447d5 100644 --- a/data/assets/scene/digitaluniverse/dwarfs.asset +++ b/data/assets/scene/digitaluniverse/dwarfs.asset @@ -1,7 +1,3 @@ -local assetHelper = asset.require('util/asset_helper') - - - local textures = asset.syncedResource({ Name = "Brown Dwarf Textures", Type = "HttpSynchronization", @@ -23,11 +19,11 @@ local object = { Enabled = false, Color = { 0.4, 0.0, 0.1 }, Opacity = 1.0, - File = speck .. "/dwarfs.speck", - Texture = textures .. "/point3.png", - LabelFile = speck .. "/dwarfs.label", + File = speck .. "dwarfs.speck", + Texture = textures .. "point3.png", + LabelFile = speck .. "dwarfs.label", Unit = "pc", - ColorMap = speck .. "/dwarfs.cmap", + ColorMap = speck .. "dwarfs.cmap", ColorOption = { "typeindex" }, --ColorRange = { { 1.0, 4.0} }, TextColor = { 0.5, 0.1, 0.2 }, @@ -62,15 +58,23 @@ local object = { } } -assetHelper.registerSceneGraphNodesAndExport(asset, { object }) +asset.onInitialize(function() + openspace.addSceneGraphNode(object) +end) + +asset.onDeinitialize(function() + openspace.removeSceneGraphNode(object) +end) + +asset.export(object) + asset.meta = { Name = "Brown Dwarfs", - Version = "2.0", + Version = "2.1", Description = [[Digital Universe asset for Brown Dwarfs]], Author = "Brian Abbott (AMNH)", URL = "https://www.amnh.org/research/hayden-planetarium/digital-universe", - License = "AMNH Digital Universe", - Identifiers = {"Dwarfs"} + License = "AMNH Digital Universe" } diff --git a/data/assets/scene/digitaluniverse/exoplanets.asset b/data/assets/scene/digitaluniverse/exoplanets.asset index 27ccda1a29..f144c2f4bd 100644 --- a/data/assets/scene/digitaluniverse/exoplanets.asset +++ b/data/assets/scene/digitaluniverse/exoplanets.asset @@ -1,7 +1,3 @@ -local assetHelper = asset.require('util/asset_helper') - - - local textures = asset.syncedResource({ Name = "Exoplanets Textures", Type = "HttpSynchronization", @@ -24,9 +20,9 @@ local object = { Color = { 1.0, 1.0, 1.0 }, Opacity = 1.0, ScaleFactor = 10.0, - Texture = textures .. "/target-blue.png", - File = speck .. "/expl.speck", - LabelFile = speck .. "/expl.label", + Texture = textures .. "target-blue.png", + File = speck .. "expl.speck", + LabelFile = speck .. "expl.label", Unit = "pc", ScaleFactor = 388.67923, TextColor = { 0.3, 0.3, 0.8 }, @@ -50,15 +46,23 @@ local object = { } } -assetHelper.registerSceneGraphNodesAndExport(asset, { object }) +asset.onInitialize(function() + openspace.addSceneGraphNode(object) +end) + +asset.onDeinitialize(function() + openspace.removeSceneGraphNode(object) +end) + +asset.export(object) + asset.meta = { Name = "Exoplanets", - Version = "1.0", + Version = "1.1", Description = [[Digital Universe asset for Exoplanets]], Author = "Brian Abbott (AMNH)", URL = "https://www.amnh.org/research/hayden-planetarium/digital-universe", - License = "AMNH Digital Universe", - Identifiers = {"Exoplanets"} + License = "AMNH Digital Universe" } diff --git a/data/assets/scene/digitaluniverse/globularclusters.asset b/data/assets/scene/digitaluniverse/globularclusters.asset index 77e85d35c5..0c0fe1259a 100644 --- a/data/assets/scene/digitaluniverse/globularclusters.asset +++ b/data/assets/scene/digitaluniverse/globularclusters.asset @@ -1,7 +1,3 @@ -local assetHelper = asset.require('util/asset_helper') - - - local textures = asset.syncedResource({ Name = "Globular Clusters Textures", Type = "HttpSynchronization", @@ -23,10 +19,10 @@ local object = { Enabled = false, Color = { 0.8, 0.8, 0.0 }, Opacity = 0.4, - File = speck .. "/gc.speck", - Texture = textures .. "/point4.png", + File = speck .. "gc.speck", + Texture = textures .. "point4.png", PolygonSides = 5, - LabelFile = speck .. "/gc.label", + LabelFile = speck .. "gc.label", Unit = "pc", TextColor = { 0.5, 0.5, 0.0 }, ScaleFactor = 431.0, @@ -54,12 +50,21 @@ local object = { } } -assetHelper.registerSceneGraphNodesAndExport(asset, { object }) +asset.onInitialize(function() + openspace.addSceneGraphNode(object) +end) + +asset.onDeinitialize(function() + openspace.removeSceneGraphNode(object) +end) + +asset.export(object) + asset.meta = { Name = "Globular Clusters", - Version = "2.0", + Version = "2.1", Description = [[Census: 157 globular clusters. DU Version 2.6. Globular star clusters are gravitationally bound groups of 100,000 to 1 million stars. They are compact, spherical “balls” of stars with very high stellar densities in their centers (stars @@ -73,6 +78,5 @@ asset.meta = { Properties of Galactic Globular Clusters, C. Francis+ (U Cambridge)]], Author = "Brian Abbott (AMNH)", URL = "https://www.amnh.org/research/hayden-planetarium/digital-universe", - License = "AMNH Digital Universe", - Identifiers = {"GlobularClusters"} + License = "AMNH Digital Universe" } diff --git a/data/assets/scene/digitaluniverse/grids.asset b/data/assets/scene/digitaluniverse/grids.asset index 9ba8ad9a53..91a8619ba7 100644 --- a/data/assets/scene/digitaluniverse/grids.asset +++ b/data/assets/scene/digitaluniverse/grids.asset @@ -1,6 +1,5 @@ -local assetHelper = asset.require('util/asset_helper') -local transforms = asset.require('scene/solarsystem/sun/transforms') -local earth_transforms = asset.require('scene/solarsystem/planets/earth/transforms') +local transforms = asset.require("scene/solarsystem/sun/transforms") +local earth_transforms = asset.require("scene/solarsystem/planets/earth/transforms") local equatorialRotationMatrix = { -0.05487554, 0.4941095, -0.8676661, @@ -109,7 +108,7 @@ local eclipticLabels = { Enabled = false, Color = { 1.0, 1.0, 1.0 }, Opacity = 0.65, - LabelFile = speck .. "/eclip.label", + LabelFile = speck .. "eclip.label", Unit = "pc", DrawLabels = true, TextColor = { 0.5, 0.5, 0.5 }, @@ -162,7 +161,7 @@ local equatorialLabels = { Enabled = false, Color = { 1.0, 1.0, 1.0 }, Opacity = 0.65, - LabelFile = speck .. "/radec.label", + LabelFile = speck .. "radec.label", Unit = "pc", DrawLabels = true, TextColor = { 0.5, 0.5, 0.5 }, @@ -211,7 +210,7 @@ local galacticLabels = { Enabled = false, Color = { 1.0, 1.0, 1.0 }, Opacity = 0.65, - LabelFile = speck .. "/galac.label", + LabelFile = speck .. "galac.label", Unit = "pc", DrawLabels = true, TextColor = { 0.5, 0.5, 0.5 }, @@ -237,9 +236,9 @@ local plane1ld = { Type = "RenderableDUMeshes", Enabled = false, Opacity = 0.4, - File = speck .. "/1ld.speck", + File = speck .. "1ld.speck", MeshColor = {{ 0.1, 0.5, 0.6 }}, - LabelFile = speck .. "/1ld.label", + LabelFile = speck .. "1ld.label", TextColor = { 0.0, 0.2, 0.5 }, TextSize = 10.3, TextMinMaxSize = { 0, 30 }, @@ -264,9 +263,9 @@ local plane1lm = { Type = "RenderableDUMeshes", Enabled = false, Opacity = 0.4, - File = speck .. "/1lm.speck", + File = speck .. "1lm.speck", MeshColor = {{ 0.1, 0.5, 0.6 }}, - LabelFile = speck .. "/1lm.label", + LabelFile = speck .. "1lm.label", TextColor = { 0.0, 0.2, 0.5 }, TextSize = 11.8, TextMinMaxSize = { 0, 30 }, @@ -291,9 +290,9 @@ local plane1ly = { Type = "RenderableDUMeshes", Enabled = false, Opacity = 0.4, - File = speck .. "/1ly.speck", + File = speck .. "1ly.speck", MeshColor = {{ 0.1, 0.5, 0.6 }}, - LabelFile = speck .. "/1ly.label", + LabelFile = speck .. "1ly.label", TextColor = { 0.0, 0.2, 0.5 }, TextSize = 13.0, TextMinMaxSize = { 0, 30 }, @@ -318,9 +317,9 @@ local plane10ly = { Type = "RenderableDUMeshes", Enabled = false, Opacity = 0.4, - File = speck .. "/10ly.speck", + File = speck .. "10ly.speck", MeshColor = {{ 0.1, 0.5, 0.6 }}, - LabelFile = speck .. "/10ly.label", + LabelFile = speck .. "10ly.label", TextColor = { 0.0, 0.2, 0.5 }, TextSize = 14.17, TextMinMaxSize = { 0, 30 }, @@ -345,9 +344,9 @@ local plane100ly = { Type = "RenderableDUMeshes", Enabled = false, Opacity = 0.4, - File = speck .. "/100ly.speck", + File = speck .. "100ly.speck", MeshColor = {{ 0.1, 0.5, 0.6 }}, - LabelFile = speck .. "/100ly.label", + LabelFile = speck .. "100ly.label", TextColor = { 0.0, 0.2, 0.5 }, TextSize = 15.0, TextMinMaxSize = { 0, 30 }, @@ -372,9 +371,9 @@ local plane1kly = { Type = "RenderableDUMeshes", Enabled = false, Opacity = 0.4, - File = speck .. "/1kly.speck", + File = speck .. "1kly.speck", MeshColor = {{ 0.1, 0.5, 0.6 }}, - LabelFile = speck .. "/1kly.label", + LabelFile = speck .. "1kly.label", TextColor = { 0.0, 0.2, 0.5 }, TextSize = 16.0, TextMinMaxSize = { 0, 30 }, @@ -399,9 +398,9 @@ local plane10kly = { Type = "RenderableDUMeshes", Enabled = false, Opacity = 0.4, - File = speck .. "/10kly.speck", + File = speck .. "10kly.speck", MeshColor = {{ 0.1, 0.5, 0.6 }}, - LabelFile = speck .. "/10kly.label", + LabelFile = speck .. "10kly.label", TextColor = { 0.0, 0.2, 0.5 }, TextSize = 17.25, TextMinMaxSize = { 0, 30 }, @@ -419,9 +418,9 @@ local plane100kly = { Type = "RenderableDUMeshes", Enabled = false, Opacity = 0.4, - File = speck .. "/100kly.speck", + File = speck .. "100kly.speck", MeshColor = {{ 0.1, 0.5, 0.6 }}, - LabelFile = speck .. "/100kly.label", + LabelFile = speck .. "100kly.label", TextColor = { 0.0, 0.2, 0.5 }, TextSize = 18.6, TextMinMaxSize = { 0, 30 }, @@ -439,9 +438,9 @@ local plane1Mly = { Type = "RenderableDUMeshes", Enabled = false, Opacity = 0.4, - File = speck .. "/1Mly.speck", + File = speck .. "1Mly.speck", MeshColor = {{ 0.1, 0.5, 0.6 }}, - LabelFile = speck .. "/1Mly.label", + LabelFile = speck .. "1Mly.label", TextColor = { 0.0, 0.2, 0.5 }, TextSize = 19.6, TextMinMaxSize = { 0, 30 }, @@ -459,9 +458,9 @@ local plane10Mly = { Type = "RenderableDUMeshes", Enabled = false, Opacity = 0.4, - File = speck .. "/10Mly.speck", + File = speck .. "10Mly.speck", MeshColor = {{ 0.1, 0.5, 0.6 }}, - LabelFile = speck .. "/10Mly.label", + LabelFile = speck .. "10Mly.label", TextColor = { 0.0, 0.2, 0.5 }, TextSize = 20.6, TextMinMaxSize = { 0, 30 }, @@ -479,9 +478,9 @@ local plane100Mly = { Type = "RenderableDUMeshes", Enabled = false, Opacity = 0.4, - File = speck .. "/100Mly.speck", + File = speck .. "100Mly.speck", MeshColor = {{ 0.1, 0.5, 0.6 }}, - LabelFile = speck .. "/100Mly.label", + LabelFile = speck .. "100Mly.label", TextColor = { 0.0, 0.2, 0.5 }, TextSize = 21.6, TextMinMaxSize = { 0, 30 }, @@ -499,9 +498,9 @@ local plane20Gly = { Type = "RenderableDUMeshes", Enabled = false, Opacity = 0.4, - File = speck .. "/20Gly.speck", + File = speck .. "20Gly.speck", MeshColor = {{ 0.1, 0.5, 0.6 }}, - LabelFile = speck .. "/20Gly.label", + LabelFile = speck .. "20Gly.label", TextColor = { 0.0, 0.2, 0.5 }, TextSize = 23.6, TextMinMaxSize = { 0, 30 }, @@ -513,16 +512,35 @@ local plane20Gly = { } } -assetHelper.registerSceneGraphNodesAndExport(asset, { - radio, oort, ecliptic, eclipticLabels, equatorial, equatorialLabels, galactic, - galacticLabels, plane1ld, plane1lm, plane1ly, plane10ly, plane100ly, plane1kly, - plane10kly, plane100kly, plane1Mly, plane10Mly, plane100Mly, plane20Gly -}) +local nodes = { + radio, oort, ecliptic, eclipticLabels, equatorial, equatorialLabels, + galactic, galacticLabels, plane1ld, plane1lm, plane1ly, plane10ly, + plane100ly, plane1kly, plane10kly, plane100kly, plane1Mly, plane10Mly, plane100Mly, + plane20Gly +} + +asset.onInitialize(function() + for i, node in ipairs(nodes) do + openspace.addSceneGraphNode(node) + end +end) + +asset.onDeinitialize(function() + for i = #nodes, 1, -1 do + local node = nodes[i] + openspace.removeSceneGraphNode(node) + end +end) + +for i, node in ipairs(nodes) do + asset.export(node) +end + asset.meta = { Name = "Grids", - Version = "2.0", + Version = "2.1", Description = [[Various grids for showing size reference. Included: 10,000 light year grid, 10 light year grid, 20 billion light year grid, 10 million light year grid, 100 light year grid, 100 million light year grid, Ecliptic Coordinate Sphere @@ -532,9 +550,5 @@ asset.meta = { 1,000 light year grid, 1 million light year grid, 1 light year grid]], Author = "Brian Abbott (AMNH)", URL = "https://www.amnh.org/research/hayden-planetarium/digital-universe", - License = "AMNH Digital Universe", - Identifiers = {"RadioSphere", "OortSphere", "EclipticSphere", "EclipticSphereLabels", - "Equatorial", "EquatorialSphereLabels", "GalacticSphere", "GalacticSphereLabels", - "1ldGrid", "1lmGrid", "1lyGrid", "10lyGrid", "100lyGrid", "1klyGrid", "10klyGrid", - "100klyGrid", "1MlyGrid", "10MlyGrid", "100MlyGrid", "20GlyGrid"} + License = "AMNH Digital Universe" } diff --git a/data/assets/scene/digitaluniverse/groups.asset b/data/assets/scene/digitaluniverse/groups.asset index ed426cbdd2..bd41977d09 100644 --- a/data/assets/scene/digitaluniverse/groups.asset +++ b/data/assets/scene/digitaluniverse/groups.asset @@ -1,7 +1,3 @@ -local assetHelper = asset.require('util/asset_helper') - - - local speck = asset.syncedResource({ Name = "Galaxy Groups Speck Files", Type = "HttpSynchronization", @@ -17,7 +13,7 @@ local object = { Color = { 1.0, 1.0, 1.0 }, Opacity = 0.65, --ScaleFactor = 10.0, - LabelFile = speck .. "/groups.label", + LabelFile = speck .. "groups.label", Unit = "Mpc", TextColor = { 0.1, 0.6, 0.2 }, TextSize = 21.5, @@ -40,15 +36,23 @@ local object = { } } -assetHelper.registerSceneGraphNodesAndExport(asset, { object }) +asset.onInitialize(function() + openspace.addSceneGraphNode(object) +end) + +asset.onDeinitialize(function() + openspace.removeSceneGraphNode(object) +end) + +asset.export(object) + asset.meta = { Name = "Galaxy Group Labels", - Version = "1.0", + Version = "1.1", Author = "Brian Abbott (AMNH)", Description = [[Digital Universe asset for Galaxy Groups]], URL = "https://www.amnh.org/research/hayden-planetarium/digital-universe", - License = "AMNH Digital Universe", - Identifiers = {"NearbyGalaxyGroups"} + License = "AMNH Digital Universe" } diff --git a/data/assets/scene/digitaluniverse/h2regions.asset b/data/assets/scene/digitaluniverse/h2regions.asset index 9648f7d088..033bc25d14 100644 --- a/data/assets/scene/digitaluniverse/h2regions.asset +++ b/data/assets/scene/digitaluniverse/h2regions.asset @@ -1,7 +1,3 @@ -local assetHelper = asset.require('util/asset_helper') - - - local textures = asset.syncedResource({ Name = "HII Regions Textures", Type = "HttpSynchronization", @@ -23,10 +19,10 @@ local object = { Enabled = false, Color = { 0.0, 0.5, 1.0 }, Opacity = 0.70, - File = speck .. "/h2.speck", - Texture = textures .."/point4.png", + File = speck .. "h2.speck", + Texture = textures .."point4.png", PolygonSides = 6, - LabelFile = speck .. "/h2.label", + LabelFile = speck .. "h2.label", Unit = "pc", TextColor = { 0.5, 0.5, 0.5 }, ScaleFactor = 420, @@ -52,15 +48,23 @@ local object = { } } -assetHelper.registerSceneGraphNodesAndExport(asset, { object }) +asset.onInitialize(function() + openspace.addSceneGraphNode(object) +end) + +asset.onDeinitialize(function() + openspace.removeSceneGraphNode(object) +end) + +asset.export(object) + asset.meta = { Name = "HII Regions", - Version = "1.0", + Version = "1.1", Description = [[Digital Universe asset for HII Regions]], Author = "Carter Emmart, Brian Abbott (AMNH)", URL = "https://www.amnh.org/research/hayden-planetarium/digital-universe", - License = "AMNH Digital Universe", - Identifiers = {"HIIRegions"} + License = "AMNH Digital Universe" } diff --git a/data/assets/scene/digitaluniverse/hdf.asset b/data/assets/scene/digitaluniverse/hdf.asset index 353ae96fdc..77b599a8ec 100644 --- a/data/assets/scene/digitaluniverse/hdf.asset +++ b/data/assets/scene/digitaluniverse/hdf.asset @@ -1,5 +1,9 @@ -local assetHelper = asset.require('util/asset_helper') -local circle = asset.require('util/circle').circle +local circle = asset.syncedResource({ + Name = "Circle", + Type = "HttpSynchronization", + Identifier = "circle_image", + Version = 1 +}) local HUDFSpeck = asset.syncedResource({ Name = "HUDF Speck", @@ -22,9 +26,9 @@ local object = { Enabled = false, Color = { 1.0, 1.0, 1.0 }, Opacity = 1.0, - File = HUDFSpeck .. "/hudf.speck", - Texture = circle .. "/circle.png", - ColorMap = ColorMap .. "/hudf.cmap", + File = HUDFSpeck .. "hudf.speck", + Texture = circle .. "circle.png", + ColorMap = ColorMap .. "hudf.cmap", ColorOption = { "redshift", "proximity" }, ColorRange = { { 0.0, 0.075 }, { 1.0, 25.0 } }, Unit = "Mpc", @@ -42,14 +46,22 @@ local object = { } } -assetHelper.registerSceneGraphNodesAndExport(asset, { object }) +asset.onInitialize(function() + openspace.addSceneGraphNode(object) +end) + +asset.onDeinitialize(function() + openspace.removeSceneGraphNode(object) +end) + +asset.export(object) + asset.meta = { Name = "Hubble Ultra Deep Field", - Version = "1.1", + Version = "1.2", Description = "Hubble Ultra Deep Field galaxy survey", Author = "Frank Summers (STScI), Brian Abbott (AMNH)", - Identifiers = {"HubbleDeepField"}, URL = "http://www.haydenplanetarium.org/universe", License = [[ Copyright (c) American Museum of Natural History. All rights reserved.

diff --git a/data/assets/scene/digitaluniverse/kepler.asset b/data/assets/scene/digitaluniverse/kepler.asset index d07868db17..3e744c0ea7 100644 --- a/data/assets/scene/digitaluniverse/kepler.asset +++ b/data/assets/scene/digitaluniverse/kepler.asset @@ -1,7 +1,3 @@ -local assetHelper = asset.require('util/asset_helper') - - - local textures = asset.syncedResource({ Name = "Kepler Textures", Type = "HttpSynchronization", @@ -24,9 +20,9 @@ local object = { Color = { 1.0, 1.0, 0.0 }, Opacity = 0.99, ScaleFactor = 410.0, - File = speck .. "/kepler.speck", + File = speck .. "kepler.speck", Unit = "pc", - Texture = textures .. "/halo.png", + Texture = textures .. "halo.png", CorrectionSizeEndDistance = 15.86, CorrectionSizeFactor = 8.59, BillboardMinMaxSize = { 0.0, 30.0 }, @@ -48,15 +44,23 @@ local object = { } } -assetHelper.registerSceneGraphNodesAndExport(asset, { object }) +asset.onInitialize(function() + openspace.addSceneGraphNode(object) +end) + +asset.onDeinitialize(function() + openspace.removeSceneGraphNode(object) +end) + +asset.export(object) + asset.meta = { Name = "Kepler Planetary Candidates", - Version = "2.0", + Version = "2.1", Description = [[Digital Universe asset for Kepler Planetary Candidates]], Author = "Brian Abbott, Emily Rice, and Jason No (AMNH)", URL = "https://www.amnh.org/research/hayden-planetarium/digital-universe", - License = "AMNH Digital Universe", - Identifiers = {"KeplerPlanetaryCandidates"} + License = "AMNH Digital Universe" } diff --git a/data/assets/scene/digitaluniverse/localdwarfs.asset b/data/assets/scene/digitaluniverse/localdwarfs.asset index ac23ad0dc6..a8a515032f 100644 --- a/data/assets/scene/digitaluniverse/localdwarfs.asset +++ b/data/assets/scene/digitaluniverse/localdwarfs.asset @@ -1,7 +1,3 @@ -local assetHelper = asset.require('util/asset_helper') - - - local textures = asset.syncedResource({ Name = "Local Dwarfs Textures", Type = "HttpSynchronization", @@ -22,13 +18,13 @@ local object = { Type = "RenderableBillboardsCloud", Enabled = false, Color = { 0.5, 1.0, 0.2 }, - ColorMap = speck .. "/localgroup.cmap", + ColorMap = speck .. "localgroup.cmap", ColorOption = { "association" }, Opacity = 0.3, - File = speck .. "/localgroup.speck", - Texture = textures .. "/point4.png", + File = speck .. "localgroup.speck", + Texture = textures .. "point4.png", PolygonSides = 12, - LabelFile = speck .. "/localgroup.label", + LabelFile = speck .. "localgroup.label", Unit = "Mpc", TextColor = { 0.3, 0.3, 1.0 }, ScaleFactor = 465, @@ -54,15 +50,23 @@ local object = { } } -assetHelper.registerSceneGraphNodesAndExport(asset, { object }) +asset.onInitialize(function() + openspace.addSceneGraphNode(object) +end) + +asset.onDeinitialize(function() + openspace.removeSceneGraphNode(object) +end) + +asset.export(object) + asset.meta = { Name = "Local Group", - Version = "2.0", + Version = "2.1", Description = [[Digital Universe asset for the Local Goup]], Author = "Brian Abbott (AMNH)", URL = "https://www.amnh.org/research/hayden-planetarium/digital-universe", - License = "AMNH Digital Universe", - Identifiers = {"LocalDwarfGalaxies"} + License = "AMNH Digital Universe" } diff --git a/data/assets/scene/digitaluniverse/milkyway.asset b/data/assets/scene/digitaluniverse/milkyway.asset index 444c2614ad..4b35bf87a6 100644 --- a/data/assets/scene/digitaluniverse/milkyway.asset +++ b/data/assets/scene/digitaluniverse/milkyway.asset @@ -1,6 +1,16 @@ -local assetHelper = asset.require('util/asset_helper') +local planeTextures = asset.syncedResource({ + Name = "Milky Way Plane Textures", + Type = "HttpSynchronization", + Identifier = "digitaluniverse_milkyway_textures", + Version = 2 +}) -local dataPaths = asset.require("scene/digitaluniverse/milkyway_data") +local planeSpeck = asset.syncedResource({ + Name = "Milky Way Plane Speck", + Type = "HttpSynchronization", + Identifier = "digitaluniverse_milkyway_speck", + Version = 1 +}) local plane = { Identifier = "MilkyWayGalaxyImage", @@ -11,8 +21,8 @@ local plane = { Color = { 1.0, 1.0, 1.0 }, Opacity = 0.99, ScaleFactor = 2.8, - File = dataPaths.SpeckPath .. "/galaxy.speck", - TexturePath = dataPaths.TexturesPath, + File = planeSpeck .. "galaxy.speck", + TexturePath = planeTextures, Luminosity = "size", ScaleLuminosity = 1.0, FadeInDistances = { 3000.0, 50000.0 }, @@ -33,16 +43,24 @@ local plane = { } } -assetHelper.registerSceneGraphNodesAndExport(asset, { plane }) +asset.onInitialize(function() + openspace.addSceneGraphNode(plane) +end) + +asset.onDeinitialize(function() + openspace.removeSceneGraphNode(plane) +end) + +asset.export(plane) + asset.meta = { Name = "MilkyWay Galaxy", - Version = "2.0", + Version = "2.1", Description = [[Digital Universe asset containt 2D image of the MilkyWay. For extragalactic viewing]], Author = "Brian Abbott, Carter Emmart (AMNH)", URL = "https://www.amnh.org/research/hayden-planetarium/digital-universe", - License = "AMNH Digital Universe", - Identifiers = {"MilkyWayGalaxyImage"} + License = "AMNH Digital Universe" } diff --git a/data/assets/scene/digitaluniverse/milkyway_arm_labels.asset b/data/assets/scene/digitaluniverse/milkyway_arm_labels.asset index fb5f1fa761..77a27c60c5 100644 --- a/data/assets/scene/digitaluniverse/milkyway_arm_labels.asset +++ b/data/assets/scene/digitaluniverse/milkyway_arm_labels.asset @@ -1,6 +1,16 @@ -local assetHelper = asset.require('util/asset_helper') +local planeTextures = asset.syncedResource({ + Name = "Milky Way Plane Textures", + Type = "HttpSynchronization", + Identifier = "digitaluniverse_milkyway_textures", + Version = 2 +}) -local dataPaths = asset.require("scene/digitaluniverse/milkyway_data") +local planeSpeck = asset.syncedResource({ + Name = "Milky Way Plane Speck", + Type = "HttpSynchronization", + Identifier = "digitaluniverse_milkyway_speck", + Version = 1 +}) local plane = { Identifier = "MilkyWayGalaxyArmLabelsImage", @@ -11,8 +21,8 @@ local plane = { Color = { 1.0, 1.0, 1.0 }, Opacity = 0.99, ScaleFactor = 2.8, - File = dataPaths.SpeckPath .. "/galaxyArmLabels.speck", - TexturePath = dataPaths.TexturesPath, + File = planeSpeck .. "galaxyArmLabels.speck", + TexturePath = planeTextures, Luminosity = "size", ScaleLuminosity = 1.0, FadeInDistances = { 3000.0, 50000.0 }, @@ -30,12 +40,21 @@ local plane = { } } -assetHelper.registerSceneGraphNodesAndExport(asset, { plane }) +asset.onInitialize(function() + openspace.addSceneGraphNode(plane) +end) + +asset.onDeinitialize(function() + openspace.removeSceneGraphNode(plane) +end) + +asset.export(plane) + asset.meta = { Name = "Milky Way Arms Labels", - Version = "1.0", + Version = "1.1", Description = [[ Image with arm labels for the Milky Way galaxy]], Author = "Brian Abbott (AMNH)", URL = "https://www.amnh.org/research/hayden-planetarium/digital-universe", @@ -58,6 +77,5 @@ asset.meta = { WARRANTY of any kind. We provide the Atlas as is and take no responsibility for any damage resulting from the use of this Atlas. The entire risk as to the quality and performance of this product is with the user.

For more information, - please visit http://www.haydenplanetarium.org/universe]], - Identifiers = {"MilkyWayGalaxyArmLabelsImage"} + please visit http://www.haydenplanetarium.org/universe]] } diff --git a/data/assets/scene/digitaluniverse/milkyway_data.asset b/data/assets/scene/digitaluniverse/milkyway_data.asset deleted file mode 100644 index 90f93e7a29..0000000000 --- a/data/assets/scene/digitaluniverse/milkyway_data.asset +++ /dev/null @@ -1,16 +0,0 @@ -local planeTextures = asset.syncedResource({ - Name = "Milky Way Plane Textures", - Type = "HttpSynchronization", - Identifier = "digitaluniverse_milkyway_textures", - Version = 2 -}) - -local planeSpeck = asset.syncedResource({ - Name = "Milky Way Plane Speck", - Type = "HttpSynchronization", - Identifier = "digitaluniverse_milkyway_speck", - Version = 1 -}) - -asset.export("TexturesPath", planeTextures) -asset.export("SpeckPath", planeSpeck) diff --git a/data/assets/scene/digitaluniverse/milkyway_label.asset b/data/assets/scene/digitaluniverse/milkyway_label.asset index 60908e0a35..f58709f484 100644 --- a/data/assets/scene/digitaluniverse/milkyway_label.asset +++ b/data/assets/scene/digitaluniverse/milkyway_label.asset @@ -1,8 +1,3 @@ ---milkyway_label.asset -local assetHelper = asset.require('util/asset_helper') - - - local homespeck = asset.syncedResource({ Name = "Home Speck File", Type = "HttpSynchronization", @@ -19,7 +14,7 @@ local homeLabel = { Opacity = 0.99, ScaleFactor = 500.0, DrawLabels = true, - LabelFile = homespeck .. "/home.label", + LabelFile = homespeck .. "home.label", Unit = "Mpc", TextColor = { 0.8, 0.8, 0.8 }, TextSize = 20.50, @@ -41,15 +36,23 @@ local homeLabel = { } } -assetHelper.registerSceneGraphNodesAndExport(asset, { homeLabel }) +asset.onInitialize(function() + openspace.addSceneGraphNode(homeLabel) +end) + +asset.onDeinitialize(function() + openspace.removeSceneGraphNode(homeLabel) +end) + +asset.export(homeLabel) + asset.meta = { Name = "Home Label", - Version = "1.0", + Version = "1.1", Description = [[Label for the Milky Way titled "Home", sided for the galactic level]], Author = "OpenSpace Team", URL = "http://openspaceproject.com", - License = "MIT license", - Identifiers = {"HomeLabel"} + License = "MIT license" } diff --git a/data/assets/scene/digitaluniverse/milkyway_sphere.asset b/data/assets/scene/digitaluniverse/milkyway_sphere.asset index 2857777793..2900df69f6 100644 --- a/data/assets/scene/digitaluniverse/milkyway_sphere.asset +++ b/data/assets/scene/digitaluniverse/milkyway_sphere.asset @@ -1,7 +1,3 @@ -local assetHelper = asset.require('util/asset_helper') - - - local sphereTextures = asset.syncedResource({ Name = "Milky Way Sphere Textures", Type = "HttpSynchronization", @@ -15,7 +11,7 @@ local sphere = { Transform = { Rotation = { Type = "StaticRotation", - Rotation = {0, 0, 3.14159265359} + Rotation = { 0, 0, math.pi } } }, Renderable = { @@ -23,9 +19,9 @@ local sphere = { Size = 9.2E21, Segments = 40, Opacity = 0.35, - Texture = sphereTextures .. "/DarkUniverse_mellinger_4k.jpg", + Texture = sphereTextures .. "DarkUniverse_mellinger_4k.jpg", Orientation = "Inside", - UseAdditiveBlending = true, + RenderBinMode = "PreDeferredTransparent", MirrorTexture = true, FadeOutThreshold = 0.0015, Background = true @@ -38,15 +34,23 @@ local sphere = { } } -assetHelper.registerSceneGraphNodesAndExport(asset, { sphere }) +asset.onInitialize(function() + openspace.addSceneGraphNode(sphere) +end) + +asset.onDeinitialize(function() + openspace.removeSceneGraphNode(sphere) +end) + +asset.export(sphere) + asset.meta = { Name = "Milky Way Galaxy Sphere", - Version = "2.0", + Version = "2.1", Description = [[All sky image of the Milky Way]], Author = "OpenSpace Team", URL = "http://openspaceproject.com", - License = "MIT license", - Identifiers = {"MilkyWay"} + License = "MIT license" } diff --git a/data/assets/scene/digitaluniverse/obassociations.asset b/data/assets/scene/digitaluniverse/obassociations.asset index 1339706042..23844471ef 100644 --- a/data/assets/scene/digitaluniverse/obassociations.asset +++ b/data/assets/scene/digitaluniverse/obassociations.asset @@ -1,7 +1,3 @@ -local assetHelper = asset.require('util/asset_helper') - - - local textures = asset.syncedResource({ Name = "OB Associations Textures", Type = "HttpSynchronization", @@ -22,16 +18,16 @@ local object = { Type = "RenderableBillboardsCloud", Enabled = false, Color = { 1.0, 1.0, 1.0 }, - ColorMap = speck .. "/ob.cmap", + ColorMap = speck .. "ob.cmap", ColorOption = { "arm" }, SizeOption = { "diameter" }, ExactColorMap = true, Opacity = 0.7, - File = speck .. "/ob.speck", + File = speck .. "ob.speck", Unit = "pc", - Texture = textures .. "/point4.png", + Texture = textures .. "point4.png", PolygonSides = 7, - LabelFile = speck .. "/ob.label", + LabelFile = speck .. "ob.label", TextColor = { 0.4, 0.5, 1.0 }, ScaleFactor = 390.0, TextSize = 16.24, @@ -56,15 +52,23 @@ local object = { } } -assetHelper.registerSceneGraphNodesAndExport(asset, { object }) +asset.onInitialize(function() + openspace.addSceneGraphNode(object) +end) + +asset.onDeinitialize(function() + openspace.removeSceneGraphNode(object) +end) + +asset.export(object) + asset.meta = { Name = "OB Associations", - Version = "2.0", + Version = "2.1", Description = [[Digital Universe asset for OB Associations]], Author = "Brian Abbott (AMNH)", URL = "https://www.amnh.org/research/hayden-planetarium/digital-universe", - License = "AMNH Digital Universe", - Identifiers = {"OBAssociations"} + License = "AMNH Digital Universe" } diff --git a/data/assets/scene/digitaluniverse/openclusters.asset b/data/assets/scene/digitaluniverse/openclusters.asset index bb4ae711e5..5478007c81 100644 --- a/data/assets/scene/digitaluniverse/openclusters.asset +++ b/data/assets/scene/digitaluniverse/openclusters.asset @@ -1,7 +1,3 @@ -local assetHelper = asset.require('util/asset_helper') - - - local textures = asset.syncedResource({ Name = "Open Clusters Textures", Type = "HttpSynchronization", @@ -23,12 +19,12 @@ local object = { Enabled = false, Color = { 0.1, 0.8, 0.4 }, Opacity = 0.5, - File = speck .. "/oc.speck", + File = speck .. "oc.speck", Unit = "pc", - Texture = textures .. "/point4.png", + Texture = textures .. "point4.png", PolygonSides = 12, TextColor = { 0.05, 0.4, 0.2 }, - LabelFile = speck .. "/oc.label", + LabelFile = speck .. "oc.label", ScaleFactor = 405.75, TextSize = 15.5, TextMinMaxSize = { 4, 30 }, @@ -52,15 +48,23 @@ local object = { } } -assetHelper.registerSceneGraphNodesAndExport(asset, { object }) +asset.onInitialize(function() + openspace.addSceneGraphNode(object) +end) + +asset.onDeinitialize(function() + openspace.removeSceneGraphNode(object) +end) + +asset.export(object) + asset.meta = { Name = "Open Star Clusters", - Version = "2.0", + Version = "2.1", Description = [[Digital Universe asset for Open Star Clusters]], Author = "Brian Abbott (AMNH)", URL = "https://www.amnh.org/research/hayden-planetarium/digital-universe", - License = "AMNH Digital Universe", - Identifiers = {"OpenStarClusters"} + License = "AMNH Digital Universe" } diff --git a/data/assets/scene/digitaluniverse/planetarynebulae.asset b/data/assets/scene/digitaluniverse/planetarynebulae.asset index c2a0c107d2..64416512c0 100644 --- a/data/assets/scene/digitaluniverse/planetarynebulae.asset +++ b/data/assets/scene/digitaluniverse/planetarynebulae.asset @@ -1,7 +1,3 @@ -local assetHelper = asset.require('util/asset_helper') - - - local textures = asset.syncedResource({ Name = "Planetary Nebulae Textures", Type = "HttpSynchronization", @@ -23,10 +19,10 @@ local object = { Enabled = false, Color = { 0.4, 0.4, 0.9 }, Opacity = 0.65, - File = speck .. "/pn.speck", - Texture = textures .. "/point4.png", + File = speck .. "pn.speck", + Texture = textures .. "point4.png", PolygonSides = 3, - LabelFile = speck .. "/pn.label", + LabelFile = speck .. "pn.label", Unit = "pc", TextColor = { 0.25, 0.25, 0.65 }, ScaleFactor = 425.0, @@ -49,15 +45,23 @@ local object = { } } -assetHelper.registerSceneGraphNodesAndExport(asset, { object }) +asset.onInitialize(function() + openspace.addSceneGraphNode(object) +end) + +asset.onDeinitialize(function() + openspace.removeSceneGraphNode(object) +end) + +asset.export(object) + asset.meta = { Name = "Planetary Nebulae", - Version = "2.0", + Version = "2.1", Description = [[Digital Universe asset for Planetary Nebulae]], Author = "Brian Abbott (AMNH)", URL = "https://www.amnh.org/research/hayden-planetarium/digital-universe", - License = "AMNH Digital Universe", - Identifiers = {"PlanetaryNebulae"} + License = "AMNH Digital Universe" } diff --git a/data/assets/scene/digitaluniverse/pulsars.asset b/data/assets/scene/digitaluniverse/pulsars.asset index 6e122a3336..64f0cd36c3 100644 --- a/data/assets/scene/digitaluniverse/pulsars.asset +++ b/data/assets/scene/digitaluniverse/pulsars.asset @@ -1,7 +1,3 @@ -local assetHelper = asset.require('util/asset_helper') - - - local textures = asset.syncedResource({ Name = "Pulsars Textures", Type = "HttpSynchronization", @@ -23,10 +19,10 @@ local object = { Enabled = false, Color = { 0.7, 0.0, 0.0 }, Opacity = 1.0, - File = speck .. "/pulsar.speck", - Texture = textures .. "/point4.png", + File = speck .. "pulsar.speck", + Texture = textures .. "point4.png", PolygonSides = 4, - LabelFile = speck .. "/pulsar.label", + LabelFile = speck .. "pulsar.label", Unit = "pc", TextColor = { 0.7, 0.2, 0.2 }, ScaleFactor = 424, @@ -53,15 +49,23 @@ local object = { } } -assetHelper.registerSceneGraphNodesAndExport(asset, { object }) +asset.onInitialize(function() + openspace.addSceneGraphNode(object) +end) + +asset.onDeinitialize(function() + openspace.removeSceneGraphNode(object) +end) + +asset.export(object) + asset.meta = { Name = "Pulsars", - Version = "2.0", + Version = "2.1", Description = [[Digital Universe asset for Pulsars.]], Author = "Brian Abbott (AMNH)", URL = "https://www.amnh.org/research/hayden-planetarium/digital-universe", - License = "AMNH Digital Universe", - Identifiers = {"Pulsars"} + License = "AMNH Digital Universe" } diff --git a/data/assets/scene/digitaluniverse/quasars.asset b/data/assets/scene/digitaluniverse/quasars.asset index 3ec14ef05b..5518be3d09 100644 --- a/data/assets/scene/digitaluniverse/quasars.asset +++ b/data/assets/scene/digitaluniverse/quasars.asset @@ -1,7 +1,3 @@ -local assetHelper = asset.require('util/asset_helper') - - - local textures = asset.syncedResource({ Name = "Quasars Textures", Type = "HttpSynchronization", @@ -23,8 +19,8 @@ local object = { Enabled = true, Color = { 1.0, 0.4, 0.2 }, Opacity = 0.95, - File = speck .. "/quasars.speck", - Texture = textures .. "/point3A.png", + File = speck .. "quasars.speck", + Texture = textures .. "point3A.png", Unit = "Mpc", ScaleFactor = 540.9, FadeInDistances = { 1000.0, 10000.0 }, -- Fade in value in the same unit as "Unit" @@ -45,15 +41,23 @@ local object = { } } -assetHelper.registerSceneGraphNodesAndExport(asset, { object }) +asset.onInitialize(function() + openspace.addSceneGraphNode(object) +end) + +asset.onDeinitialize(function() + openspace.removeSceneGraphNode(object) +end) + +asset.export(object) + asset.meta = { Name = "Quasars", - Version = "2.0", + Version = "2.1", Description = [[Digital Universe asset for Quasars.]], Author = "Brian Abbott (AMNH)", URL = "https://www.amnh.org/research/hayden-planetarium/digital-universe", - License = "AMNH Digital Universe", - Identifiers = {"Quasars"} + License = "AMNH Digital Universe" } diff --git a/data/assets/scene/digitaluniverse/sdss.asset b/data/assets/scene/digitaluniverse/sdss.asset index de7391eba0..f03c9d81e6 100644 --- a/data/assets/scene/digitaluniverse/sdss.asset +++ b/data/assets/scene/digitaluniverse/sdss.asset @@ -1,7 +1,3 @@ -local assetHelper = asset.require('util/asset_helper') - - - local textures = asset.syncedResource({ Name = "Sloan Digital Sky Survey Textures", Type = "HttpSynchronization", @@ -24,11 +20,11 @@ local object = { Color = { 0.8, 0.8, 1.0 }, Opacity = 0.8, ScaleFactor = 520.0, - File = speck .. "/SDSSgals.speck", - ColorMap = speck .. "/SDSSgals.cmap", + File = speck .. "SDSSgals.speck", + ColorMap = speck .. "SDSSgals.cmap", ColorOption = { "redshift", "proximity" }, ColorRange = { { 0.0, 0.075 }, { 1.0, 50.0 } }, - Texture = textures .. "/point3A.png", + Texture = textures .. "point3A.png", Unit = "Mpc", FadeInDistances = { 220.0, 650.0 }, -- Fade in value in the same unit as "Unit" BillboardMinMaxSize = { 0.0, 5.5 }, @@ -59,15 +55,23 @@ local object = { } } -assetHelper.registerSceneGraphNodesAndExport(asset, { object }) +asset.onInitialize(function() + openspace.addSceneGraphNode(object) +end) + +asset.onDeinitialize(function() + openspace.removeSceneGraphNode(object) +end) + +asset.export(object) + asset.meta = { Name = "Sloan Digital Sky Survey", - Version = "2.0", + Version = "2.1", Description = [[Digital Universe asset for The Sloan Digital Sky Survey (SDSS).]], Author = "Brian Abbott (AMNH)", URL = "https://www.amnh.org/research/hayden-planetarium/digital-universe", - License = "AMNH Digital Universe", - Identifiers = {"SloanDigitalSkySurvey"} + License = "AMNH Digital Universe" } diff --git a/data/assets/scene/digitaluniverse/starlabels.asset b/data/assets/scene/digitaluniverse/starlabels.asset index 387975abbd..d3c1c4cced 100644 --- a/data/assets/scene/digitaluniverse/starlabels.asset +++ b/data/assets/scene/digitaluniverse/starlabels.asset @@ -1,7 +1,3 @@ -local assetHelper = asset.require('util/asset_helper') - - - local speck = asset.syncedResource({ Name = "Star Labels Speck Files", Type = "HttpSynchronization", @@ -16,7 +12,7 @@ local object = { Enabled = false, Color = { 1.0, 1.0, 1.0 }, Opacity = 0.65, - LabelFile = speck .. "/stars.label", + LabelFile = speck .. "stars.label", Unit = "pc", TextColor = { 0.4, 0.4, 0.4 }, DrawLabels = true, @@ -30,15 +26,23 @@ local object = { } } -assetHelper.registerSceneGraphNodesAndExport(asset, { object }) +asset.onInitialize(function() + openspace.addSceneGraphNode(object) +end) + +asset.onDeinitialize(function() + openspace.removeSceneGraphNode(object) +end) + +asset.export(object) + asset.meta = { Name = "Star Labels", - Version = "2.0", + Version = "2.1", Description = [[Digital Universe asset for labels of the stars.]], Author = "Brian Abbott (AMNH)", URL = "https://www.amnh.org/research/hayden-planetarium/digital-universe", - License = "AMNH Digital Universe", - Identifiers = {"StarsLabels"} + License = "AMNH Digital Universe" } diff --git a/data/assets/scene/digitaluniverse/starorbits.asset b/data/assets/scene/digitaluniverse/starorbits.asset index d79d96d2fa..e5748af0a9 100644 --- a/data/assets/scene/digitaluniverse/starorbits.asset +++ b/data/assets/scene/digitaluniverse/starorbits.asset @@ -1,6 +1,5 @@ -local assetHelper = asset.require('util/asset_helper') -local transforms = asset.require('scene/solarsystem/sun/transforms') -local earth_transforms = asset.require('scene/solarsystem/planets/earth/transforms') +local transforms = asset.require("scene/solarsystem/sun/transforms") +local earth_transforms = asset.require("scene/solarsystem/planets/earth/transforms") local speck = asset.syncedResource({ @@ -17,9 +16,9 @@ local sunOrbit = { Type = "RenderableDUMeshes", Enabled = false, Opacity = 1.0, - File = speck .. "/starorbits-Sun.speck", + File = speck .. "starorbits-Sun.speck", MeshColor = {{ 1.0, 0.65, 0.0 }}, - --LabelFile = speck .. "/1ld.label", + --LabelFile = speck .. "1ld.label", -- TextColor = { 0.0, 0.2, 0.5 }, -- TextMinMaxSize = { 0, 30 }, Unit = "pc" @@ -38,9 +37,9 @@ local barnardsOrbit = { Type = "RenderableDUMeshes", Enabled = false, Opacity = 1.0, - File = speck .. "/starorbits-BarnardsStar.speck", + File = speck .. "starorbits-BarnardsStar.speck", MeshColor = {{0.39, 0.58, 0.93}}, - --LabelFile = speck .. "/1ld.label", + --LabelFile = speck .. "1ld.label", -- TextColor = { 0.0, 0.2, 0.5 }, -- TextSize = 10.3, -- TextMinMaxSize = { 0, 30 }, @@ -60,9 +59,9 @@ local kapteynsOrbit = { Type = "RenderableDUMeshes", Enabled = false, Opacity = 1.0, - File = speck .. "/starorbits-KapteynsStar.speck", + File = speck .. "starorbits-KapteynsStar.speck", MeshColor = {{0.6, 0.6, 0.6}}, - --LabelFile = speck .. "/1ld.label", + --LabelFile = speck .. "1ld.label", -- TextColor = { 0.0, 0.2, 0.5 }, -- TextSize = 10.3, -- TextMinMaxSize = { 0, 30 }, @@ -82,9 +81,9 @@ local lacaille9352Orbit = { Type = "RenderableDUMeshes", Enabled = false, Opacity = 1.0, - File = speck .. "/starorbits-Lacaille9352.speck", + File = speck .. "starorbits-Lacaille9352.speck", MeshColor = {{0.58, 0.0, 0.83}}, - --LabelFile = speck .. "/1ld.label", + --LabelFile = speck .. "1ld.label", -- TextColor = { 0.0, 0.2, 0.5 }, -- TextSize = 10.3, -- TextMinMaxSize = { 0, 30 }, @@ -104,9 +103,9 @@ local lSR1826Orbit = { Type = "RenderableDUMeshes", Enabled = false, Opacity = 1.0, - File = speck .. "/starorbits-LSR1826+3014.speck", + File = speck .. "starorbits-LSR1826+3014.speck", MeshColor = {{0.0, 0.39, 0.0}}, - --LabelFile = speck .. "/1ld.label", + --LabelFile = speck .. "1ld.label", -- TextColor = { 0.0, 0.2, 0.5 }, -- TextSize = 10.3, -- TextMinMaxSize = { 0, 30 }, @@ -126,9 +125,9 @@ local lSRJ0822Orbit = { Type = "RenderableDUMeshes", Enabled = false, Opacity = 1.0, - File = speck .. "/starorbits-LSRJ0822+1700.speck", + File = speck .. "starorbits-LSRJ0822+1700.speck", MeshColor = {{0.5, 1.0, 0.0}}, - --LabelFile = speck .. "/1ld.label", + --LabelFile = speck .. "1ld.label", -- TextColor = { 0.0, 0.2, 0.5 }, -- TextSize = 10.3, -- TextMinMaxSize = { 0, 30 }, @@ -148,9 +147,9 @@ local pM_J13420Orbit = { Type = "RenderableDUMeshes", Enabled = false, Opacity = 1.0, - File = speck .. "/starorbits-PM_J13420-3415.speck", + File = speck .. "starorbits-PM_J13420-3415.speck", MeshColor = {{0.70, 0.13, 0.13}}, - --LabelFile = speck .. "/1ld.label", + --LabelFile = speck .. "1ld.label", -- TextColor = { 0.0, 0.2, 0.5 }, -- TextSize = 10.3, -- TextMinMaxSize = { 0, 30 }, @@ -163,22 +162,38 @@ local pM_J13420Orbit = { } } -assetHelper.registerSceneGraphNodesAndExport(asset, { +local nodes = { sunOrbit, barnardsOrbit, pM_J13420Orbit, lSRJ0822Orbit, lSR1826Orbit, lacaille9352Orbit, kapteynsOrbit -}) +} + +asset.onInitialize(function() + for i, node in ipairs(nodes) do + openspace.addSceneGraphNode(node) + end +end) + +asset.onDeinitialize(function() + for i = #nodes, 1, -1 do + local node = nodes[i] + openspace.removeSceneGraphNode(node) + end +end) + +for i, node in ipairs(nodes) do + asset.export(node) +end + asset.meta = { Name = "Star Orbits", - Version = "1.0", + Version = "1.1", Description = [[Select Star Orbital paths that delineate their trajectory around the Milky Way over 1 billion years into the future. Included: Sun, Barnards, Kapteyns, Lacaille 9352, LSR1826+3014, LSRJ0822+1700, PM_J13420-3415.

Data Reference: Sebastien Lepine (AMNH)]], Author = "Brian Abbott (AMNH)", URL = "https://www.amnh.org/research/hayden-planetarium/digital-universe", - License = "AMNH Digital Universe", - Identifiers = {"SunOrbit", "BarnardsOrbit", "KapteynsOrbit", "pM_J13420Orbit", - "LSR1826Orbit", "LSRJ0822Orbit", "lacaille9352Orbit"} + License = "AMNH Digital Universe" } diff --git a/data/assets/scene/digitaluniverse/stars.asset b/data/assets/scene/digitaluniverse/stars.asset index 77624e5725..26e959dd23 100644 --- a/data/assets/scene/digitaluniverse/stars.asset +++ b/data/assets/scene/digitaluniverse/stars.asset @@ -1,8 +1,3 @@ -local assetHelper = asset.require('util/asset_helper') - -local colormaps = asset.require('./stars_colormap').ColorMaps -local textures = asset.require('./stars_textures').textures - local speck = asset.syncedResource({ Name = "Stars Speck Files", Type = "HttpSynchronization", @@ -17,15 +12,29 @@ local sunspeck = asset.syncedResource({ Version = 1 }) +local colormaps = asset.syncedResource({ + Name = "Stars Color Table", + Type = "HttpSynchronization", + Identifier = "stars_colormap", + Version = 2 +}) + +local textures = asset.syncedResource({ + Name = "Stars Textures", + Type = "HttpSynchronization", + Identifier = "stars_textures", + Version = 1 +}) + local stars = { Identifier = "Stars", Renderable = { Type = "RenderableStars", - File = speck .. "/stars.speck", - Texture = textures .. "/halo.png", - --ShapeTexture = textures .. "/disc.png", - ColorMap = colormaps .. "/colorbv.cmap", - OtherDataColorMap = colormaps .. "/viridis.cmap", + File = speck .. "stars.speck", + Texture = textures .. "halo.png", + --ShapeTexture = textures .. "disc.png", + ColorMap = colormaps .. "colorbv.cmap", + OtherDataColorMap = colormaps .. "viridis.cmap", MagnitudeExponent = 6.2, SizeComposition = "Distance Modulus", RenderMethod = "Texture Based", -- or PSF @@ -57,10 +66,10 @@ local sunstar = { Identifier = "SunStar", Renderable = { Type = "RenderableStars", - File = sunspeck .. "/sunstar.speck", - Texture = textures .. "/halo.png", - --ShapeTexture = textures .. "/disc.png", - ColorMap = colormaps .. "/colorbv.cmap", + File = sunspeck .. "sunstar.speck", + Texture = textures .. "halo.png", + --ShapeTexture = textures .. "disc.png", + ColorMap = colormaps .. "colorbv.cmap", MagnitudeExponent = 6.2, SizeComposition = "Distance Modulus", RenderMethod = "Texture Based", -- or PSF @@ -85,15 +94,26 @@ local sunstar = { } } -assetHelper.registerSceneGraphNodesAndExport(asset, { stars, sunstar }) +asset.onInitialize(function() + openspace.addSceneGraphNode(stars) + openspace.addSceneGraphNode(sunstar) +end) + +asset.onDeinitialize(function() + openspace.removeSceneGraphNode(sunstar) + openspace.removeSceneGraphNode(stars) +end) + +asset.export(stars) +asset.export(sunstar) + asset.meta = { Name = "Stars", - Version = "2.0", + Version = "2.1", Description = [[Digital Universe asset for the stars.]], Author = "Brian Abbott (AMNH)", URL = "https://www.amnh.org/research/hayden-planetarium/digital-universe", - License = "AMNH Digital Universe", - Identifiers = {"Stars"} + License = "AMNH Digital Universe" } diff --git a/data/assets/scene/digitaluniverse/stars_colormap.asset b/data/assets/scene/digitaluniverse/stars_colormap.asset deleted file mode 100644 index d8aaa83f1d..0000000000 --- a/data/assets/scene/digitaluniverse/stars_colormap.asset +++ /dev/null @@ -1,22 +0,0 @@ -local assetHelper = asset.require('util/asset_helper') - -local colormaps = asset.syncedResource({ - Name = "Stars Color Table", - Type = "HttpSynchronization", - Identifier = "stars_colormap", - Version = 2 -}) - -asset.export("ColorMaps", colormaps) - -asset.meta = { - Name = "Star Colormaps", - Version = "2.0", - Description = [[Lookup tables used for star datasets, one of the tables map a B-V color - index to an RGB color. The B-V values are in the range (-0.4, 2.0) and each line maps - a value in that range to a color. The other table is the commonly used viridis map]], - Author = "OpenSpace Team", - URL = "https://www.amnh.org/research/hayden-planetarium/digital-universe", - License = "AMNH Digital Universe" -} - diff --git a/data/assets/scene/digitaluniverse/stars_textures.asset b/data/assets/scene/digitaluniverse/stars_textures.asset deleted file mode 100644 index d57f6d0907..0000000000 --- a/data/assets/scene/digitaluniverse/stars_textures.asset +++ /dev/null @@ -1,20 +0,0 @@ -local assetHelper = asset.require('util/asset_helper') - -local textures = asset.syncedResource({ - Name = "Stars Textures", - Type = "HttpSynchronization", - Identifier = "stars_textures", - Version = 1 -}) - -asset.export("textures", textures) - -asset.meta = { - Name = "Star Textures", - Version = "1.0", - Description = [[Square textures used to represent stars when applied to camera-facing bil;board]], - Author = "OpenSpace Team", - URL = "http://openspaceproject.com", - License = "MIT License" -} - diff --git a/data/assets/scene/digitaluniverse/superclusters.asset b/data/assets/scene/digitaluniverse/superclusters.asset index facc29d313..bcf9dca7cc 100644 --- a/data/assets/scene/digitaluniverse/superclusters.asset +++ b/data/assets/scene/digitaluniverse/superclusters.asset @@ -1,7 +1,3 @@ -local assetHelper = asset.require('util/asset_helper') - - - local textures = asset.syncedResource({ Name = "Galaxy Superclusters Textures", Type = "HttpSynchronization", @@ -24,9 +20,9 @@ local object = { DrawElements = false, Color = { 1.0, 1.0, 1.0 }, Opacity = 0.65, - File = speck .. "/superclust.speck", - Texture = textures .. "/point3A.png", - LabelFile = speck .. "/superclust.label", + File = speck .. "superclust.speck", + Texture = textures .. "point3A.png", + LabelFile = speck .. "superclust.label", Unit = "Mpc", TextColor = { 0.9, 0.9, 0.9 }, ScaleFactor = 531.0, @@ -48,15 +44,23 @@ local object = { } } -assetHelper.registerSceneGraphNodesAndExport(asset, { object }) +asset.onInitialize(function() + openspace.addSceneGraphNode(object) +end) + +asset.onDeinitialize(function() + openspace.removeSceneGraphNode(object) +end) + +asset.export(object) + asset.meta = { Name = "Galaxy Superclusters", - Version = "2.0", + Version = "2.1", Description = [[Digital Universe asset for Galaxy Superclusters.]], Author = "Brian Abbott (AMNH)", URL = "https://www.amnh.org/research/hayden-planetarium/digital-universe", - License = "AMNH Digital Universe", - Identifiers = {"GalaxySuperclusters"} + License = "AMNH Digital Universe" } diff --git a/data/assets/scene/digitaluniverse/supernovaremnants.asset b/data/assets/scene/digitaluniverse/supernovaremnants.asset index efa2c2844f..cf15dbacfb 100644 --- a/data/assets/scene/digitaluniverse/supernovaremnants.asset +++ b/data/assets/scene/digitaluniverse/supernovaremnants.asset @@ -1,7 +1,3 @@ -local assetHelper = asset.require('util/asset_helper') - - - local textures = asset.syncedResource({ Name = "Supernova Remnants Textures", Type = "HttpSynchronization", @@ -23,10 +19,10 @@ local object = { Enabled = false, Color = { 1.0, 0.5, 0.0 }, Opacity = 0.32, - File = speck .. "/snr.speck", - Texture = textures .. "/point4.png", + File = speck .. "snr.speck", + Texture = textures .. "point4.png", PolygonSides = 7, - LabelFile = speck .. "/snr.label", + LabelFile = speck .. "snr.label", Unit = "pc", TextColor = { 0.6, 0.46, 0.0 }, ScaleFactor = 424, @@ -48,15 +44,23 @@ local object = { } } -assetHelper.registerSceneGraphNodesAndExport(asset, { object }) +asset.onInitialize(function() + openspace.addSceneGraphNode(object) +end) + +asset.onDeinitialize(function() + openspace.removeSceneGraphNode(object) +end) + +asset.export(object) + asset.meta = { Name = "Supernova Remnants", - Version = "2.0", + Version = "2.1", Description = [[Digital Universe asset for Supernova Remnants.]], Author = "Brian Abbott (AMNH)", URL = "https://www.amnh.org/research/hayden-planetarium/digital-universe", - License = "AMNH Digital Universe", - Identifiers = {"SupernovaRemnants"} + License = "AMNH Digital Universe" } diff --git a/data/assets/scene/digitaluniverse/tully.asset b/data/assets/scene/digitaluniverse/tully.asset index d06deb8a4c..abe1dc2918 100644 --- a/data/assets/scene/digitaluniverse/tully.asset +++ b/data/assets/scene/digitaluniverse/tully.asset @@ -1,7 +1,3 @@ -local assetHelper = asset.require('util/asset_helper') - - - local textures = asset.syncedResource({ Name = "Tully Textures", Type = "HttpSynchronization", @@ -24,14 +20,14 @@ local tullyPoints = { Color = { 1.0, 0.4, 0.2 }, Opacity = 0.99, ScaleFactor = 504.0, - File = speck .. "/tully.speck", - Texture = textures .. "/point3A.png", - --ColorMap = speck .. "/tully.cmap", - ColorMap = speck .. "/lss.cmap", + File = speck .. "tully.speck", + Texture = textures .. "point3A.png", + --ColorMap = speck .. "tully.cmap", + ColorMap = speck .. "lss.cmap", --ColorOption = { "proximity" }, ColorOption = { "prox5Mpc" }, ColorRange = { { 1.0, 30.0 } }, - LabelFile = speck .. "/tully.label", + LabelFile = speck .. "tully.label", DrawLabels = false, Unit = "Mpc", TextColor = { 0.7, 0.7, 0.7 }, @@ -79,7 +75,7 @@ local tullyImages = { Color = { 1.0, 1.0, 1.0 }, Opacity = 0.99, ScaleFactor = 1.0, - File = speck .. "/tully.speck", + File = speck .. "tully.speck", TexturePath = textures, Luminosity = "diamkpc", ScaleLuminosity = 0.001, @@ -110,16 +106,27 @@ local tullyImages = { } } -assetHelper.registerSceneGraphNodesAndExport(asset, { tullyPoints, tullyImages }) +asset.onInitialize(function() + openspace.addSceneGraphNode(tullyPoints) + openspace.addSceneGraphNode(tullyImages) +end) + +asset.onDeinitialize(function() + openspace.removeSceneGraphNode(tullyImages) + openspace.removeSceneGraphNode(tullyPoints) +end) + +asset.export(tullyPoints) +asset.export(tullyImages) + asset.meta = { Name = "Tully Galaxies", - Version = "3.0", + Version = "3.1", Description = [[Digital Universe asset for Tully Galaxies, including point cloud and images.]], Author = "Stuart Levy (NCSA/UIUC), Brian Abbott (AMNH)", URL = "https://www.amnh.org/research/hayden-planetarium/digital-universe", - License = "AMNH Digital Universe", - Identifiers = {"TullyGalaxies" , "TullyGalaxiesImages"} + License = "AMNH Digital Universe" } diff --git a/data/assets/scene/digitaluniverse/voids.asset b/data/assets/scene/digitaluniverse/voids.asset index 269ae7c7e7..c7d85f257c 100644 --- a/data/assets/scene/digitaluniverse/voids.asset +++ b/data/assets/scene/digitaluniverse/voids.asset @@ -1,7 +1,3 @@ -local assetHelper = asset.require('util/asset_helper') - - - local speck = asset.syncedResource({ Name = "Voids Speck Files", Type = "HttpSynchronization", @@ -18,7 +14,7 @@ local object = { DrawLabels = true, Color = { 1.0, 1.0, 1.0 }, Opacity = 0.65, - LabelFile = speck .. "/voids.label", + LabelFile = speck .. "voids.label", Unit = "Mpc", TextColor = { 0.296, 0.629, 1.0 }, TextSize = 20.9, @@ -40,15 +36,23 @@ local object = { } } -assetHelper.registerSceneGraphNodesAndExport(asset, { object }) +asset.onInitialize(function() + openspace.addSceneGraphNode(object) +end) + +asset.onDeinitialize(function() + openspace.removeSceneGraphNode(object) +end) + +asset.export(object) + asset.meta = { Name = "Voids", - Version = "2.0", + Version = "2.1", Author = "Brian Abbott (AMNH)", Description = [[Digital Universe asset for Cosmic voids.]], URL = "https://www.amnh.org/research/hayden-planetarium/digital-universe", - License = "AMNH Digital Universe", - Identifiers = {"Voids"} + License = "AMNH Digital Universe" } diff --git a/data/assets/scene/milkyway/constellations/constellation_art.asset b/data/assets/scene/milkyway/constellations/constellation_art.asset index 1217742e88..e123e299f6 100644 --- a/data/assets/scene/milkyway/constellations/constellation_art.asset +++ b/data/assets/scene/milkyway/constellations/constellation_art.asset @@ -1,4 +1,4 @@ -local constellationsCSV = asset.localResource('constellation_data.csv') +local constellationsCSV = asset.localResource("constellation_data.csv") local transforms = asset.require("scene/solarsystem/sun/transforms") local images = asset.syncedResource({ @@ -23,18 +23,18 @@ local createConstellations = function (baseIdentifier, guiPath, constellationfil for line in io.lines(openspace.absPath(constellationfile)) do if (notFirstLine) then -- describes the data - local matchstring = '(.-),(.-),(.-),(.-),(.-),(.-),(.-),(.-),(.-),(.-),(.-),(.-)$' + local matchstring = "(.-),(.-),(.-),(.-),(.-),(.-),(.-),(.-),(.-),(.-),(.-),(.-)$" local group, abbreviation, name, x, y, z, scale, imageName, rotX, rotY, rotZ, centerStar = line:match(matchstring) local magVec = math.sqrt(x*x + y*y + z*z) local normx = x/magVec local normy = y/magVec local normz = z/magVec - group = (group == '' and globe or group) + group = (group == "" and globe or group) local aconstellation = { - -- Identifier = guiPath .. '-' .. name, - Identifier = baseIdentifier .. '-' .. abbreviation, + -- Identifier = guiPath .. "-" .. name, + Identifier = baseIdentifier .. "-" .. abbreviation, Parent = transforms.SolarSystemBarycenter.Identifier, Transform = { Translation = { @@ -58,14 +58,15 @@ local createConstellations = function (baseIdentifier, guiPath, constellationfil Origin = "Center", Billboard = false, LazyLoading = true, - Texture = images .. "/" .. imageName, + Texture = images .. imageName, BlendMode = "Additive", Opacity = 0.1 }, Tag = { "ConstellationArtImage", group }, GUI = { - Name = name .. ' Image', - Path = '/Milky Way/' .. guiPath + Name = name .. " Image", + Path = "/Milky Way/" .. guiPath, + Description = name .. " Constellation Image" } } table.insert(genConstellations, aconstellation); @@ -81,9 +82,11 @@ end local show_art = { Identifier = "constellation_art.show_art", Name = "Show Constellation Art", - Command = "openspace.setPropertyValue('Scene.ConstellationArt*.Renderable.Opacity', 0);" .. - "openspace.setPropertyValue('Scene.ConstellationArt*.Renderable.Enabled', true);" .. - "openspace.setPropertyValue('Scene.ConstellationArt*.Renderable.Opacity', 0.2, 2);", + Command = [[ + openspace.setPropertyValue("Scene.ConstellationArt*.Renderable.Opacity", 0); + openspace.setPropertyValue("Scene.ConstellationArt*.Renderable.Enabled", true); + openspace.setPropertyValue("Scene.ConstellationArt*.Renderable.Opacity", 0.2, 2); + ]], Documentation = "Enables and fades up constellation art work", GuiPath = "/Rendering", IsLocal = false @@ -93,7 +96,7 @@ asset.export("ShowArtAction", show_art) local hide_art = { Identifier = "constellation_art.hide_art", Name = "Hide Constellation Art", - Command = "openspace.setPropertyValue('Scene.ConstellationArt*.Renderable.Opacity', 0, 2);", + Command = [[openspace.setPropertyValue("Scene.ConstellationArt*.Renderable.Opacity", 0, 2)]], Documentation = "Fades out constellation artwork", GuiPath = "/Rendering", IsLocal = false @@ -103,7 +106,7 @@ asset.export("HideArtAction", hide_art) local disable_art = { Identifier = "constellation_art.disable_art", Name = "Disable Constellation Art", - Command = "openspace.setPropertyValue('Scene.ConstellationArt*.Renderable.Enabled', false);", + Command = [[openspace.setPropertyValue("Scene.ConstellationArt*.Renderable.Enabled", false)]], Documentation = "Disable constellation artwork", GuiPath = "/Rendering", IsLocal = false @@ -113,9 +116,11 @@ asset.export("DisableArtAction", disable_art) local show_zodiac_art = { Identifier = "constellation_art.show_zodiac_art", Name = "Show Zodiac Art", - Command = "openspace.setPropertyValue('Scene.ConstellationArt*.Renderable.Opacity', 0);" .. - "openspace.setPropertyValue('{zodiac}.Renderable.Enabled',true);" .. - "openspace.setPropertyValue('{zodiac}.Renderable.Opacity', 1, 2);", + Command = [[ + openspace.setPropertyValue("Scene.ConstellationArt*.Renderable.Opacity", 0); + openspace.setPropertyValue("{zodiac}.Renderable.Enabled",true); + openspace.setPropertyValue("{zodiac}.Renderable.Opacity", 1, 2); + ]], Documentation = "Enables and fades up zodiac art work", GuiPath = "/Rendering", IsLocal = false @@ -125,7 +130,7 @@ asset.export("ShowZodiacArt", show_zodiac_art) local hide_zodiac_art = { Identifier = "constellation_art.hide_zodiac_art", Name = "Hide Zodiac Art", - Command = "openspace.setPropertyValue('{zodiac}.Renderable.Opacity', 0, 2);", + Command = [[openspace.setPropertyValue("{zodiac}.Renderable.Opacity", 0, 2)]], Documentation = "fades down zodiac art work", GuiPath = "/Rendering", IsLocal = false @@ -135,9 +140,9 @@ asset.export("HideZodiacArt", hide_zodiac_art) local nodes = {} asset.onInitialize(function () - local constellationsCSV = images .. "/constellation_data.csv" + local constellationsCSV = images .. "constellation_data.csv" - nodes = createConstellations('ConstellationArt', 'Constellation Art', constellationsCSV) + nodes = createConstellations("ConstellationArt", "Constellation Art", constellationsCSV) for _, n in ipairs(nodes) do openspace.addSceneGraphNode(n); end @@ -152,15 +157,18 @@ asset.onDeinitialize(function () openspace.removeSceneGraphNode(n.Identifier); end - openspace.action.removeAction(show_art.Identifier) - openspace.action.removeAction(hide_art.Identifier) - openspace.action.removeAction(disable_art.Identifier) + openspace.action.removeAction(show_art) + openspace.action.removeAction(hide_art) + openspace.action.removeAction(disable_art) end) +for _, n in ipairs(nodes) do + asset.export(n) +end asset.meta = { Name = "Constellation Images", - Version = "1.0", + Version = "1.1", Description = "Artistic images depicting the constellations", Author = "James Hedberg", URL = "http://jameshedberg.com", diff --git a/data/assets/scene/milkyway/constellations/constellation_extrakeybinds.asset b/data/assets/scene/milkyway/constellations/constellation_extrakeybinds.asset index 33693141f8..8b4809195a 100644 --- a/data/assets/scene/milkyway/constellations/constellation_extrakeybinds.asset +++ b/data/assets/scene/milkyway/constellations/constellation_extrakeybinds.asset @@ -1,4 +1,4 @@ -local mainAsset = asset.require('./constellation_art') +local mainAsset = asset.require("./constellation_art") asset.onInitialize(function () openspace.bindKey("v", mainAsset.ShowZodiacArt.Identifier) diff --git a/data/assets/scene/milkyway/constellations/constellation_keybinds.asset b/data/assets/scene/milkyway/constellations/constellation_keybinds.asset index 37b9f3e124..3734cafdfc 100644 --- a/data/assets/scene/milkyway/constellations/constellation_keybinds.asset +++ b/data/assets/scene/milkyway/constellations/constellation_keybinds.asset @@ -1,4 +1,4 @@ -local mainAsset = asset.require('./constellation_art') +local mainAsset = asset.require("./constellation_art") asset.onInitialize(function () openspace.bindKey("c", mainAsset.ShowArtAction.Identifier) diff --git a/data/assets/scene/milkyway/exoplanets/exoplanets_data.asset b/data/assets/scene/milkyway/exoplanets/exoplanets_data.asset index 45597c4302..5c13517b64 100644 --- a/data/assets/scene/milkyway/exoplanets/exoplanets_data.asset +++ b/data/assets/scene/milkyway/exoplanets/exoplanets_data.asset @@ -1,5 +1,3 @@ -local colormaps = asset.require('scene/digitaluniverse/stars_colormap').ColorMaps - local DataPath = asset.syncedResource({ Name = "Exoplanet Data Files", Type = "HttpSynchronization", @@ -7,6 +5,13 @@ local DataPath = asset.syncedResource({ Version = 2 }) +local colormaps = asset.syncedResource({ + Name = "Stars Color Table", + Type = "HttpSynchronization", + Identifier = "stars_colormap", + Version = 2 +}) + asset.onInitialize(function () local p = "Modules.Exoplanets.DataFolder"; if (openspace.getPropertyValue(p) == "") then @@ -15,7 +20,7 @@ asset.onInitialize(function () p = "Modules.Exoplanets.BvColormap"; if (openspace.getPropertyValue(p) == "") then - openspace.setPropertyValueSingle(p, colormaps .. "/colorbv.cmap") + openspace.setPropertyValueSingle(p, colormaps .. "colorbv.cmap") end end) diff --git a/data/assets/scene/milkyway/exoplanets/exoplanets_textures.asset b/data/assets/scene/milkyway/exoplanets/exoplanets_textures.asset index dd80929b3d..3f424fb2e0 100644 --- a/data/assets/scene/milkyway/exoplanets/exoplanets_textures.asset +++ b/data/assets/scene/milkyway/exoplanets/exoplanets_textures.asset @@ -1,7 +1,12 @@ local habitableZoneTextures = - asset.require('./../habitable_zones/habitable_zone_textures').TexturesPath + asset.require("../habitable_zones/habitable_zone_textures").TexturesPath -local sunTextures = asset.require('scene/solarsystem/sun/sun_textures').TexturesPath +local sunTextures = asset.syncedResource({ + Type = "HttpSynchronization", + Name = "Sun textures", + Identifier = "sun_textures", + Version = 4 +}) local TexturesPath = asset.syncedResource({ Name = "Exoplanet Textures", @@ -11,13 +16,13 @@ local TexturesPath = asset.syncedResource({ }) asset.onInitialize(function () - local starTexture = TexturesPath .. "/sun.jpg" - local noDataTexture = TexturesPath .. "/grid-32.png" - local discTexture = TexturesPath .. "/disc_bw_texture.png" + local starTexture = TexturesPath .. "sun.jpg" + local noDataTexture = TexturesPath .. "grid-32.png" + local discTexture = TexturesPath .. "disc_bw_texture.png" - local starGlareTexture = sunTextures .. "/halo.png" + local starGlareTexture = sunTextures .. "halo.png" - local hzTexture = habitableZoneTextures .. "/hot_to_cold_faded.png" + local hzTexture = habitableZoneTextures .. "hot_to_cold_faded.png" -- Set the default textures used for the exoplanet system creation -- (Check if already set, to not override value in config file) diff --git a/data/assets/scene/milkyway/gaia/apogee.asset b/data/assets/scene/milkyway/gaia/apogee.asset index b6abe3159a..8691d0fa5f 100644 --- a/data/assets/scene/milkyway/gaia/apogee.asset +++ b/data/assets/scene/milkyway/gaia/apogee.asset @@ -1,9 +1,3 @@ -local assetHelper = asset.require('util/asset_helper') - -local colorLUT = asset.require('scene/digitaluniverse/stars_colormap').ColorMaps -local textures = asset.require('scene/digitaluniverse/stars_textures').textures - - local speck = asset.syncedResource({ Name = "Apogee Speck Files", Type = "HttpSynchronization", @@ -11,21 +5,35 @@ local speck = asset.syncedResource({ Version = 1 }) +local colormaps = asset.syncedResource({ + Name = "Stars Color Table", + Type = "HttpSynchronization", + Identifier = "stars_colormap", + Version = 2 +}) + +local textures = asset.syncedResource({ + Name = "Stars Textures", + Type = "HttpSynchronization", + Identifier = "stars_textures", + Version = 1 +}) + local gaia_abundance_apogee = { - Identifier = "Gaia Abundance Apogee", + Identifier = "GaiaAbundanceApogee", Renderable = { Type = "RenderableStars", Enabled = false, - File = speck .. "/GaiaAbundApogee.speck", + File = speck .. "GaiaAbundApogee.speck", ColorOption = "Other Data", OtherData = "FeH", MagnitudeExponent = 6.2, SizeComposition = "Distance Modulus", RenderMethod = "Texture Based", - Texture = textures .. "/halo.png", - -- ShapeTexture = textures .. "/disc.png", - ColorMap = colorLUT .. "/colorbv.cmap", - OtherDataColorMap = colorLUT .. "/viridis.cmap", + Texture = textures .. "halo.png", + -- ShapeTexture = textures .. "disc.png", + ColorMap = colormaps .. "colorbv.cmap", + OtherDataColorMap = colormaps .. "viridis.cmap", StaticFilter = -9999, StaticFilterReplacement = 0.0, DataMapping = { @@ -40,8 +48,29 @@ local gaia_abundance_apogee = { } }, GUI = { - Path = "/Milky Way/Gaia" + Path = "/Milky Way/Gaia", + Name = "Gaia Abundance Apogee", + Description = "Data set of stars color coded by metallicity." } } -assetHelper.registerSceneGraphNodesAndExport(asset, { gaia_abundance_apogee }) +asset.onInitialize(function() + openspace.addSceneGraphNode(gaia_abundance_apogee) +end) + +asset.onDeinitialize(function() + openspace.removeSceneGraphNode(gaia_abundance_apogee) +end) + +asset.export(gaia_abundance_apogee) + + + +asset.meta = { + Name = "Gaia Abundance Apogee", + Version = "1.0", + Description = [[This asset contains a RenderableStars dataset with metallicity data.]], + Author = "OpenSpace Team", + URL = "http://openspaceproject.com", + License = "MIT License" +} diff --git a/data/assets/scene/milkyway/gaia/gaia_dr2_download_stars.asset b/data/assets/scene/milkyway/gaia/gaia_dr2_download_stars.asset index 410a6b42b8..85f8ae35ee 100644 --- a/data/assets/scene/milkyway/gaia/gaia_dr2_download_stars.asset +++ b/data/assets/scene/milkyway/gaia/gaia_dr2_download_stars.asset @@ -7,7 +7,7 @@ local gaia618Destination = asset.syncedResource({ Identifier = "gaia_stars_618M_octree", Version = 1 }) -local gaia618DestinationExtracted = gaia618Destination + '/data'; +local gaia618DestinationExtracted = gaia618Destination + "data"; -- Download the full DR2 dataset with 24 values per star (preprocessed with theReadFitsTask (gaia_read.task) into 8 binary files). -- From these files new subsets can be created with the ConstructOctreeTask (gaia_octree.task). @@ -22,9 +22,20 @@ local gaiaFull = asset.syncedResource({ asset.onInitialize(function() if not openspace.directoryExists(gaia618DestinationExtracted) then openspace.printInfo("Extracted Gaia dataset") - openspace.unzipFile(gaia618Destination .. '/DR2_full_Octree[50kSPN,500dist]_50,50.zip', gaia618DestinationExtracted, true) + openspace.unzipFile(gaia618Destination .. "DR2_full_Octree[50kSPN,500dist]_50,50.zip", gaia618DestinationExtracted, true) end end) -asset.export('GaiaDR2_618M', gaia618DestinationExtracted) -asset.export('GaiaFullDataset', gaiaFull) +asset.export("GaiaDR2_618M", gaia618DestinationExtracted) +asset.export("GaiaFullDataset", gaiaFull) + + +asset.meta = { + Name = "GaiaDR2 Download Stars", + Version = "1.1", + Description = [[This asset contains code to sync gaia subsets from the OpenSpace + servers. Edit this file to choose which subsets to sync. WARNING can use 150GB], + Author = "ESA/Gaia/DPAC", + URL = "https://gea.esac.esa.int/archive/documentation/GDR2/index.html", + License = [[The Gaia data are open and free to use, provided credit is given to 'ESA/Gaia/DPAC'. In general, access to, and use of, ESA's Gaia Archive (hereafter called 'the website') constitutes acceptance of the following general terms and conditions. Neither ESA nor any other party involved in creating, producing, or delivering the website shall be liable for any direct, incidental, consequential, indirect, or punitive damages arising out of user access to, or use of, the website. The website does not guarantee the accuracy of information provided by external sources and accepts no responsibility or liability for any consequences arising from the use of such data.]] +} diff --git a/data/assets/scene/milkyway/gaia/gaiastars.asset b/data/assets/scene/milkyway/gaia/gaiastars.asset index 5eeeb15162..a3f761a349 100644 --- a/data/assets/scene/milkyway/gaia/gaiastars.asset +++ b/data/assets/scene/milkyway/gaia/gaiastars.asset @@ -1,8 +1,3 @@ -local assetHelper = asset.require("util/asset_helper") - -local colorLUT = asset.require('scene/digitaluniverse/stars_colormap').ColorMaps -local textures = asset.require('scene/digitaluniverse/stars_textures').textures - -- Download a preprocessed binary octree of Radial Velocity subset values per star (preprocessed into 8 binary files). local starsFolder = asset.syncedResource({ Name = "Gaia Stars RV", @@ -11,16 +6,30 @@ local starsFolder = asset.syncedResource({ Version = 1 }) +local colormaps = asset.syncedResource({ + Name = "Stars Color Table", + Type = "HttpSynchronization", + Identifier = "stars_colormap", + Version = 2 +}) + +local textures = asset.syncedResource({ + Name = "Stars Textures", + Type = "HttpSynchronization", + Identifier = "stars_textures", + Version = 1 +}) + local GaiaStars = { Identifier = "GaiaStars", Renderable = { Type = "RenderableGaiaStars", - File = starsFolder .. "/", + File = starsFolder, FileReaderOption = "StreamOctree", RenderOption = "Motion", ShaderOption = "Point_SSBO", - Texture = textures .. "/halo.png", - ColorMap = colorLUT .. "/colorbv.cmap", + Texture = textures .. "halo.png", + ColorMap = colormaps .. "colorbv.cmap", LuminosityMultiplier = 35, MagnitudeBoost = 25, CutOffThreshold = 38, @@ -32,18 +41,39 @@ local GaiaStars = { MaxCpuMemoryPercent = 0.4, FilterSize = 5, Sigma = 0.5, - AdditionalNodes = {3.0, 2.0}, - FilterPosX = {0.0, 0.0}, - FilterPosY = {0.0, 0.0}, - FilterPosZ = {0.0, 0.0}, - FilterGMag = {20.0, 20.0}, - FilterBpRp = {0.0, 0.0}, - FilterDist = {9.0, 9.0}, + AdditionalNodes = { 3.0, 2.0 }, + FilterPosX = { 0.0, 0.0 }, + FilterPosY = { 0.0, 0.0 }, + FilterPosZ = { 0.0, 0.0 }, + FilterGMag = { 20.0, 20.0 }, + FilterBpRp = { 0.0, 0.0 }, + FilterDist = { 9.0, 9.0 }, }, GUI = { Name = "Gaia Stars", - Path = "/Milky Way" + Path = "/Milky Way", + Description = "Radial Velocity subset of GaiaDR2." } } -assetHelper.registerSceneGraphNodesAndExport(asset, { GaiaStars }) +asset.onInitialize(function() + openspace.addSceneGraphNode(GaiaStars) +end) + +asset.onDeinitialize(function() + openspace.removeSceneGraphNode(GaiaStars) +end) + +asset.export(GaiaStars) + + + +asset.meta = { + Name = "Gaia Stars", + Version = "1.0", + Description = [[This asset contains a subset of GaiaDR2. This subset contains 7.5M stars which have + accurate values for a number of columns. ]], + Author = "ESA/Gaia/DPAC", + URL = "https://gea.esac.esa.int/archive/documentation/GDR2/index.html", + License = [[The Gaia data are open and free to use, provided credit is given to 'ESA/Gaia/DPAC'. In general, access to, and use of, ESA's Gaia Archive (hereafter called 'the website') constitutes acceptance of the following general terms and conditions. Neither ESA nor any other party involved in creating, producing, or delivering the website shall be liable for any direct, incidental, consequential, indirect, or punitive damages arising out of user access to, or use of, the website. The website does not guarantee the accuracy of information provided by external sources and accepts no responsibility or liability for any consequences arising from the use of such data.]] +} diff --git a/data/assets/scene/milkyway/gaia/galah.asset b/data/assets/scene/milkyway/gaia/galah.asset index f4c814c20a..69c7a162c9 100644 --- a/data/assets/scene/milkyway/gaia/galah.asset +++ b/data/assets/scene/milkyway/gaia/galah.asset @@ -1,8 +1,3 @@ -local assetHelper = asset.require('util/asset_helper') - -local colorLUT = asset.require('scene/digitaluniverse/stars_colormap').ColorMaps -local textures = asset.require('scene/digitaluniverse/stars_textures').textures - local speck = asset.syncedResource({ Name = "Galah Speck Files", Type = "HttpSynchronization", @@ -10,22 +5,35 @@ local speck = asset.syncedResource({ Version = 1 }) +local colormaps = asset.syncedResource({ + Name = "Stars Color Table", + Type = "HttpSynchronization", + Identifier = "stars_colormap", + Version = 2 +}) + +local textures = asset.syncedResource({ + Name = "Stars Textures", + Type = "HttpSynchronization", + Identifier = "stars_textures", + Version = 1 +}) local gaia_abundance_galah = { - Identifier = "Gaia Abundance Galah", + Identifier = "GaiaAbundanceGalah", Renderable = { Type = "RenderableStars", Enabled = false, - File = speck .. "/GaiaAbundGalah.speck", - Texture = textures .. "/halo.png", - -- ShapeTexture = textures .. "/disc.png", + File = speck .. "GaiaAbundGalah.speck", + Texture = textures .. "halo.png", + -- ShapeTexture = textures .. "disc.png", MagnitudeExponent = 6.2, SizeComposition = "Distance Modulus", RenderMethod = "Texture Based", ColorOption = "Other Data", OtherData = "FeH", - ColorMap = colorLUT .. "/colorbv.cmap", - OtherDataColorMap = colorLUT .. "/viridis.cmap", + ColorMap = colormaps .. "colorbv.cmap", + OtherDataColorMap = colormaps .. "viridis.cmap", StaticFilter = -9999, StaticFilterReplacement = 0.0, DataMapping = { @@ -40,8 +48,29 @@ local gaia_abundance_galah = { } }, GUI = { - Path = "/Milky Way/Gaia" + Path = "/Milky Way/Gaia", + Name = "Gaia Abundance Galah", + Description = "Data set of stars color coded by metallicity." } } -assetHelper.registerSceneGraphNodesAndExport(asset, { gaia_abundance_galah }) +asset.onInitialize(function() + openspace.addSceneGraphNode(gaia_abundance_galah) +end) + +asset.onDeinitialize(function() + openspace.removeSceneGraphNode(gaia_abundance_galah) +end) + +asset.export(gaia_abundance_galah) + + + +asset.meta = { + Name = "Gaia Abundance Galah", + Version = "1.0", + Description = [[This asset contains a RenderableStars dataset with metallicity data.]], + Author = "OpenSpace Team", + URL = "http://openspaceproject.com", + License = "MIT License" +} diff --git a/data/assets/scene/milkyway/milkyway/eso.asset b/data/assets/scene/milkyway/milkyway/eso.asset index 887c9a0023..08df1d3e9e 100644 --- a/data/assets/scene/milkyway/milkyway/eso.asset +++ b/data/assets/scene/milkyway/milkyway/eso.asset @@ -1,7 +1,3 @@ -local assetHelper = asset.require('util/asset_helper') - - - local textures = asset.syncedResource({ Name = "ESO Milky Way Textures", Type = "HttpSynchronization", @@ -14,7 +10,7 @@ local object = { Transform = { Rotation = { Type = "StaticRotation", - Rotation = {0, 0, 3.14159265359} + Rotation = { 0, 0, math.pi } } }, Renderable = { @@ -22,8 +18,8 @@ local object = { Size = 9.2E20, Segments = 40, Opacity = 0.4, - Texture = textures .. "/eso0932a_blend.png", - UseAdditiveBlending = true, + Texture = textures .. "eso0932a_blend.png", + RenderBinMode = "PreDeferredTransparent", Orientation = "Inside", MirrorTexture = true, FadeOutThreshold = 0.01, @@ -31,8 +27,30 @@ local object = { }, GUI = { Name = "Milky Way (ESO)", - Path = "/Milky Way/Milky Way" + Path = "/Milky Way/Milky Way", + Description = "Milky Way Galaxy image (alternate)" } } -assetHelper.registerSceneGraphNodesAndExport(asset, { object }) +asset.onInitialize(function() + openspace.addSceneGraphNode(object) +end) + +asset.onDeinitialize(function() + openspace.removeSceneGraphNode(object) +end) + +asset.export(object) + + + + +asset.meta = { + Name = "MilkyWay Galaxy (ESO)", + Version = "1.0", + Description = [[This asset contains an alternate to the Digital Universe image for the + Milky Way from ESO.]], + Author = "ESO/S. Brunier", + URL = "https://www.eso.org/public/usa/images/eso0932a/", + License = "Creative Commons Attribution 4.0 International License" +} diff --git a/data/assets/scene/milkyway/milkyway/volume.asset b/data/assets/scene/milkyway/milkyway/volume.asset index 0e54bd1535..f18095b080 100644 --- a/data/assets/scene/milkyway/milkyway/volume.asset +++ b/data/assets/scene/milkyway/milkyway/volume.asset @@ -1,8 +1,7 @@ --- asset.require('../examples/volume/generated/cartesian.asset') - -local assetHelper = asset.require("util/asset_helper") local transforms = asset.require("scene/solarsystem/sun/transforms") + + local data = asset.syncedResource({ Name = "Milkyway Volume Data", Type = "HttpSynchronization", @@ -29,38 +28,47 @@ local MilkyWayVolumeGalaxy = { StepSize = 0.01, AbsorptionMultiply = 200, EmissionMultiply = 250, - Rotation = { 3.1415926, 3.1248, 4.45741 }, + Rotation = { math.pi, 3.1248, 4.45741 }, Volume = { Type = "Volume", - Filename = openspace.absPath(data .. "/MilkyWayRGBAVolume1024x1024x128.raw"), + Filename = openspace.absPath(data .. "MilkyWayRGBAVolume1024x1024x128.raw"), Dimensions = { 1024, 1024, 128 }, Size = { 1.2E21, 1.2E21, 0.15E21 }, Downscale = 0.4, }, Points = { Type = "Points", - Filename = openspace.absPath(data .. "/MilkyWayPoints.off"), + Filename = openspace.absPath(data .. "MilkyWayPoints.off"), EnabledPointsRatio = 0.3, - Texture = openspace.absPath(data .. "/halo.png") + Texture = openspace.absPath(data .. "halo.png") } }, GUI = { Path = "/Milky Way", - Name = "Milky Way Volume" + Name = "Milky Way Volume", + Description = [[Volumetric rendering of Milky Way galaxy based on simulation from + NAOJ.]] } } -local objects = { MilkyWayVolumeGalaxy } -assetHelper.registerSceneGraphNodesAndExport(asset, objects) +asset.onInitialize(function() + openspace.addSceneGraphNode(MilkyWayVolumeGalaxy) +end) + +asset.onDeinitialize(function() + openspace.removeSceneGraphNode(MilkyWayVolumeGalaxy) +end) + +asset.export(MilkyWayVolumeGalaxy) + asset.meta = { Name = "Milky Way Volume", - Version = "1.0", - Description = [[Volumetric rendering of Milky Way galaxy based on simulation from + Version = "1.1", + Description = [[Volumetric rendering of Milky Way galaxy based on simulations from NAOJ.]], Author = "OpenSpace Team", URL = "http://openspaceproject.com", - License = "MIT License", - Identifiers = {"MilkyWayVolume"} + License = "MIT License" } diff --git a/data/assets/scene/milkyway/objects/orionnebula/cluster.asset b/data/assets/scene/milkyway/objects/orionnebula/cluster.asset index 0abd320818..283fe5b2fd 100644 --- a/data/assets/scene/milkyway/objects/orionnebula/cluster.asset +++ b/data/assets/scene/milkyway/objects/orionnebula/cluster.asset @@ -1,7 +1,7 @@ ---orionnebula/cluster.asset -local assetHelper = asset.require('util/asset_helper') local transforms = asset.require("./transforms") + + local sync = asset.syncedResource({ Name = "Orion Nebula Star Cluster", Type = "HttpSynchronization", @@ -14,9 +14,9 @@ local OrionClusterStars = { Parent = transforms.NebulaPosition.Identifier, Renderable = { Type = "RenderableStars", - File = sync .. "/oricluster.speck", - Texture = sync .. "/halo.png", - ColorMap = sync .. "/colorbv.cmap", + File = sync .. "oricluster.speck", + Texture = sync .. "halo.png", + ColorMap = sync .. "colorbv.cmap", MagnitudeExponent = 5.02, SizeComposition = "Distance Modulus", RenderMethod = "Texture Based", @@ -50,16 +50,24 @@ local OrionClusterStars = { } } -assetHelper.registerSceneGraphNodesAndExport(asset, { OrionClusterStars }) +asset.onInitialize(function() + openspace.addSceneGraphNode(OrionClusterStars) +end) + +asset.onDeinitialize(function() + openspace.removeSceneGraphNode(OrionClusterStars) +end) + +asset.export(OrionClusterStars) + asset.meta = { Name = "Orion Nebula Star Cluster", - Version = "1.0", + Version = "1.1", Description = [[ Digital Universe asset for the Orion star cluster. To be used in conjunction with nebula model. Use orionnebula.asset to include both.]], Author = "AMNH Digital Universe", URL = "https://www.amnh.org/research/hayden-planetarium/digital-universe", - License = "AMNH Digital Universe", - Identifiers = {"OrionClusterStars"} + License = "AMNH Digital Universe" } diff --git a/data/assets/scene/milkyway/objects/orionnebula/nebula.asset b/data/assets/scene/milkyway/objects/orionnebula/nebula.asset index cf02ee733e..2c6bf0c8cd 100644 --- a/data/assets/scene/milkyway/objects/orionnebula/nebula.asset +++ b/data/assets/scene/milkyway/objects/orionnebula/nebula.asset @@ -1,9 +1,19 @@ -local assetHelper = asset.require('util/asset_helper') -local sunTransforms = asset.require('scene/solarsystem/sun/transforms') -local transforms = asset.require('./transforms') +local sunTransforms = asset.require("scene/solarsystem/sun/transforms") +local transforms = asset.require("./transforms") -local center = sunTransforms.SolarSystemBarycenter.Identifier; -local LIGHTS = assetHelper.getDefaultLightSources(center); +local LIGHTS = { + { + Type = "SceneGraphLightSource", + Identifier = "Sun", + Node = sunTransforms.SolarSystemBarycenter.Identifier, + Intensity = 1.0 + }, + { + Identifier = "Camera", + Type = "CameraLightSource", + Intensity = 0.5 + } +} local sync = asset.syncedResource({ Name = "Orion Nebula Model", @@ -59,7 +69,7 @@ local OrionNebulaModel = { }, Renderable = { Type = "RenderableModel", - GeometryFile = sync .. "/orion_nebula.obj", + GeometryFile = sync .. "orion_nebula.obj", Opacity = 1.0, DisableFaceCulling = false, SpecularIntensity = 0.0, @@ -72,7 +82,6 @@ local OrionNebulaModel = { GUI = { Name = "Orion Nebula Model", Path = "/Milky Way/Orion", - Hidden = true, Description = "Orion Nebula 3D model. See Orion Nebula for description." } } @@ -88,7 +97,7 @@ local OrionNebulaShocksModel = { }, Renderable = { Type = "RenderableModel", - GeometryFile = sync .. "/orishocks.obj", + GeometryFile = sync .. "orishocks.obj", Opacity = 1.0, DisableFaceCulling = false, SpecularIntensity = 0.0, @@ -117,7 +126,7 @@ local OrionNebulaProplydsModel = { }, Renderable = { Type = "RenderableModel", - GeometryFile = sync .. "/proplyds.obj", + GeometryFile = sync .. "proplyds.obj", Opacity = 1.0, DisableFaceCulling = false, SpecularIntensity = 0.0, @@ -135,23 +144,34 @@ local OrionNebulaProplydsModel = { } } -assetHelper.registerSceneGraphNodesAndExport(asset, { - NebulaHolder, - OrionNebulaModel, - OrionNebulaShocksModel, - OrionNebulaProplydsModel -}) +asset.onInitialize(function() + openspace.addSceneGraphNode(NebulaHolder) + openspace.addSceneGraphNode(OrionNebulaModel) + openspace.addSceneGraphNode(OrionNebulaShocksModel) + openspace.addSceneGraphNode(OrionNebulaProplydsModel) +end) + +asset.onDeinitialize(function() + openspace.removeSceneGraphNode(OrionNebulaProplydsModel) + openspace.removeSceneGraphNode(OrionNebulaShocksModel) + openspace.removeSceneGraphNode(OrionNebulaModel) + openspace.removeSceneGraphNode(NebulaHolder) +end) + +asset.export(NebulaHolder) +asset.export(OrionNebulaModel) +asset.export(OrionNebulaShocksModel) +asset.export(OrionNebulaProplydsModel) + asset.meta = { Name = "Orion Nebula Model", - Version = "1.0", + Version = "1.1", Description = [[ Digital Universe asset for the Orion nebula 3D model. This asset contains seperate models for the nebula, proplyds and shocks. To be used in conjunction with orion star cluster. Use orionnebula.asset to include both.]], Author = "AMNH Digital Universe", URL = "https://www.amnh.org/research/hayden-planetarium/digital-universe", - License = "AMNH Digital Universe", - Identifiers = {"OrionNebulaHolder", "OrionNebulaModel", "OrionNebulaProplydsModel", - "OrionNebulaShocksModel"} + License = "AMNH Digital Universe" } diff --git a/data/assets/scene/milkyway/objects/orionnebula/orionnebula.asset b/data/assets/scene/milkyway/objects/orionnebula/orionnebula.asset index 34df0dacc9..e045e3efa3 100644 --- a/data/assets/scene/milkyway/objects/orionnebula/orionnebula.asset +++ b/data/assets/scene/milkyway/objects/orionnebula/orionnebula.asset @@ -1,2 +1,13 @@ -asset.require('./cluster') -asset.require('./nebula') +asset.require("./cluster") +asset.require("./nebula") + + +asset.meta = { + Name = "Orion Nebula", + Version = "1.0", + Description = [[This asset is a meta asset, containing all the assets for the Orion + Nebula from the AMNH Digital Universe. This includes a 3D model and a star cluster.]], + Author = "Brian Abbott (AMNH)", + URL = "https://www.amnh.org/research/hayden-planetarium/digital-universe", + License = "AMNH Digital Universe" +} diff --git a/data/assets/scene/milkyway/objects/orionnebula/transforms.asset b/data/assets/scene/milkyway/objects/orionnebula/transforms.asset index 82c06e7c32..e66deb40db 100644 --- a/data/assets/scene/milkyway/objects/orionnebula/transforms.asset +++ b/data/assets/scene/milkyway/objects/orionnebula/transforms.asset @@ -1,5 +1,4 @@ -local assetHelper = asset.require('util/asset_helper') -local sunTransforms = asset.require('scene/solarsystem/sun/transforms') +local sunTransforms = asset.require("scene/solarsystem/sun/transforms") local PARSEC_CONSTANT = 3.0856776E16; @@ -24,4 +23,24 @@ local NebulaPosition = { } } -assetHelper.registerSceneGraphNodesAndExport(asset, { NebulaPosition }) +asset.onInitialize(function() + openspace.addSceneGraphNode(NebulaPosition) +end) + +asset.onDeinitialize(function() + openspace.removeSceneGraphNode(NebulaPosition) +end) + +asset.export(NebulaPosition) + + + +asset.meta = { + Name = "Orion Nebula Transforms", + Version = "1.0", + Description = [[This asset contains the position of the Orion Nebula. Generally you + would not include this asset as other assets would include it.]], + Author = "Brian Abbott (AMNH)", + URL = "https://www.amnh.org/research/hayden-planetarium/digital-universe", + License = "AMNH Digital Universe" +} diff --git a/data/assets/scene/milkyway/stars/denver.asset b/data/assets/scene/milkyway/stars/denver.asset index 4dc1621909..68775657c9 100644 --- a/data/assets/scene/milkyway/stars/denver.asset +++ b/data/assets/scene/milkyway/stars/denver.asset @@ -1,7 +1,3 @@ -local assetHelper = asset.require('util/asset_helper') - - - local textures = asset.syncedResource({ Name = "Stars Textures", Type = "HttpSynchronization", @@ -27,9 +23,9 @@ local object = { Identifier = "Stars-Denver", Renderable = { Type = "RenderableStars", - File = speck .. "/denver_stars.speck", - Texture = textures .. "/halo.png", - ColorMap = colorLUT .. "/denver_colorbv.cmap", + File = speck .. "denver_stars.speck", + Texture = textures .. "halo.png", + ColorMap = colorLUT .. "denver_colorbv.cmap", MagnitudeExponent = 6.2, SizeComposition = "Distance Modulus", RenderMethod = "Texture Based", -- or PSF @@ -50,7 +46,16 @@ local object = { } } -assetHelper.registerSceneGraphNodesAndExport(asset, { object }) +asset.onInitialize(function() + openspace.addSceneGraphNode(object) +end) + +asset.onDeinitialize(function() + openspace.removeSceneGraphNode(object) +end) + +asset.export(object) + asset.meta = { diff --git a/data/assets/scene/solarsystem/dwarf_planets/pluto/charon/charon.asset b/data/assets/scene/solarsystem/dwarf_planets/pluto/charon/charon.asset index e2411ef264..3bf85ec695 100644 --- a/data/assets/scene/solarsystem/dwarf_planets/pluto/charon/charon.asset +++ b/data/assets/scene/solarsystem/dwarf_planets/pluto/charon/charon.asset @@ -1,11 +1,16 @@ -local assetHelper = asset.require('util/asset_helper') -local transforms = asset.require('./../transforms') +local transforms = asset.require("../transforms") asset.require("spice/base") -asset.require('../trail') -local labelsPath = asset.require('./../pluto_globelabels').LabelsPath +asset.require("../trail") +local labelsPath = asset.syncedResource({ + Name = "Pluto Labels", + Type = "HttpSynchronization", + Identifier = "pluto_labels", + Version = 1 +}) + local Charon = { Identifier = "Charon", Parent = transforms.PlutoBarycenter.Identifier, @@ -28,7 +33,7 @@ local Charon = { Layers = {}, Labels = { Enabled = false, - FileName = labelsPath .. "/charon.labels", + FileName = labelsPath .. "charon.labels", AlignmentOption = "Horizontally", -- or Circularly FontSize = 20.0, Size = 9.0, @@ -45,7 +50,16 @@ local Charon = { } } -assetHelper.registerSceneGraphNodesAndExport(asset, { Charon }) +asset.onInitialize(function() + openspace.addSceneGraphNode(Charon) +end) + +asset.onDeinitialize(function() + openspace.removeSceneGraphNode(Charon) +end) + +asset.export(Charon) + asset.meta = { diff --git a/data/assets/scene/solarsystem/dwarf_planets/pluto/charon/charon_trail.asset b/data/assets/scene/solarsystem/dwarf_planets/pluto/charon/charon_trail.asset index 1c2f6918b8..a968585271 100644 --- a/data/assets/scene/solarsystem/dwarf_planets/pluto/charon/charon_trail.asset +++ b/data/assets/scene/solarsystem/dwarf_planets/pluto/charon/charon_trail.asset @@ -1,5 +1,4 @@ -local assetHelper = asset.require('util/asset_helper') -local transforms = asset.require('../transforms') +local transforms = asset.require("../transforms") asset.require("spice/base") @@ -29,7 +28,16 @@ local CharonTrailBarycentric = { } } -assetHelper.registerSceneGraphNodesAndExport(asset, { CharonTrailBarycentric }) +asset.onInitialize(function() + openspace.addSceneGraphNode(CharonTrailBarycentric) +end) + +asset.onDeinitialize(function() + openspace.removeSceneGraphNode(CharonTrailBarycentric) +end) + +asset.export(CharonTrailBarycentric) + asset.meta = { diff --git a/data/assets/scene/solarsystem/dwarf_planets/pluto/charon/default_layers.asset b/data/assets/scene/solarsystem/dwarf_planets/pluto/charon/default_layers.asset index ed825589b3..4a914f423d 100644 --- a/data/assets/scene/solarsystem/dwarf_planets/pluto/charon/default_layers.asset +++ b/data/assets/scene/solarsystem/dwarf_planets/pluto/charon/default_layers.asset @@ -1,6 +1,4 @@ -local colorLayersPath = "./layers/colorlayers" - -local colorLayer = asset.require(colorLayersPath .. "/greyscale_usgs") +local colorLayer = asset.require("./layers/colorlayers/greyscale_usgs") -- Set enabled layers (temporary solution) -- @TODO: do this using a boolean that's passed to the 'asset.require' instead diff --git a/data/assets/scene/solarsystem/dwarf_planets/pluto/charon/layers/colorlayers/greyscale_usgs.asset b/data/assets/scene/solarsystem/dwarf_planets/pluto/charon/layers/colorlayers/greyscale_usgs.asset index 05aeb630a3..5215db8749 100644 --- a/data/assets/scene/solarsystem/dwarf_planets/pluto/charon/layers/colorlayers/greyscale_usgs.asset +++ b/data/assets/scene/solarsystem/dwarf_planets/pluto/charon/layers/colorlayers/greyscale_usgs.asset @@ -1,4 +1,4 @@ -local globeIdentifier = asset.require("./../../charon").Charon.Identifier +local globeIdentifier = asset.require("../../charon").Charon.Identifier local layer = { Identifier = "Greyscale_USGS", @@ -10,6 +10,10 @@ asset.onInitialize(function () openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer) end) +asset.onDeinitialize(function() + openspace.globebrowsing.deleteLayer(globeIdentifier, "ColorLayers", layer) +end) + asset.export("layer", layer) diff --git a/data/assets/scene/solarsystem/dwarf_planets/pluto/default_layers.asset b/data/assets/scene/solarsystem/dwarf_planets/pluto/default_layers.asset index 42c8f9f260..a32acd6d1b 100644 --- a/data/assets/scene/solarsystem/dwarf_planets/pluto/default_layers.asset +++ b/data/assets/scene/solarsystem/dwarf_planets/pluto/default_layers.asset @@ -1,6 +1,4 @@ -local colorLayersPath = "./layers/colorlayers" - -local colorLayer = asset.require(colorLayersPath .. "/greyscale_usgs") +local colorLayer = asset.require("./layers/colorlayers/greyscale_usgs") -- Set enabled layers (temporary solution) -- @TODO: do this using a boolean that's passed to the 'asset.require' instead diff --git a/data/assets/scene/solarsystem/dwarf_planets/pluto/kernels.asset b/data/assets/scene/solarsystem/dwarf_planets/pluto/kernels.asset index 09f2f6debb..69e1716b00 100644 --- a/data/assets/scene/solarsystem/dwarf_planets/pluto/kernels.asset +++ b/data/assets/scene/solarsystem/dwarf_planets/pluto/kernels.asset @@ -6,9 +6,9 @@ local Kernels = asset.syncedResource({ }) local PlutoKernels = { - Kernels .. "/NavPE_de433_od122.bsp", - Kernels .. "/NavSE_plu047_od122.bsp", - Kernels .. "/ssd_jpl_nasa_gov_plu043.bsp" + Kernels .. "NavPE_de433_od122.bsp", + Kernels .. "NavSE_plu047_od122.bsp", + Kernels .. "ssd_jpl_nasa_gov_plu043.bsp" } asset.export("PlutoKernels", PlutoKernels) diff --git a/data/assets/scene/solarsystem/dwarf_planets/pluto/layers/colorlayers/greyscale_usgs.asset b/data/assets/scene/solarsystem/dwarf_planets/pluto/layers/colorlayers/greyscale_usgs.asset index 0bf0135776..da5b929028 100644 --- a/data/assets/scene/solarsystem/dwarf_planets/pluto/layers/colorlayers/greyscale_usgs.asset +++ b/data/assets/scene/solarsystem/dwarf_planets/pluto/layers/colorlayers/greyscale_usgs.asset @@ -1,4 +1,4 @@ -local globeIdentifier = asset.require("./../../pluto").Pluto.Identifier +local globeIdentifier = asset.require("../../pluto").Pluto.Identifier local layer = { Identifier = "Greyscale_USGS", @@ -10,6 +10,10 @@ asset.onInitialize(function () openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer) end) +asset.onDeinitialize(function() + openspace.globebrowsing.deleteLayer(globeIdentifier, "ColorLayers", layer) +end) + asset.export("layer", layer) @@ -20,10 +24,10 @@ asset.meta = { nearly all of the highest-resolution images obtained by the Long-Range Reconnaissance Imager (LORRI) and the Multispectral Visible Imaging Camera (MVIC) on New Horizons.The mosaic is the most detailed and comprehensive global view yet - of Pluto’s surface using New Horizons data. It includes topography data of the - hemisphere visible to New Horizons during the spacecraft’s closest approach. The + of Pluto's surface using New Horizons data. It includes topography data of the + hemisphere visible to New Horizons during the spacecraft's closest approach. The topography is derived from digital stereo-image mapping tools that measure the - parallax – or the difference in the apparent relative positions – of features on + parallax - or the difference in the apparent relative positions - of features on the surface obtained at different viewing angles during the encounter. Scientists use these parallax displacements of high and low terrain to estimate landform heights.The mosaic is available in Equirectangular projection at an equatorial diff --git a/data/assets/scene/solarsystem/dwarf_planets/pluto/minor/hydra.asset b/data/assets/scene/solarsystem/dwarf_planets/pluto/minor/hydra.asset index a7f991c8cc..9198141277 100644 --- a/data/assets/scene/solarsystem/dwarf_planets/pluto/minor/hydra.asset +++ b/data/assets/scene/solarsystem/dwarf_planets/pluto/minor/hydra.asset @@ -1,6 +1,5 @@ -local assetHelper = asset.require('util/asset_helper') -local transforms = asset.require('../transforms') -local kernels = asset.require('../kernels').PlutoKernels +local transforms = asset.require("../transforms") +local kernels = asset.require("../kernels").PlutoKernels @@ -53,7 +52,19 @@ local HydraTrail = { } } -assetHelper.registerSceneGraphNodesAndExport(asset, { Hydra, HydraTrail }) +asset.onInitialize(function() + openspace.addSceneGraphNode(Hydra) + openspace.addSceneGraphNode(HydraTrail) +end) + +asset.onDeinitialize(function() + openspace.removeSceneGraphNode(HydraTrail) + openspace.removeSceneGraphNode(Hydra) +end) + +asset.export(Hydra) +asset.export(HydraTrail) + asset.meta = { diff --git a/data/assets/scene/solarsystem/dwarf_planets/pluto/minor/kerberos.asset b/data/assets/scene/solarsystem/dwarf_planets/pluto/minor/kerberos.asset index 2cf71c1de2..f683b9585a 100644 --- a/data/assets/scene/solarsystem/dwarf_planets/pluto/minor/kerberos.asset +++ b/data/assets/scene/solarsystem/dwarf_planets/pluto/minor/kerberos.asset @@ -1,6 +1,5 @@ -local assetHelper = asset.require('util/asset_helper') -local transforms = asset.require('../transforms') -local kernels = asset.require('../kernels').PlutoKernels +local transforms = asset.require("../transforms") +local kernels = asset.require("../kernels").PlutoKernels @@ -52,7 +51,19 @@ local KerberosTrail = { } } -assetHelper.registerSceneGraphNodesAndExport(asset, { Kerberos, KerberosTrail }) +asset.onInitialize(function() + openspace.addSceneGraphNode(Kerberos) + openspace.addSceneGraphNode(KerberosTrail) +end) + +asset.onDeinitialize(function() + openspace.removeSceneGraphNode(KerberosTrail) + openspace.removeSceneGraphNode(Kerberos) +end) + +asset.export(Kerberos) +asset.export(KerberosTrail) + asset.meta = { diff --git a/data/assets/scene/solarsystem/dwarf_planets/pluto/minor/nix.asset b/data/assets/scene/solarsystem/dwarf_planets/pluto/minor/nix.asset index 0c057482d2..6135bf34b7 100644 --- a/data/assets/scene/solarsystem/dwarf_planets/pluto/minor/nix.asset +++ b/data/assets/scene/solarsystem/dwarf_planets/pluto/minor/nix.asset @@ -1,6 +1,5 @@ -local assetHelper = asset.require('util/asset_helper') -local transforms = asset.require('../transforms') -local kernels = asset.require('../kernels').PlutoKernels +local transforms = asset.require("../transforms") +local kernels = asset.require("../kernels").PlutoKernels @@ -52,7 +51,19 @@ local NixTrail = { } } -assetHelper.registerSceneGraphNodesAndExport(asset, { Nix, NixTrail }) +asset.onInitialize(function() + openspace.addSceneGraphNode(Nix) + openspace.addSceneGraphNode(NixTrail) +end) + +asset.onDeinitialize(function() + openspace.removeSceneGraphNode(NixTrail) + openspace.removeSceneGraphNode(Nix) +end) + +asset.export(Nix) +asset.export(NixTrail) + asset.meta = { diff --git a/data/assets/scene/solarsystem/dwarf_planets/pluto/minor/styx.asset b/data/assets/scene/solarsystem/dwarf_planets/pluto/minor/styx.asset index ba9195d562..4e9963e062 100644 --- a/data/assets/scene/solarsystem/dwarf_planets/pluto/minor/styx.asset +++ b/data/assets/scene/solarsystem/dwarf_planets/pluto/minor/styx.asset @@ -1,6 +1,5 @@ -local assetHelper = asset.require('util/asset_helper') -local transforms = asset.require('../transforms') -local kernels = asset.require('../kernels').PlutoKernels +local transforms = asset.require("../transforms") +local kernels = asset.require("../kernels").PlutoKernels local Styx = { @@ -51,7 +50,19 @@ local StyxTrail = { } } -assetHelper.registerSceneGraphNodesAndExport(asset, { Styx, StyxTrail }) +asset.onInitialize(function() + openspace.addSceneGraphNode(Styx) + openspace.addSceneGraphNode(StyxTrail) +end) + +asset.onDeinitialize(function() + openspace.removeSceneGraphNode(StyxTrail) + openspace.removeSceneGraphNode(Styx) +end) + +asset.export(Styx) +asset.export(StyxTrail) + asset.meta = { diff --git a/data/assets/scene/solarsystem/dwarf_planets/pluto/pluto.asset b/data/assets/scene/solarsystem/dwarf_planets/pluto/pluto.asset index 947b762858..e99138aec2 100644 --- a/data/assets/scene/solarsystem/dwarf_planets/pluto/pluto.asset +++ b/data/assets/scene/solarsystem/dwarf_planets/pluto/pluto.asset @@ -1,10 +1,14 @@ -local assetHelper = asset.require('util/asset_helper') -local transforms = asset.require('./transforms') +local transforms = asset.require("./transforms") asset.require("spice/base") -asset.require('./trail') -local labelsPath = asset.require('./pluto_globelabels').LabelsPath +asset.require("./trail") +local labelsPath = asset.syncedResource({ + Name = "Pluto Labels", + Type = "HttpSynchronization", + Identifier = "pluto_labels", + Version = 1 +}) local Pluto = { Identifier = "Pluto", @@ -28,7 +32,7 @@ local Pluto = { Layers = {}, Labels = { Enabled = false, - FileName = labelsPath .. "/pluto.labels", + FileName = labelsPath .. "pluto.labels", AlignmentOption = "Horizontally", -- or Circularly FontSize = 20.0, Size = 8.5, @@ -61,11 +65,24 @@ local PlutoLabel = { Tag = { "solarsystem_labels" }, GUI = { Name = "Pluto Label", - Path = "/Solar System/Dwarf Planets/Pluto" + Path = "/Solar System/Dwarf Planets/Pluto", + Description = "Label for Pluto, visible at the solarsystem overview zoom level" } } -assetHelper.registerSceneGraphNodesAndExport(asset, { Pluto, PlutoLabel }) +asset.onInitialize(function() + openspace.addSceneGraphNode(Pluto) + openspace.addSceneGraphNode(PlutoLabel) +end) + +asset.onDeinitialize(function() + openspace.removeSceneGraphNode(PlutoLabel) + openspace.removeSceneGraphNode(Pluto) +end) + +asset.export(Pluto) +asset.export(PlutoLabel) + asset.meta = { diff --git a/data/assets/scene/solarsystem/dwarf_planets/pluto/pluto_globelabels.asset b/data/assets/scene/solarsystem/dwarf_planets/pluto/pluto_globelabels.asset deleted file mode 100644 index 4a045b3e9d..0000000000 --- a/data/assets/scene/solarsystem/dwarf_planets/pluto/pluto_globelabels.asset +++ /dev/null @@ -1,7 +0,0 @@ -local LabelsPath = asset.syncedResource({ - Name = "Pluto Labels", - Type = "HttpSynchronization", - Identifier = "pluto_labels", - Version = 1 -}) -asset.export("LabelsPath", LabelsPath) diff --git a/data/assets/scene/solarsystem/dwarf_planets/pluto/pluto_trail.asset b/data/assets/scene/solarsystem/dwarf_planets/pluto/pluto_trail.asset index 42e1e9dfd2..cb2d53bb7f 100644 --- a/data/assets/scene/solarsystem/dwarf_planets/pluto/pluto_trail.asset +++ b/data/assets/scene/solarsystem/dwarf_planets/pluto/pluto_trail.asset @@ -1,5 +1,4 @@ -local assetHelper = asset.require('util/asset_helper') -local transforms = asset.require('./transforms') +local transforms = asset.require("./transforms") asset.require("spice/base") @@ -25,7 +24,16 @@ local PlutoTrailBarycentric = { } } -assetHelper.registerSceneGraphNodesAndExport(asset, { PlutoTrailBarycentric }) +asset.onInitialize(function() + openspace.addSceneGraphNode(PlutoTrailBarycentric) +end) + +asset.onDeinitialize(function() + openspace.removeSceneGraphNode(PlutoTrailBarycentric) +end) + +asset.export(PlutoTrailBarycentric) + asset.meta = { @@ -35,6 +43,5 @@ asset.meta = { NASA Spice (see base spice asset)]], Author = "OpenSpace Team", URL = "http://openspaceproject.com", - License = "MIT license", - Identifiers = {"PlutoBarycentricTrail"} + License = "MIT license" } diff --git a/data/assets/scene/solarsystem/dwarf_planets/pluto/pluto_trail_kepler.asset b/data/assets/scene/solarsystem/dwarf_planets/pluto/pluto_trail_kepler.asset index 95cc754503..151b01b629 100644 --- a/data/assets/scene/solarsystem/dwarf_planets/pluto/pluto_trail_kepler.asset +++ b/data/assets/scene/solarsystem/dwarf_planets/pluto/pluto_trail_kepler.asset @@ -1,37 +1,48 @@ -local assetHelper = asset.require('util/asset_helper') -local transforms = asset.require('scene/solarsystem/sun/transforms') +local transforms = asset.require("scene/solarsystem/sun/transforms") asset.require("spice/base") -local kernels = asset.require('./kernels').PlutoKernels +local kernels = asset.require("./kernels").PlutoKernels local OneAU = 1.496e+8 + + local PlutoKeplerianTrail = { - Identifier = "PlutoKeplerianTrail", - Parent = transforms.SunECLIPJ2000.Identifier, - Renderable = { - Type = "RenderableTrailOrbit", - Translation = { - Type = "KeplerTranslation", - Eccentricity = 2.543033082909471E-01, - SemiMajorAxis = 3.974407237841206E+01 * OneAU, - Inclination = 1.736609481151430E+01, - AscendingNode = 1.102099981996057E+02, - ArgumentOfPeriapsis = 1.142248569189779E+02, - MeanAnomaly = 14.53, - Epoch = '2000 01 01 00:00', - Period = 7.82438e+9 - }, - Color = { 0.2, 0.8, 0.3 }, - Period = 90487.27692706819, - Resolution = 1000, - Enabled = false + Identifier = "PlutoKeplerianTrail", + Parent = transforms.SunECLIPJ2000.Identifier, + Renderable = { + Type = "RenderableTrailOrbit", + Translation = { + Type = "KeplerTranslation", + Eccentricity = 2.543033082909471E-01, + SemiMajorAxis = 3.974407237841206E+01 * OneAU, + Inclination = 1.736609481151430E+01, + AscendingNode = 1.102099981996057E+02, + ArgumentOfPeriapsis = 1.142248569189779E+02, + MeanAnomaly = 14.53, + Epoch = "2000 01 01 00:00", + Period = 7.82438e+9 }, - Tag = { "planetTrail_dwarf" }, - GUI = { - Name = "Pluto Keplerian Trail", - Path = "/Solar System/Dwarf Planets/Pluto", - Description = "Keplerian trail of Pluto. Contains full orbit." - } + Color = { 0.2, 0.8, 0.3 }, + Period = 90487.27692706819, + Resolution = 1000, + Enabled = false + }, + Tag = { "planetTrail_dwarf" }, + GUI = { + Name = "Pluto Keplerian Trail", + Path = "/Solar System/Dwarf Planets/Pluto", + Description = "Keplerian trail of Pluto. Contains full orbit." + } } -assetHelper.registerSceneGraphNodesAndExport(asset, { PlutoKeplerianTrail }) + +asset.onInitialize(function() + openspace.addSceneGraphNode(PlutoKeplerianTrail) +end) + +asset.onDeinitialize(function() + openspace.removeSceneGraphNode(PlutoKeplerianTrail) +end) + +asset.export(PlutoKeplerianTrail) + asset.meta = { @@ -41,8 +52,7 @@ asset.meta = { JPL Horizons.]], Author = "OpenSpace Team", URL = "https://ssd.jpl.nasa.gov/sbdb.cgi?sstr=pluto", - License = "JPL/NASA", - Identifiers = {"PlutoKeplerianTrail"} + License = "JPL/NASA" } diff --git a/data/assets/scene/solarsystem/dwarf_planets/pluto/system.asset b/data/assets/scene/solarsystem/dwarf_planets/pluto/system.asset index 0df3c771b8..3a34b5a336 100644 --- a/data/assets/scene/solarsystem/dwarf_planets/pluto/system.asset +++ b/data/assets/scene/solarsystem/dwarf_planets/pluto/system.asset @@ -1,13 +1,13 @@ -asset.require('./trail') -asset.require('./pluto') -asset.require('./pluto_trail') -asset.require('./pluto_trail_kepler') -asset.require('./charon/charon') -asset.require('./charon/charon_trail') -asset.require('./minor/hydra') -asset.require('./minor/kerberos') -asset.require('./minor/nix') -asset.require('./minor/styx') +asset.require("./trail") +asset.require("./pluto") +asset.require("./pluto_trail") +asset.require("./pluto_trail_kepler") +asset.require("./charon/charon") +asset.require("./charon/charon_trail") +asset.require("./minor/hydra") +asset.require("./minor/kerberos") +asset.require("./minor/nix") +asset.require("./minor/styx") asset.meta = { diff --git a/data/assets/scene/solarsystem/dwarf_planets/pluto/trail.asset b/data/assets/scene/solarsystem/dwarf_planets/pluto/trail.asset index 129aeea4ea..cf52ef3310 100644 --- a/data/assets/scene/solarsystem/dwarf_planets/pluto/trail.asset +++ b/data/assets/scene/solarsystem/dwarf_planets/pluto/trail.asset @@ -1,7 +1,6 @@ -local assetHelper = asset.require('util/asset_helper') -local transforms = asset.require('scene/solarsystem/sun/transforms') +local transforms = asset.require("scene/solarsystem/sun/transforms") asset.require("spice/base") -local kernels = asset.require('./kernels').PlutoKernels +local kernels = asset.require("./kernels").PlutoKernels @@ -29,7 +28,16 @@ local PlutoBarycenterTrail = { } } -assetHelper.registerSceneGraphNodesAndExport(asset, { PlutoBarycenterTrail }) +asset.onInitialize(function() + openspace.addSceneGraphNode(PlutoBarycenterTrail) +end) + +asset.onDeinitialize(function() + openspace.removeSceneGraphNode(PlutoBarycenterTrail) +end) + +asset.export(PlutoBarycenterTrail) + asset.meta = { diff --git a/data/assets/scene/solarsystem/dwarf_planets/pluto/transforms.asset b/data/assets/scene/solarsystem/dwarf_planets/pluto/transforms.asset index 475a73286b..2fb6e88c21 100644 --- a/data/assets/scene/solarsystem/dwarf_planets/pluto/transforms.asset +++ b/data/assets/scene/solarsystem/dwarf_planets/pluto/transforms.asset @@ -1,6 +1,5 @@ -local assetHelper = asset.require('util/asset_helper') -local transforms = asset.require('scene/solarsystem/sun/transforms') -local kernels = asset.require('./kernels').PlutoKernels +local transforms = asset.require("scene/solarsystem/sun/transforms") +local kernels = asset.require("./kernels").PlutoKernels asset.require("spice/base") @@ -22,7 +21,16 @@ local PlutoBarycenter = { } } -assetHelper.registerSceneGraphNodesAndExport(asset, { PlutoBarycenter }) +asset.onInitialize(function() + openspace.addSceneGraphNode(PlutoBarycenter) +end) + +asset.onDeinitialize(function() + openspace.removeSceneGraphNode(PlutoBarycenter) +end) + +asset.export(PlutoBarycenter) + asset.meta = { diff --git a/data/assets/scene/solarsystem/heliosphere/bastille_day/carringtonToHEEQRotation.asset b/data/assets/scene/solarsystem/heliosphere/bastille_day/carringtonToHEEQRotation.asset index 3335e1a3bf..9fcb6c35c5 100644 --- a/data/assets/scene/solarsystem/heliosphere/bastille_day/carringtonToHEEQRotation.asset +++ b/data/assets/scene/solarsystem/heliosphere/bastille_day/carringtonToHEEQRotation.asset @@ -14,3 +14,13 @@ local CarringtonLongitudeToHEEQ180Rotation = { } asset.export("CarringtonLongitudeToHEEQ180Rotation", CarringtonLongitudeToHEEQ180Rotation) + + +asset.meta = { + Name = "Carrington Longitude To HEEQ180 Rotation", + Version = "1.0", + Description = [[ Contains a rotation for HEEQ180 to be used by another file]], + Author = "OpenSpace Team", + URL = "http://openspaceproject.com", + License = "MIT license" +} diff --git a/data/assets/scene/solarsystem/heliosphere/bastille_day/density_volume.asset b/data/assets/scene/solarsystem/heliosphere/bastille_day/density_volume.asset index b622245855..872be14c05 100644 --- a/data/assets/scene/solarsystem/heliosphere/bastille_day/density_volume.asset +++ b/data/assets/scene/solarsystem/heliosphere/bastille_day/density_volume.asset @@ -1,6 +1,5 @@ -local assetHelper = asset.require("util/asset_helper") -local propertyHelper = asset.require('util/property_helper') -local sunTransforms = asset.require('scene/solarsystem/sun/transforms') +local propertyHelper = asset.require("util/property_helper") +local sunTransforms = asset.require("scene/solarsystem/sun/transforms") local densityDirectory = asset.syncedResource({ Name = "Bastille Day MAS Density", @@ -56,11 +55,16 @@ local toggle_volume = { asset.onInitialize(function () openspace.action.registerAction(toggle_volume) + openspace.addSceneGraphNode(densityVolume) end) + asset.onDeinitialize(function () - openspace.action.removeAction(toggle_volume.Identifier) + openspace.removeSceneGraphNode(densityVolume) + openspace.action.removeAction(toggle_volume) end) -assetHelper.registerSceneGraphNodesAndExport(asset, { densityVolume }) + +asset.export(densityVolume) + asset.meta = { Name = "Predictive Science Inc. Volume Rendering Bastille Day", @@ -68,6 +72,5 @@ asset.meta = { Description = [[Volumetric rendering for the bastille day CME event]], Author = "CCMC, OpenSpace team", URL = "https://dx.doi.org/10.3847/1538-4357/aab36d", - License = "CC-BY", - Identifier = {"MAS-MHD-Density-bastille-day-2000"} + License = "CC-BY" } diff --git a/data/assets/scene/solarsystem/heliosphere/bastille_day/fieldlines.asset b/data/assets/scene/solarsystem/heliosphere/bastille_day/fieldlines.asset index 8672ddd590..5d0fefa82b 100644 --- a/data/assets/scene/solarsystem/heliosphere/bastille_day/fieldlines.asset +++ b/data/assets/scene/solarsystem/heliosphere/bastille_day/fieldlines.asset @@ -1,7 +1,6 @@ -local assetHelper = asset.require('util/asset_helper') -local heliosphereTransforms = asset.require('scene/solarsystem/sun/transforms_heliosphere') -local propertyHelper = asset.require('util/property_helper') -local rot = asset.require('./carringtonToHEEQRotation.asset') +local heliosphereTransforms = asset.require("scene/solarsystem/sun/transforms_heliosphere") +local propertyHelper = asset.require("util/property_helper") +local rot = asset.require("./carringtonToHEEQRotation.asset") local fieldlinesDirectory = asset.syncedResource({ Name = "Bastille Day MAS Fieldlines", @@ -59,11 +58,16 @@ local toggle_fieldlines = { asset.onInitialize(function () openspace.action.registerAction(toggle_fieldlines) + openspace.addSceneGraphNode(fieldlines) end) + asset.onDeinitialize(function () - openspace.action.removeAction(toggle_fieldlines.Identifier) + openspace.removeSceneGraphNode(fieldlines) + openspace.action.removeAction(toggle_fieldlines) end) -assetHelper.registerSceneGraphNodesAndExport(asset, { fieldlines }) + +asset.export(fieldlines) + asset.meta = { Name = "Predictive Science Inc. Fieldlines Bastille Day", @@ -71,6 +75,5 @@ asset.meta = { Description = [[Magnetic fieldlines for the bastille day CME event]], Author = "CCMC, Jonathan Grangien, Matthias Berg", URL = "https://dx.doi.org/10.3847/1538-4357/aab36d", - License = "CC-BY", - Identifier = {"MAS-MHD-Fieldlines-bastille-day-2000"} + License = "CC-BY" } diff --git a/data/assets/scene/solarsystem/heliosphere/bastille_day/fluxnodes.asset b/data/assets/scene/solarsystem/heliosphere/bastille_day/fluxnodes.asset index 2a8efbb70c..7285f5f46d 100644 --- a/data/assets/scene/solarsystem/heliosphere/bastille_day/fluxnodes.asset +++ b/data/assets/scene/solarsystem/heliosphere/bastille_day/fluxnodes.asset @@ -1,7 +1,6 @@ -local assetHelper = asset.require('util/asset_helper') -local heliosphereTransforms = asset.require('scene/solarsystem/sun/transforms_heliosphere') -local propertyHelper = asset.require('util/property_helper') -local rot = asset.require('./carringtonToHEEQRotation.asset') +local heliosphereTransforms = asset.require("scene/solarsystem/sun/transforms_heliosphere") +local propertyHelper = asset.require("util/property_helper") +local rot = asset.require("./carringtonToHEEQRotation.asset") local fluxNodesBinaries = asset.syncedResource({ Name = "Bastille day Flux nodes binaries", @@ -41,11 +40,16 @@ local toggle_fluxnodes = { asset.onInitialize(function () openspace.action.registerAction(toggle_fluxnodes) + openspace.addSceneGraphNode(fluxNodes) end) + asset.onDeinitialize(function () - openspace.action.removeAction(toggle_fluxnodes.Identifier) + openspace.removeSceneGraphNode(fluxNodes) + openspace.action.removeAction(toggle_fluxnodes) end) -assetHelper.registerSceneGraphNodesAndExport(asset, { fluxNodes }) + +asset.export(fluxNodes) + asset.meta = { Name = "Predictive Science Inc. Flux nodes Bastille Day", @@ -53,6 +57,5 @@ asset.meta = { Description = [[Flux nodes for the bastille day CME event]], Author = "CCMC, Christian Adamsson, Emilie Ho", URL = "https://dx.doi.org/10.3847/1538-4357/aab36d", - License = "CC-BY", - Identifier = {"MAS-MHD-FluxNodes-bastille-day-2000"} + License = "CC-BY" } diff --git a/data/assets/scene/solarsystem/heliosphere/bastille_day/fluxnodescutplane.asset b/data/assets/scene/solarsystem/heliosphere/bastille_day/fluxnodescutplane.asset index 52ec32efe8..82b43eb7d9 100644 --- a/data/assets/scene/solarsystem/heliosphere/bastille_day/fluxnodescutplane.asset +++ b/data/assets/scene/solarsystem/heliosphere/bastille_day/fluxnodescutplane.asset @@ -1,9 +1,8 @@ -local assetHelper = asset.require("util/asset_helper") local propertyHelper = asset.require("util/property_helper") -local transforms = asset.require('scene/solarsystem/sun/transforms_heliosphere') -local rot = asset.require('./carringtonToHEEQRotation.asset') +local transforms = asset.require("scene/solarsystem/sun/transforms_heliosphere") +local rot = asset.require("./carringtonToHEEQRotation.asset") -local TexturesPathEquitorial = asset.syncedResource({ +local TexturesPathEquatorial = asset.syncedResource({ Type = "HttpSynchronization", Name = "cutplanes_textures", Identifier = "cutplanes_textures", @@ -27,7 +26,7 @@ local EquatorialCutplane = { Type = "RenderablePlaneTimeVaryingImage", Size = 1.57E11, Enabled = true, - SourceFolder = TexturesPathEquitorial, + SourceFolder = TexturesPathEquatorial, BlendMode = "Normal", MirrorBackside = false, Opacity = 0.7 @@ -84,12 +83,20 @@ local toggle_meridial = { asset.onInitialize(function () openspace.action.registerAction(toggle_equatorial) openspace.action.registerAction(toggle_meridial) + openspace.addSceneGraphNode(EquatorialCutplane) + openspace.addSceneGraphNode(MeridialCutplane) end) + asset.onDeinitialize(function () - openspace.action.removeAction(toggle_equatorial.Identifier) - openspace.action.removeAction(toggle_meridial.Identifier) + openspace.removeSceneGraphNode(MeridialCutplane) + openspace.removeSceneGraphNode(EquatorialCutplane) + openspace.action.removeAction(toggle_equatorial) + openspace.action.removeAction(toggle_meridial) end) -assetHelper.registerSceneGraphNodesAndExport(asset, { EquatorialCutplane, MeridialCutplane}) + +asset.export(EquatorialCutplane) +asset.export(MeridialCutplane) + asset.meta = { Name = "Predictive Science Inc. Cutplanes Bastille Days", @@ -97,6 +104,5 @@ asset.meta = { Description = [[Cutplanes for the bastille day CME event]], Author = "CCMC, Christian Adamsson, Emilie Ho", URL = "https://dx.doi.org/10.3847/1538-4357/aab36d", - License = "CC-BY", - Identifier = {"MeridialCutplane-bastille-day-2000", "EquatorialCutplane-bastille-day-2000"} + License = "CC-BY" } diff --git a/data/assets/scene/solarsystem/heliosphere/bastille_day/fluxnodeslegend.asset b/data/assets/scene/solarsystem/heliosphere/bastille_day/fluxnodeslegend.asset index 7f574ab978..753ac1bebb 100644 --- a/data/assets/scene/solarsystem/heliosphere/bastille_day/fluxnodeslegend.asset +++ b/data/assets/scene/solarsystem/heliosphere/bastille_day/fluxnodeslegend.asset @@ -1,5 +1,4 @@ asset.require("spice/base") -local assetHelper = asset.require("util/asset_helper") local TexturesPath = asset.syncedResource({ Type = "HttpSynchronization", @@ -11,7 +10,7 @@ local TexturesPath = asset.syncedResource({ local legend = { Identifier = "LegendFluxNodes-bastille-day-2000", Type = "ScreenSpaceImageLocal", - TexturePath = TexturesPath .. "/CMR_transparent_white_text.png", + TexturePath = TexturesPath .. "CMR_transparent_white_text.png", Scale = 0.15, CartesianPosition = { 0.677970, 0.0, -1.049180 } } @@ -19,9 +18,11 @@ local legend = { local show_legend = { Identifier = "fluxnodelegend.show_legend", Name = "Show the legend image", - Command = "openspace.setPropertyValueSingle('ScreenSpace.LegendFluxNodes-bastille-day-2000.Opacity', 0.0);" .. - "openspace.setPropertyValueSingle('ScreenSpace.LegendFluxNodes-bastille-day-2000.Enabled', true);" .. - "openspace.setPropertyValueSingle('ScreenSpace.LegendFluxNodes-bastille-day-2000.Opacity', 1.0, 4);", + Command = [[ + openspace.setPropertyValueSingle("ScreenSpace.LegendFluxNodes-bastille-day-2000.Opacity", 0.0); + openspace.setPropertyValueSingle("ScreenSpace.LegendFluxNodes-bastille-day-2000.Enabled", true); + openspace.setPropertyValueSingle("ScreenSpace.LegendFluxNodes-bastille-day-2000.Opacity", 1.0, 4); + ]], Documentation = "Show the legend image", GuiPath = "/Bastille-Day 2000", IsLocal = false @@ -29,7 +30,7 @@ local show_legend = { local hide_legend = { Identifier = "fluxnodelegend.hide_legend", Name = "Hides the legend image", - Command = "openspace.setPropertyValueSingle('ScreenSpace.LegendFluxNodes-bastille-day-2000.Opacity', 0.0, 2);", + Command = [[openspace.setPropertyValueSingle("ScreenSpace.LegendFluxNodes-bastille-day-2000.Opacity", 0.0, 2)]], Documentation = "Hides the legend image", GuiPath = "/Bastille-Day 2000", IsLocal = false @@ -38,15 +39,15 @@ local hide_legend = { asset.onInitialize(function() openspace.addScreenSpaceRenderable(legend) -- These numbers are there to put the legend on the side of the screen. - openspace.setPropertyValueSingle('ScreenSpace.LegendFluxNodes-bastille-day-2000.Rotation', { 0.0, 0.0, 0.56652 }); + openspace.setPropertyValueSingle("ScreenSpace.LegendFluxNodes-bastille-day-2000.Rotation", { 0.0, 0.0, 0.56652 }); openspace.action.registerAction(show_legend) openspace.action.registerAction(hide_legend) end) asset.onDeinitialize(function () - openspace.removeScreenSpaceRenderable(legend.Identifier) - openspace.action.removeAction(show_legend.Identifier) - openspace.action.removeAction(hide_legend.Identifier) + openspace.removeScreenSpaceRenderable(legend) + openspace.action.removeAction(show_legend) + openspace.action.removeAction(hide_legend) end) asset.meta = { @@ -55,6 +56,5 @@ asset.meta = { Description = [[Screen space renderable image legend of flux nodes for the bastille day CME event]], Author = "Christian Adamsson, Emilie Ho", URL = "https://dx.doi.org/10.3847/1538-4357/aab36d", - License = "MIT", - Identifier = {"LegendFluxNodes-bastille-day-2000"} + License = "MIT" } diff --git a/data/assets/scene/solarsystem/heliosphere/bastille_day/lightindicator.asset b/data/assets/scene/solarsystem/heliosphere/bastille_day/lightindicator.asset index 533cb79ba7..b2dc819872 100644 --- a/data/assets/scene/solarsystem/heliosphere/bastille_day/lightindicator.asset +++ b/data/assets/scene/solarsystem/heliosphere/bastille_day/lightindicator.asset @@ -1,6 +1,5 @@ -local assetHelper = asset.require('util/asset_helper') -local sunTransforms = asset.require('scene/solarsystem/sun/transforms') -local earthTransforms = asset.require('scene/solarsystem/planets/earth/transforms') +local sunTransforms = asset.require("scene/solarsystem/sun/transforms") +local earthTransforms = asset.require("scene/solarsystem/planets/earth/transforms") local travelSpeedIndicator = { Identifier = "TravelSpeedIndicator-2000", @@ -27,7 +26,16 @@ local travelSpeedIndicator = { } } -assetHelper.registerSceneGraphNodesAndExport(asset, { travelSpeedIndicator }) +asset.onInitialize(function() + openspace.addSceneGraphNode(travelSpeedIndicator) +end) + +asset.onDeinitialize(function() + openspace.removeSceneGraphNode(travelSpeedIndicator) +end) + +asset.export(travelSpeedIndicator) + asset.meta = { Name = "Light travel from sun to earth", @@ -35,6 +43,5 @@ asset.meta = { Description = [[Speed of light indicator from sun to earth]], Author = "CCMC, Christian Adamsson, Emilie Ho", URL = "", - License = "MIT", - Identifier = {"TravelSpeedIndicator-2000"} + License = "MIT" } diff --git a/data/assets/scene/solarsystem/heliosphere/bastille_day/magnetogram.asset b/data/assets/scene/solarsystem/heliosphere/bastille_day/magnetogram.asset index 8d83f6729d..3a1624a691 100644 --- a/data/assets/scene/solarsystem/heliosphere/bastille_day/magnetogram.asset +++ b/data/assets/scene/solarsystem/heliosphere/bastille_day/magnetogram.asset @@ -17,6 +17,5 @@ asset.meta = { Description = [[Magnetograms of the sun as texture color layers]], Author = "Jonathan Grangien, Matthias Berg", URL = "https://dx.doi.org/10.3847/1538-4357/aab36d", - License = "CC-BY", - Identifier = {"Sun"} + License = "CC-BY" } diff --git a/data/assets/scene/solarsystem/heliosphere/bastille_day/magnetogram_textures.asset b/data/assets/scene/solarsystem/heliosphere/bastille_day/magnetogram_textures.asset index 4b91b6f5f4..57af19002f 100644 --- a/data/assets/scene/solarsystem/heliosphere/bastille_day/magnetogram_textures.asset +++ b/data/assets/scene/solarsystem/heliosphere/bastille_day/magnetogram_textures.asset @@ -1,15 +1,14 @@ -local assetHelper = asset.require('util/asset_helper') -local sun = asset.require('scene/solarsystem/sun/sun') +local sun = asset.require("scene/solarsystem/sun/sun") -- synced directories -local magnetogramDirectory = asset.require('./magnetogram').TexturesPath; +local magnetogramDirectory = asset.require("./magnetogram").TexturesPath; local magnetograms; local switch_color_layer = { Identifier = "magnetogram_texture.switch_color_layer", Name = "Next sun texture", Command = [[ - local textureList = openspace.globebrowsing.getLayers('Sun', 'ColorLayers'); + local textureList = openspace.globebrowsing.getLayers("Sun", "ColorLayers"); if (magnetogramsTextureIndex == -1) then magnetogramsTextureIndex = 2; end; @@ -35,8 +34,8 @@ asset.onInitialize(function () rawset(_G, "magnetogramsTextureIndex", -1) for i, imagename in ipairs(magnetograms) do openspace.globebrowsing.addLayer( - 'Sun', - 'ColorLayers', + "Sun", + "ColorLayers", { Identifier = "magnetogram-" .. i, Name = imagename, --"Magnetogram-" .. i, @@ -52,9 +51,19 @@ end) asset.onDeinitialize(function () for i, imagename in ipairs(magnetograms) do - openspace.globebrowsing.deleteLayer( - 'Sun', 'ColorLayers', 'magnetogram-' .. i - ) + openspace.globebrowsing.deleteLayer("Sun", "ColorLayers", "magnetogram-" .. i) end - openspace.action.removeAction(switch_color_layer.Identifier) + openspace.action.removeAction(switch_color_layer) end) + + +asset.meta = { + Name = "Bastille Day magnetogram textures", + Version = "1.0", + Description = [[ This asset adds multiple magnetogram textures to the Sun. In addition + it provides an action to cycle through the textures. See magnetogram.asset for details + of the textures.]], + Author = "OpenSpace Team", + URL = "http://openspaceproject.com", + License = "MIT license" +} diff --git a/data/assets/scene/solarsystem/interstellar/c-2019_q4_borisov.asset b/data/assets/scene/solarsystem/interstellar/c-2019_q4_borisov.asset index 0413de7199..d91107b531 100644 --- a/data/assets/scene/solarsystem/interstellar/c-2019_q4_borisov.asset +++ b/data/assets/scene/solarsystem/interstellar/c-2019_q4_borisov.asset @@ -1,5 +1,4 @@ -local assetHelper = asset.require('util/asset_helper') -local sunTransforms = asset.require('scene/solarsystem/sun/transforms') +local sunTransforms = asset.require("scene/solarsystem/sun/transforms") local trajectory = asset.syncedResource({ Name = "C-2019 Q4 Borisov Trajectory", @@ -15,7 +14,7 @@ local C2019Q4BorisovTrail = { Type = "RenderableTrailTrajectory", Translation = { Type = "HorizonsTranslation", - HorizonsTextFile = trajectory .. "/horizons_c2019q4borisov.dat" + HorizonsTextFile = trajectory .. "horizons_c2019q4borisov.dat" }, Color = { 0.9, 0.9, 0.0 }, StartTime = "2015 JAN 01 00:00:00", @@ -24,7 +23,9 @@ local C2019Q4BorisovTrail = { }, GUI = { Name = "C/2019 Q4 Borisov Trail", - Path = "/Solar System/Interstellar" + Path = "/Solar System/Interstellar", + Description = [[Trail of C-2019 Q4 Borisov from 2015 JAN 01 00:00:00 + to 2024 JAN 01 00:00:00. Data from JPL Horizons]] } } @@ -34,21 +35,35 @@ local C2019Q4BorisovPosition = { Transform = { Translation = { Type = "HorizonsTranslation", - HorizonsTextFile = trajectory .. "/horizons_c2019q4borisov.dat" + HorizonsTextFile = trajectory .. "horizons_c2019q4borisov.dat" } }, GUI = { Name = "C/2019 Q4 Borisov", - Path = "/Solar System/Interstellar" + Path = "/Solar System/Interstellar", + Description = [[Position of C-2019 Q4 Borisov from 2015 JAN 01 00:00:00 + to 2024 JAN 01 00:00:00. Data from JPL Horizons]] } } -assetHelper.registerSceneGraphNodesAndExport(asset, { C2019Q4BorisovPosition, C2019Q4BorisovTrail }) +asset.onInitialize(function() + openspace.addSceneGraphNode(C2019Q4BorisovPosition) + openspace.addSceneGraphNode(C2019Q4BorisovTrail) +end) + +asset.onDeinitialize(function() + openspace.removeSceneGraphNode(C2019Q4BorisovTrail) + openspace.removeSceneGraphNode(C2019Q4BorisovPosition) +end) + +asset.export(C2019Q4BorisovPosition) +asset.export(C2019Q4BorisovTrail) + asset.meta = { Name = "C/2019 Q4 Borisov", - Version = "1.0", + Version = "1.1", Description = [[ This asset contains the trail and position of C-2019 Q4 Borisov from 2015 JAN 01 00:00:00 to 2024 JAN 01 00:00:00. Data from JPL Horizons']], diff --git a/data/assets/scene/solarsystem/interstellar/oumuamua.asset b/data/assets/scene/solarsystem/interstellar/oumuamua.asset index 972d7cd3da..f27050c12f 100644 --- a/data/assets/scene/solarsystem/interstellar/oumuamua.asset +++ b/data/assets/scene/solarsystem/interstellar/oumuamua.asset @@ -1,5 +1,4 @@ -local assetHelper = asset.require('util/asset_helper') -local sunTransforms = asset.require('scene/solarsystem/sun/transforms') +local sunTransforms = asset.require("scene/solarsystem/sun/transforms") local trajectory = asset.syncedResource({ Name = "'Oumuamua Trajectory", @@ -15,7 +14,7 @@ local OumuamuaTrail = { Type = "RenderableTrailTrajectory", Translation = { Type = "HorizonsTranslation", - HorizonsTextFile = trajectory .. "/horizons_oumuamua.dat" + HorizonsTextFile = trajectory .. "horizons_oumuamua.dat" }, Color = { 0.9, 0.9, 0.0 }, StartTime = "2014 JAN 01 00:00:00", @@ -25,7 +24,9 @@ local OumuamuaTrail = { }, GUI = { Name = "'Oumuamua Trail", - Path = "/Solar System/Interstellar" + Path = "/Solar System/Interstellar", + Description = [[Trail of 'Oumuamua from 2014 JAN 01 00:00:00 to 2023 JAN 01 00:00:00. + Data from JPL Horizons']], } } @@ -35,21 +36,35 @@ local OumuamuaPosition = { Transform = { Translation = { Type = "HorizonsTranslation", - HorizonsTextFile = trajectory .. "/horizons_oumuamua.dat" + HorizonsTextFile = trajectory .. "horizons_oumuamua.dat" }, }, GUI = { Name = "'Oumuamua", - Path = "/Solar System/Interstellar" + Path = "/Solar System/Interstellar", + Description = [[ Position of 'Oumuamua from 2014 JAN 01 00:00:00 to 2023 JAN 01 + 00:00:00. Data from JPL Horizons']], } } -assetHelper.registerSceneGraphNodesAndExport(asset, { OumuamuaPosition, OumuamuaTrail }) +asset.onInitialize(function() + openspace.addSceneGraphNode(OumuamuaPosition) + openspace.addSceneGraphNode(OumuamuaTrail) +end) + +asset.onDeinitialize(function() + openspace.removeSceneGraphNode(OumuamuaTrail) + openspace.removeSceneGraphNode(OumuamuaPosition) +end) + +asset.export(OumuamuaPosition) +asset.export(OumuamuaTrail) + asset.meta = { Name = "'Oumuamua", - Version = "1.0", + Version = "1.1", Description = [[ This asset contains the trail and position of 'Oumuamua from 2014 JAN 01 00:00:00 to 2023 JAN 01 00:00:00. Data from JPL Horizons']], Author = "OpenSpace Team", diff --git a/data/assets/scene/solarsystem/missions/apollo/11/apollo11.asset b/data/assets/scene/solarsystem/missions/apollo/11/apollo11.asset index 92b5cb3525..dae3c4e762 100644 --- a/data/assets/scene/solarsystem/missions/apollo/11/apollo11.asset +++ b/data/assets/scene/solarsystem/missions/apollo/11/apollo11.asset @@ -1,16 +1,26 @@ -local asset_helper = asset.require('util/asset_helper') -local sun_transforms = asset.require('scene/solarsystem/sun/transforms') -local moon_transforms = asset.require('scene/solarsystem/planets/earth/moon/moon') +local sun_transforms = asset.require("scene/solarsystem/sun/transforms") +local moon_transforms = asset.require("scene/solarsystem/planets/earth/moon/moon") -local descentKeyframes = asset.require('./lem_descent.asset') -local descentRotationKeyframes = asset.require('./lem_descent_rotation.asset') +local descentKeyframes = asset.require("./lem_descent.asset") +local descentRotationKeyframes = asset.require("./lem_descent_rotation.asset") -local lem_model = asset.require('scene/solarsystem/missions/apollo/lem_model') -local kernels = asset.require('./kernels').kernels +local kernels = asset.require("./kernels").kernels +asset.require("spice/base") -local models = asset.require('./models').models +local models = asset.syncedResource({ + Name = "Apollo Models", + Type = "HttpSynchronization", + Identifier = "apollo_11_models", + Version = 1 +}) + +local lem_model = asset.syncedResource({ + Name = "Apollo Lem Models", + Type = "HttpSynchronization", + Identifier = "apollo_lem_model", + Version = 4 +}) -asset.require('spice/base') --landing - 1969-07-20T20:17:40 local apolloSpiceId = "-911" @@ -56,8 +66,20 @@ local Apollo11Model = { }, Renderable = { Type = "RenderableModel", - GeometryFile = models .. "/Apollo_CSM_shrunk_rotated_xy_double_size.obj", - LightSources = asset_helper.getDefaultLightSources(sun_transforms.SolarSystemBarycenter.Identifier) + GeometryFile = models .. "Apollo_CSM_shrunk_rotated_xy_double_size.obj", + LightSources = { + { + Type = "SceneGraphLightSource", + Identifier = "Sun", + Node = sun_transforms.SolarSystemBarycenter.Identifier, + Intensity = 1.0 + }, + { + Identifier = "Camera", + Type = "CameraLightSource", + Intensity = 0.5 + } + } }, GUI = { Name = "Apollo 11 CSM", @@ -97,14 +119,14 @@ local lemTranslation = { -- 20:14:30 is an arbitrary cutoff, but last 4 minutes data in descentKeyframes -- begins at 20.14.40. Due to linear interpolation, we will get -- a 10s linear transition to the location where the descentKeyframes start. - ['1969 JUL 20 20:14:30'] = { + ["1969 JUL 20 20:14:30"] = { Type = "SpiceTranslation", Target = apolloLemSpiceId, Observer = "MOON", Frame = "IAU_MOON", Kernels = kernels }, - ['1969 JUL 20 20:14:40'] = { + ["1969 JUL 20 20:14:40"] = { Type = "TimelineTranslation", Keyframes = descentKeyframes.keyframes } @@ -171,10 +193,22 @@ local Apollo11LemDescentModel = { }, Renderable = { Type = "RenderableModel", - GeometryFile = lem_model.modelFolder .. "/lmremoved.obj", + GeometryFile = lem_model .. "lmremoved.obj", SpecularIntensity = 0.0, RotationVector = { 273.750,28.0,309.85 }, - LightSources = asset_helper.getDefaultLightSources(sun_transforms.SolarSystemBarycenter.Identifier) + LightSources = { + { + Type = "SceneGraphLightSource", + Identifier = "Sun", + Node = sun_transforms.SolarSystemBarycenter.Identifier, + Intensity = 1.0 + }, + { + Identifier = "Camera", + Type = "CameraLightSource", + Intensity = 0.5 + } + } }, GUI = { Name = "Apollo 11 Descent Lem", @@ -197,10 +231,22 @@ local Apollo11LemLandedModel = { }, Renderable = { Type = "RenderableModel", - GeometryFile = lem_model.modelFolder .. "/LM-2_ver2clean.obj", + GeometryFile = lem_model .. "LM-2_ver2clean.obj", SpecularIntensity = 0.0, RotationVector = { 273.750,28.0,309.85 }, - LightSources = asset_helper.getDefaultLightSources(sun_transforms.SolarSystemBarycenter.Identifier) + LightSources = { + { + Type = "SceneGraphLightSource", + Identifier = "Sun", + Node = sun_transforms.SolarSystemBarycenter.Identifier, + Intensity = 1.0 + }, + { + Identifier = "Camera", + Type = "CameraLightSource", + Intensity = 0.5 + } + } }, GUI = { Name = "Apollo 11 Landed Lem", @@ -208,7 +254,7 @@ local Apollo11LemLandedModel = { } } -local exportList = { +local nodes = { Apollo11Position, Apollo11LemPosition, Apollo11Model, @@ -218,4 +264,19 @@ local exportList = { Apollo11LemTrail, } -asset_helper.registerSceneGraphNodesAndExport(asset, exportList) +asset.onInitialize(function() + for i, node in ipairs(nodes) do + openspace.addSceneGraphNode(node) + end +end) + +asset.onDeinitialize(function() + for i = #nodes, 1, -1 do + local node = nodes[i] + openspace.removeSceneGraphNode(node) + end +end) + +for i, node in ipairs(nodes) do + asset.export(node) +end diff --git a/data/assets/scene/solarsystem/missions/apollo/11/kernels.asset b/data/assets/scene/solarsystem/missions/apollo/11/kernels.asset index d6fdbf3dbd..e4aee05f27 100644 --- a/data/assets/scene/solarsystem/missions/apollo/11/kernels.asset +++ b/data/assets/scene/solarsystem/missions/apollo/11/kernels.asset @@ -6,11 +6,11 @@ local kernelsFolder = asset.syncedResource({ }) local kernels = { - kernelsFolder .. "/moon_080317.tf", - kernelsFolder .. "/apollo_naif_ids.tf", - kernelsFolder .. "/moon_pa_de421_1900-2050.bpc", - kernelsFolder .. '/apollo11_orbits_full9km.bsp', - kernelsFolder .. '/apollo11_orbits_lm9km.bsp', + kernelsFolder .. "moon_080317.tf", + kernelsFolder .. "apollo_naif_ids.tf", + kernelsFolder .. "moon_pa_de421_1900-2050.bpc", + kernelsFolder .. "apollo11_orbits_full9km.bsp", + kernelsFolder .. "apollo11_orbits_lm9km.bsp" } -asset.export('kernels', kernels) +asset.export("kernels", kernels) diff --git a/data/assets/scene/solarsystem/missions/apollo/11/lem.asset b/data/assets/scene/solarsystem/missions/apollo/11/lem.asset index bb5a78ec79..c49cc38245 100644 --- a/data/assets/scene/solarsystem/missions/apollo/11/lem.asset +++ b/data/assets/scene/solarsystem/missions/apollo/11/lem.asset @@ -1,10 +1,14 @@ -- a11_lem.asset -local asset_helper = asset.require('util/asset_helper') -local sun_transforms = asset.require('scene/solarsystem/sun/transforms') -local moon_asset = asset.require('scene/solarsystem/planets/earth/moon/moon') +local sun_transforms = asset.require("scene/solarsystem/sun/transforms") +local moon_asset = asset.require("scene/solarsystem/planets/earth/moon/moon") -local lem_model = asset.require('scene/solarsystem/missions/apollo/lem_model') +local lem_model = asset.syncedResource({ + Name = "Apollo Lem Models", + Type = "HttpSynchronization", + Identifier = "apollo_lem_model", + Version = 4 +}) local Apollo11Lem = { Identifier = "Apollo11Lem", @@ -36,9 +40,21 @@ local Apollo11LemModel = { }, Renderable = { Type = "RenderableModel", - GeometryFile = lem_model.modelFolder .. "/LM-2_ver2clean.obj", - RotationVector = { 91.044090,171.229706,111.666664 }, - LightSources = asset_helper.getDefaultLightSources(sun_transforms.SolarSystemBarycenter.Identifier) + GeometryFile = lem_model .. "LM-2_ver2clean.obj", + RotationVector = { 91.044090, 171.229706, 111.666664 }, + LightSources = { + { + Type = "SceneGraphLightSource", + Identifier = "Sun", + Node = sun_transforms.SolarSystemBarycenter.Identifier, + Intensity = 1.0 + }, + { + Identifier = "Camera", + Type = "CameraLightSource", + Intensity = 0.5 + } + } }, GUI = { Name = "Apollo 11 Lem", @@ -46,4 +62,15 @@ local Apollo11LemModel = { } } -asset_helper.registerSceneGraphNodesAndExport(asset, { Apollo11Lem, Apollo11LemModel }) +asset.onInitialize(function() + openspace.addSceneGraphNode(Apollo11Lem) + openspace.addSceneGraphNode(Apollo11LemModel) +end) + +asset.onDeinitialize(function() + openspace.removeSceneGraphNode(Apollo11LemModel) + openspace.removeSceneGraphNode(Apollo11Lem) +end) + +asset.export(Apollo11Lem) +asset.export(Apollo11LemModel) diff --git a/data/assets/scene/solarsystem/missions/apollo/11/lem_descent.asset b/data/assets/scene/solarsystem/missions/apollo/11/lem_descent.asset index 36189888fb..eb7f6a2533 100644 --- a/data/assets/scene/solarsystem/missions/apollo/11/lem_descent.asset +++ b/data/assets/scene/solarsystem/missions/apollo/11/lem_descent.asset @@ -13,7 +13,7 @@ In the conversion, some assumptions and simplifications were made: ]]-- local keyframes = { - ['1969-07-20T20:13:40'] = { + ["1969-07-20T20:13:40"] = { Type = "GlobeTranslation", Globe = "Moon", Longitude = 23.64480784327766, @@ -21,7 +21,7 @@ local keyframes = { Altitude = -1546.3568594681615, UseHeightmap = false }, - ['1969-07-20T20:13:41'] = { + ["1969-07-20T20:13:41"] = { Type = "GlobeTranslation", Globe = "Moon", Longitude = 23.64371058653857, @@ -29,7 +29,7 @@ local keyframes = { Altitude = -1565.4215164947534, UseHeightmap = false }, - ['1969-07-20T20:13:42'] = { + ["1969-07-20T20:13:42"] = { Type = "GlobeTranslation", Globe = "Moon", Longitude = 23.64182673932963, @@ -37,7 +37,7 @@ local keyframes = { Altitude = -1565.4215164947534, UseHeightmap = false }, - ['1969-07-20T20:13:43'] = { + ["1969-07-20T20:13:43"] = { Type = "GlobeTranslation", Globe = "Moon", Longitude = 23.64054706630478, @@ -45,7 +45,7 @@ local keyframes = { Altitude = -1579.0391286566048, UseHeightmap = false }, - ['1969-07-20T20:13:44'] = { + ["1969-07-20T20:13:44"] = { Type = "GlobeTranslation", Globe = "Moon", Longitude = 23.63636509003987, @@ -53,7 +53,7 @@ local keyframes = { Altitude = -1579.0391286566048, UseHeightmap = false }, - ['1969-07-20T20:13:45'] = { + ["1969-07-20T20:13:45"] = { Type = "GlobeTranslation", Globe = "Moon", Longitude = 23.63333610553231, @@ -61,7 +61,7 @@ local keyframes = { Altitude = -1584.4861735213453, UseHeightmap = false }, - ['1969-07-20T20:13:46'] = { + ["1969-07-20T20:13:46"] = { Type = "GlobeTranslation", Globe = "Moon", Longitude = 23.630258198415152, @@ -69,7 +69,7 @@ local keyframes = { Altitude = -1587.2096959537155, UseHeightmap = false }, - ['1969-07-20T20:13:47'] = { + ["1969-07-20T20:13:47"] = { Type = "GlobeTranslation", Globe = "Moon", Longitude = 23.62944534804935, @@ -77,7 +77,7 @@ local keyframes = { Altitude = -1592.656740818456, UseHeightmap = false }, - ['1969-07-20T20:13:48'] = { + ["1969-07-20T20:13:48"] = { Type = "GlobeTranslation", Globe = "Moon", Longitude = 23.62679291745059, @@ -85,7 +85,7 @@ local keyframes = { Altitude = -1604.9125917641222, UseHeightmap = false }, - ['1969-07-20T20:13:49'] = { + ["1969-07-20T20:13:49"] = { Type = "GlobeTranslation", Globe = "Moon", Longitude = 23.624085315638872, @@ -93,7 +93,7 @@ local keyframes = { Altitude = -1619.8919651421588, UseHeightmap = false }, - ['1969-07-20T20:13:50'] = { + ["1969-07-20T20:13:50"] = { Type = "GlobeTranslation", Globe = "Moon", Longitude = 23.62142772795633, @@ -101,7 +101,7 @@ local keyframes = { Altitude = -1630.7860548716399, UseHeightmap = false }, - ['1969-07-20T20:13:51'] = { + ["1969-07-20T20:13:51"] = { Type = "GlobeTranslation", Globe = "Moon", Longitude = 23.617193313827283, @@ -109,7 +109,7 @@ local keyframes = { Altitude = -1630.7860548716399, UseHeightmap = false }, - ['1969-07-20T20:13:52'] = { + ["1969-07-20T20:13:52"] = { Type = "GlobeTranslation", Globe = "Moon", Longitude = 23.61543137875974, @@ -117,7 +117,7 @@ local keyframes = { Altitude = -1629.4242936554547, UseHeightmap = false }, - ['1969-07-20T20:13:53'] = { + ["1969-07-20T20:13:53"] = { Type = "GlobeTranslation", Globe = "Moon", Longitude = 23.61158202958536, @@ -125,7 +125,7 @@ local keyframes = { Altitude = -1633.5095773040102, UseHeightmap = false }, - ['1969-07-20T20:13:54'] = { + ["1969-07-20T20:13:54"] = { Type = "GlobeTranslation", Globe = "Moon", Longitude = 23.60991413189263, @@ -133,7 +133,7 @@ local keyframes = { Altitude = -1643.041905817306, UseHeightmap = false }, - ['1969-07-20T20:13:55'] = { + ["1969-07-20T20:13:55"] = { Type = "GlobeTranslation", Globe = "Moon", Longitude = 23.607915527643012, @@ -141,7 +141,7 @@ local keyframes = { Altitude = -1662.106562843898, UseHeightmap = false }, - ['1969-07-20T20:13:56'] = { + ["1969-07-20T20:13:56"] = { Type = "GlobeTranslation", Globe = "Moon", Longitude = 23.605996916437142, @@ -149,7 +149,7 @@ local keyframes = { Altitude = -1663.4683240600832, UseHeightmap = false }, - ['1969-07-20T20:13:57'] = { + ["1969-07-20T20:13:57"] = { Type = "GlobeTranslation", Globe = "Moon", Longitude = 23.6027345854584, @@ -157,7 +157,7 @@ local keyframes = { Altitude = -1671.09418687072, UseHeightmap = false }, - ['1969-07-20T20:13:58'] = { + ["1969-07-20T20:13:58"] = { Type = "GlobeTranslation", Globe = "Moon", Longitude = 23.60047452065999, @@ -165,7 +165,7 @@ local keyframes = { Altitude = -1671.638891357194, UseHeightmap = false }, - ['1969-07-20T20:13:59'] = { + ["1969-07-20T20:13:59"] = { Type = "GlobeTranslation", Globe = "Moon", Longitude = 23.598006245556462, @@ -173,7 +173,7 @@ local keyframes = { Altitude = -1670.277130141009, UseHeightmap = false }, - ['1969-07-20T20:14:00'] = { + ["1969-07-20T20:14:00"] = { Type = "GlobeTranslation", Globe = "Moon", Longitude = 23.594980604909782, @@ -181,7 +181,7 @@ local keyframes = { Altitude = -1683.8947423028603, UseHeightmap = false }, - ['1969-07-20T20:14:01'] = { + ["1969-07-20T20:14:01"] = { Type = "GlobeTranslation", Globe = "Moon", Longitude = 23.595085912567033, @@ -189,7 +189,7 @@ local keyframes = { Altitude = -1698.874115680897, UseHeightmap = false }, - ['1969-07-20T20:14:02'] = { + ["1969-07-20T20:14:02"] = { Type = "GlobeTranslation", Globe = "Moon", Longitude = 23.5930664955042, @@ -197,7 +197,7 @@ local keyframes = { Altitude = -1701.597638113267, UseHeightmap = false }, - ['1969-07-20T20:14:03'] = { + ["1969-07-20T20:14:03"] = { Type = "GlobeTranslation", Globe = "Moon", Longitude = 23.591385100243283, @@ -205,7 +205,7 @@ local keyframes = { Altitude = -1709.768205410378, UseHeightmap = false }, - ['1969-07-20T20:14:04'] = { + ["1969-07-20T20:14:04"] = { Type = "GlobeTranslation", Globe = "Moon", Longitude = 23.58888799865371, @@ -213,7 +213,7 @@ local keyframes = { Altitude = -1717.9387727074889, UseHeightmap = false }, - ['1969-07-20T20:14:05'] = { + ["1969-07-20T20:14:05"] = { Type = "GlobeTranslation", Globe = "Moon", Longitude = 23.58707895840121, @@ -221,7 +221,7 @@ local keyframes = { Altitude = -1720.662295139859, UseHeightmap = false }, - ['1969-07-20T20:14:06'] = { + ["1969-07-20T20:14:06"] = { Type = "GlobeTranslation", Globe = "Moon", Longitude = 23.585134523523262, @@ -229,7 +229,7 @@ local keyframes = { Altitude = -1726.1093400045995, UseHeightmap = false }, - ['1969-07-20T20:14:07'] = { + ["1969-07-20T20:14:07"] = { Type = "GlobeTranslation", Globe = "Moon", Longitude = 23.58309233633901, @@ -237,7 +237,7 @@ local keyframes = { Altitude = -1730.194623653155, UseHeightmap = false }, - ['1969-07-20T20:14:08'] = { + ["1969-07-20T20:14:08"] = { Type = "GlobeTranslation", Globe = "Moon", Longitude = 23.581800658763132, @@ -245,7 +245,7 @@ local keyframes = { Altitude = -1737.0034297340808, UseHeightmap = false }, - ['1969-07-20T20:14:09'] = { + ["1969-07-20T20:14:09"] = { Type = "GlobeTranslation", Globe = "Moon", Longitude = 23.580055660445762, @@ -253,7 +253,7 @@ local keyframes = { Altitude = -1741.0887133826361, UseHeightmap = false }, - ['1969-07-20T20:14:10'] = { + ["1969-07-20T20:14:10"] = { Type = "GlobeTranslation", Globe = "Moon", Longitude = 23.57863282556605, @@ -261,7 +261,7 @@ local keyframes = { Altitude = -1749.259280679747, UseHeightmap = false }, - ['1969-07-20T20:14:11'] = { + ["1969-07-20T20:14:11"] = { Type = "GlobeTranslation", Globe = "Moon", Longitude = 23.57640031861404, @@ -269,7 +269,7 @@ local keyframes = { Altitude = -1751.9828031121174, UseHeightmap = false }, - ['1969-07-20T20:14:12'] = { + ["1969-07-20T20:14:12"] = { Type = "GlobeTranslation", Globe = "Moon", Longitude = 23.57398679174075, @@ -277,7 +277,7 @@ local keyframes = { Altitude = -1750.6210418959322, UseHeightmap = false }, - ['1969-07-20T20:14:13'] = { + ["1969-07-20T20:14:13"] = { Type = "GlobeTranslation", Globe = "Moon", Longitude = 23.57156483164977, @@ -285,7 +285,7 @@ local keyframes = { Altitude = -1758.7916091930429, UseHeightmap = false }, - ['1969-07-20T20:14:14'] = { + ["1969-07-20T20:14:14"] = { Type = "GlobeTranslation", Globe = "Moon", Longitude = 23.568805614344672, @@ -293,7 +293,7 @@ local keyframes = { Altitude = -1764.2386540577836, UseHeightmap = false }, - ['1969-07-20T20:14:15'] = { + ["1969-07-20T20:14:15"] = { Type = "GlobeTranslation", Globe = "Moon", Longitude = 23.56712274763365, @@ -301,7 +301,7 @@ local keyframes = { Altitude = -1764.2386540577836, UseHeightmap = false }, - ['1969-07-20T20:14:16'] = { + ["1969-07-20T20:14:16"] = { Type = "GlobeTranslation", Globe = "Moon", Longitude = 23.56530723506546, @@ -309,7 +309,7 @@ local keyframes = { Altitude = -1772.4092213548943, UseHeightmap = false }, - ['1969-07-20T20:14:17'] = { + ["1969-07-20T20:14:17"] = { Type = "GlobeTranslation", Globe = "Moon", Longitude = 23.56412162578659, @@ -317,7 +317,7 @@ local keyframes = { Altitude = -1773.7709825710795, UseHeightmap = false }, - ['1969-07-20T20:14:18'] = { + ["1969-07-20T20:14:18"] = { Type = "GlobeTranslation", Globe = "Moon", Longitude = 23.56276962682385, @@ -325,7 +325,7 @@ local keyframes = { Altitude = -1779.2180274358202, UseHeightmap = false }, - ['1969-07-20T20:14:19'] = { + ["1969-07-20T20:14:19"] = { Type = "GlobeTranslation", Globe = "Moon", Longitude = 23.560994966586822, @@ -333,7 +333,7 @@ local keyframes = { Altitude = -1781.9415498681901, UseHeightmap = false }, - ['1969-07-20T20:14:20'] = { + ["1969-07-20T20:14:20"] = { Type = "GlobeTranslation", Globe = "Moon", Longitude = 23.55943927760013, @@ -341,7 +341,7 @@ local keyframes = { Altitude = -1788.7503559491158, UseHeightmap = false }, - ['1969-07-20T20:14:21'] = { + ["1969-07-20T20:14:21"] = { Type = "GlobeTranslation", Globe = "Moon", Longitude = 23.55808185917876, @@ -349,7 +349,7 @@ local keyframes = { Altitude = -1788.205651462642, UseHeightmap = false }, - ['1969-07-20T20:14:22'] = { + ["1969-07-20T20:14:22"] = { Type = "GlobeTranslation", Globe = "Moon", Longitude = 23.556393791415733, @@ -357,7 +357,7 @@ local keyframes = { Altitude = -1791.4738783814862, UseHeightmap = false }, - ['1969-07-20T20:14:23'] = { + ["1969-07-20T20:14:23"] = { Type = "GlobeTranslation", Globe = "Moon", Longitude = 23.55496480157647, @@ -365,7 +365,7 @@ local keyframes = { Altitude = -1792.8356395976714, UseHeightmap = false }, - ['1969-07-20T20:14:24'] = { + ["1969-07-20T20:14:24"] = { Type = "GlobeTranslation", Globe = "Moon", Longitude = 23.55306742293409, @@ -373,7 +373,7 @@ local keyframes = { Altitude = -1795.5591620300418, UseHeightmap = false }, - ['1969-07-20T20:14:25'] = { + ["1969-07-20T20:14:25"] = { Type = "GlobeTranslation", Globe = "Moon", Longitude = 23.55137129589691, @@ -381,7 +381,7 @@ local keyframes = { Altitude = -1802.3679681109675, UseHeightmap = false }, - ['1969-07-20T20:14:26'] = { + ["1969-07-20T20:14:26"] = { Type = "GlobeTranslation", Globe = "Moon", Longitude = 23.54977453252549, @@ -389,7 +389,7 @@ local keyframes = { Altitude = -1805.0914905433376, UseHeightmap = false }, - ['1969-07-20T20:14:27'] = { + ["1969-07-20T20:14:27"] = { Type = "GlobeTranslation", Globe = "Moon", Longitude = 23.548083879890072, @@ -397,7 +397,7 @@ local keyframes = { Altitude = -1807.8150129757078, UseHeightmap = false }, - ['1969-07-20T20:14:28'] = { + ["1969-07-20T20:14:28"] = { Type = "GlobeTranslation", Globe = "Moon", Longitude = 23.546540200146502, @@ -405,7 +405,7 @@ local keyframes = { Altitude = -1810.5385354080781, UseHeightmap = false }, - ['1969-07-20T20:14:29'] = { + ["1969-07-20T20:14:29"] = { Type = "GlobeTranslation", Globe = "Moon", Longitude = 23.54516644867878, @@ -413,7 +413,7 @@ local keyframes = { Altitude = -1815.9855802728187, UseHeightmap = false }, - ['1969-07-20T20:14:30'] = { + ["1969-07-20T20:14:30"] = { Type = "GlobeTranslation", Globe = "Moon", Longitude = 23.54408346592703, @@ -421,7 +421,7 @@ local keyframes = { Altitude = -1817.3473414890038, UseHeightmap = false }, - ['1969-07-20T20:14:31'] = { + ["1969-07-20T20:14:31"] = { Type = "GlobeTranslation", Globe = "Moon", Longitude = 23.54339758182375, @@ -429,7 +429,7 @@ local keyframes = { Altitude = -1818.709102705189, UseHeightmap = false }, - ['1969-07-20T20:14:32'] = { + ["1969-07-20T20:14:32"] = { Type = "GlobeTranslation", Globe = "Moon", Longitude = 23.54194570925206, @@ -437,7 +437,7 @@ local keyframes = { Altitude = -1821.4326251375592, UseHeightmap = false }, - ['1969-07-20T20:14:33'] = { + ["1969-07-20T20:14:33"] = { Type = "GlobeTranslation", Globe = "Moon", Longitude = 23.54085221251783, @@ -445,7 +445,7 @@ local keyframes = { Altitude = -1824.9732042996407, UseHeightmap = false }, - ['1969-07-20T20:14:34'] = { + ["1969-07-20T20:14:34"] = { Type = "GlobeTranslation", Globe = "Moon", Longitude = 23.53954140597472, @@ -453,7 +453,7 @@ local keyframes = { Altitude = -1827.696726732011, UseHeightmap = false }, - ['1969-07-20T20:14:35'] = { + ["1969-07-20T20:14:35"] = { Type = "GlobeTranslation", Globe = "Moon", Longitude = 23.537934104316932, @@ -461,7 +461,7 @@ local keyframes = { Altitude = -1831.7820103805664, UseHeightmap = false }, - ['1969-07-20T20:14:36'] = { + ["1969-07-20T20:14:36"] = { Type = "GlobeTranslation", Globe = "Moon", Longitude = 23.53689199133522, @@ -469,7 +469,7 @@ local keyframes = { Altitude = -1833.6884760832256, UseHeightmap = false }, - ['1969-07-20T20:14:37'] = { + ["1969-07-20T20:14:37"] = { Type = "GlobeTranslation", Globe = "Moon", Longitude = 23.53536814560564, @@ -477,7 +477,7 @@ local keyframes = { Altitude = -1836.9567030020698, UseHeightmap = false }, - ['1969-07-20T20:14:38'] = { + ["1969-07-20T20:14:38"] = { Type = "GlobeTranslation", Globe = "Moon", Longitude = 23.53395331216349, @@ -485,7 +485,7 @@ local keyframes = { Altitude = -1839.4078731912032, UseHeightmap = false }, - ['1969-07-20T20:14:39'] = { + ["1969-07-20T20:14:39"] = { Type = "GlobeTranslation", Globe = "Moon", Longitude = 23.53275788877434, @@ -493,7 +493,7 @@ local keyframes = { Altitude = -1840.497282164151, UseHeightmap = false }, - ['1969-07-20T20:14:40'] = { + ["1969-07-20T20:14:40"] = { Type = "GlobeTranslation", Globe = "Moon", Longitude = 23.531279977460432, @@ -501,7 +501,7 @@ local keyframes = { Altitude = -1844.5825658127067, UseHeightmap = false }, - ['1969-07-20T20:14:41'] = { + ["1969-07-20T20:14:41"] = { Type = "GlobeTranslation", Globe = "Moon", Longitude = 23.52959475512685, @@ -509,7 +509,7 @@ local keyframes = { Altitude = -1845.9443270288918, UseHeightmap = false }, - ['1969-07-20T20:14:42'] = { + ["1969-07-20T20:14:42"] = { Type = "GlobeTranslation", Globe = "Moon", Longitude = 23.52769228385669, @@ -517,7 +517,7 @@ local keyframes = { Altitude = -1848.123144974788, UseHeightmap = false }, - ['1969-07-20T20:14:43'] = { + ["1969-07-20T20:14:43"] = { Type = "GlobeTranslation", Globe = "Moon", Longitude = 23.52685377337869, @@ -525,7 +525,7 @@ local keyframes = { Altitude = -1850.8466674071583, UseHeightmap = false }, - ['1969-07-20T20:14:44'] = { + ["1969-07-20T20:14:44"] = { Type = "GlobeTranslation", Globe = "Moon", Longitude = 23.526284004538702, @@ -533,7 +533,7 @@ local keyframes = { Altitude = -1853.0254853530546, UseHeightmap = false }, - ['1969-07-20T20:14:45'] = { + ["1969-07-20T20:14:45"] = { Type = "GlobeTranslation", Globe = "Moon", Longitude = 23.5258419320743, @@ -541,7 +541,7 @@ local keyframes = { Altitude = -1852.2084286233435, UseHeightmap = false }, - ['1969-07-20T20:14:46'] = { + ["1969-07-20T20:14:46"] = { Type = "GlobeTranslation", Globe = "Moon", Longitude = 23.524906401275462, @@ -549,7 +549,7 @@ local keyframes = { Altitude = -1855.7490077854247, UseHeightmap = false }, - ['1969-07-20T20:14:47'] = { + ["1969-07-20T20:14:47"] = { Type = "GlobeTranslation", Globe = "Moon", Longitude = 23.52349915098792, @@ -557,7 +557,7 @@ local keyframes = { Altitude = -1857.383121244847, UseHeightmap = false }, - ['1969-07-20T20:14:48'] = { + ["1969-07-20T20:14:48"] = { Type = "GlobeTranslation", Globe = "Moon", Longitude = 23.522315823805602, @@ -565,7 +565,7 @@ local keyframes = { Altitude = -1859.5619391907433, UseHeightmap = false }, - ['1969-07-20T20:14:49'] = { + ["1969-07-20T20:14:49"] = { Type = "GlobeTranslation", Globe = "Moon", Longitude = 23.52101739233993, @@ -573,7 +573,7 @@ local keyframes = { Altitude = -1862.2854616231134, UseHeightmap = false }, - ['1969-07-20T20:14:50'] = { + ["1969-07-20T20:14:50"] = { Type = "GlobeTranslation", Globe = "Moon", Longitude = 23.51994166433182, @@ -581,7 +581,7 @@ local keyframes = { Altitude = -1864.7366318122467, UseHeightmap = false }, - ['1969-07-20T20:14:51'] = { + ["1969-07-20T20:14:51"] = { Type = "GlobeTranslation", Globe = "Moon", Longitude = 23.51898851685442, @@ -589,7 +589,7 @@ local keyframes = { Altitude = -1866.643097514906, UseHeightmap = false }, - ['1969-07-20T20:14:52'] = { + ["1969-07-20T20:14:52"] = { Type = "GlobeTranslation", Globe = "Moon", Longitude = 23.51808183367586, @@ -597,7 +597,7 @@ local keyframes = { Altitude = -1868.821915460802, UseHeightmap = false }, - ['1969-07-20T20:14:53'] = { + ["1969-07-20T20:14:53"] = { Type = "GlobeTranslation", Globe = "Moon", Longitude = 23.517315195124922, @@ -605,7 +605,7 @@ local keyframes = { Altitude = -1869.6389721905132, UseHeightmap = false }, - ['1969-07-20T20:14:54'] = { + ["1969-07-20T20:14:54"] = { Type = "GlobeTranslation", Globe = "Moon", Longitude = 23.516423288093712, @@ -613,7 +613,7 @@ local keyframes = { Altitude = -1872.0901423796465, UseHeightmap = false }, - ['1969-07-20T20:14:55'] = { + ["1969-07-20T20:14:55"] = { Type = "GlobeTranslation", Globe = "Moon", Longitude = 23.515618488386473, @@ -621,7 +621,7 @@ local keyframes = { Altitude = -1873.7242558390685, UseHeightmap = false }, - ['1969-07-20T20:14:56'] = { + ["1969-07-20T20:14:56"] = { Type = "GlobeTranslation", Globe = "Moon", Longitude = 23.514931748492103, @@ -629,7 +629,7 @@ local keyframes = { Altitude = -1875.0860170552537, UseHeightmap = false }, - ['1969-07-20T20:14:57'] = { + ["1969-07-20T20:14:57"] = { Type = "GlobeTranslation", Globe = "Moon", Longitude = 23.5141592094038, @@ -637,7 +637,7 @@ local keyframes = { Altitude = -1876.1754260282019, UseHeightmap = false }, - ['1969-07-20T20:14:58'] = { + ["1969-07-20T20:14:58"] = { Type = "GlobeTranslation", Globe = "Moon", Longitude = 23.513268517407862, @@ -645,7 +645,7 @@ local keyframes = { Altitude = -1878.3542439740982, UseHeightmap = false }, - ['1969-07-20T20:14:59'] = { + ["1969-07-20T20:14:59"] = { Type = "GlobeTranslation", Globe = "Moon", Longitude = 23.51249864236425, @@ -653,7 +653,7 @@ local keyframes = { Altitude = -1878.8989484605722, UseHeightmap = false }, - ['1969-07-20T20:15:00'] = { + ["1969-07-20T20:15:00"] = { Type = "GlobeTranslation", Globe = "Moon", Longitude = 23.511670817073732, @@ -661,7 +661,7 @@ local keyframes = { Altitude = -1879.9883574335202, UseHeightmap = false }, - ['1969-07-20T20:15:01'] = { + ["1969-07-20T20:15:01"] = { Type = "GlobeTranslation", Globe = "Moon", Longitude = 23.510927468201952, @@ -669,7 +669,7 @@ local keyframes = { Altitude = -1881.0777664064683, UseHeightmap = false }, - ['1969-07-20T20:15:02'] = { + ["1969-07-20T20:15:02"] = { Type = "GlobeTranslation", Globe = "Moon", Longitude = 23.510140364179833, @@ -677,7 +677,7 @@ local keyframes = { Altitude = -1882.9842321091276, UseHeightmap = false }, - ['1969-07-20T20:15:03'] = { + ["1969-07-20T20:15:03"] = { Type = "GlobeTranslation", Globe = "Moon", Longitude = 23.50940612514804, @@ -685,7 +685,7 @@ local keyframes = { Altitude = -1884.3459933253127, UseHeightmap = false }, - ['1969-07-20T20:15:04'] = { + ["1969-07-20T20:15:04"] = { Type = "GlobeTranslation", Globe = "Moon", Longitude = 23.508556629045042, @@ -693,7 +693,7 @@ local keyframes = { Altitude = -1885.1630500550239, UseHeightmap = false }, - ['1969-07-20T20:15:05'] = { + ["1969-07-20T20:15:05"] = { Type = "GlobeTranslation", Globe = "Moon", Longitude = 23.5078270022667, @@ -701,7 +701,7 @@ local keyframes = { Altitude = -1885.707754541498, UseHeightmap = false }, - ['1969-07-20T20:15:06'] = { + ["1969-07-20T20:15:06"] = { Type = "GlobeTranslation", Globe = "Moon", Longitude = 23.50712374883535, @@ -709,7 +709,7 @@ local keyframes = { Altitude = -1886.7971635144459, UseHeightmap = false }, - ['1969-07-20T20:15:07'] = { + ["1969-07-20T20:15:07"] = { Type = "GlobeTranslation", Globe = "Moon", Longitude = 23.50638631083077, @@ -717,7 +717,7 @@ local keyframes = { Altitude = -1888.158924730631, UseHeightmap = false }, - ['1969-07-20T20:15:08'] = { + ["1969-07-20T20:15:08"] = { Type = "GlobeTranslation", Globe = "Moon", Longitude = 23.50572166907488, @@ -725,7 +725,7 @@ local keyframes = { Altitude = -1888.431276973868, UseHeightmap = false }, - ['1969-07-20T20:15:09'] = { + ["1969-07-20T20:15:09"] = { Type = "GlobeTranslation", Globe = "Moon", Longitude = 23.505080467779102, @@ -733,7 +733,7 @@ local keyframes = { Altitude = -1889.5206859468162, UseHeightmap = false }, - ['1969-07-20T20:15:10'] = { + ["1969-07-20T20:15:10"] = { Type = "GlobeTranslation", Globe = "Moon", Longitude = 23.504394828536693, @@ -741,7 +741,7 @@ local keyframes = { Altitude = -1890.6100949197644, UseHeightmap = false }, - ['1969-07-20T20:15:11'] = { + ["1969-07-20T20:15:11"] = { Type = "GlobeTranslation", Globe = "Moon", Longitude = 23.50370057106609, @@ -749,7 +749,7 @@ local keyframes = { Altitude = -1891.9718561359496, UseHeightmap = false }, - ['1969-07-20T20:15:12'] = { + ["1969-07-20T20:15:12"] = { Type = "GlobeTranslation", Globe = "Moon", Longitude = 23.503056349392182, @@ -757,7 +757,7 @@ local keyframes = { Altitude = -1893.3336173521345, UseHeightmap = false }, - ['1969-07-20T20:15:13'] = { + ["1969-07-20T20:15:13"] = { Type = "GlobeTranslation", Globe = "Moon", Longitude = 23.50246925266341, @@ -765,7 +765,7 @@ local keyframes = { Altitude = -1893.8783218386086, UseHeightmap = false }, - ['1969-07-20T20:15:14'] = { + ["1969-07-20T20:15:14"] = { Type = "GlobeTranslation", Globe = "Moon", Longitude = 23.50184956306549, @@ -773,7 +773,7 @@ local keyframes = { Altitude = -1894.9677308115567, UseHeightmap = false }, - ['1969-07-20T20:15:15'] = { + ["1969-07-20T20:15:15"] = { Type = "GlobeTranslation", Globe = "Moon", Longitude = 23.501422630419572, @@ -781,7 +781,7 @@ local keyframes = { Altitude = -1894.1506740818456, UseHeightmap = false }, - ['1969-07-20T20:15:16'] = { + ["1969-07-20T20:15:16"] = { Type = "GlobeTranslation", Globe = "Moon", Longitude = 23.50104221348722, @@ -789,7 +789,7 @@ local keyframes = { Altitude = -1893.8783218386086, UseHeightmap = false }, - ['1969-07-20T20:15:17'] = { + ["1969-07-20T20:15:17"] = { Type = "GlobeTranslation", Globe = "Moon", Longitude = 23.50076948252455, @@ -797,7 +797,7 @@ local keyframes = { Altitude = -1892.2442083791866, UseHeightmap = false }, - ['1969-07-20T20:15:18'] = { + ["1969-07-20T20:15:18"] = { Type = "GlobeTranslation", Globe = "Moon", Longitude = 23.50013364513089, @@ -805,7 +805,7 @@ local keyframes = { Altitude = -1893.3336173521345, UseHeightmap = false }, - ['1969-07-20T20:15:19'] = { + ["1969-07-20T20:15:19"] = { Type = "GlobeTranslation", Globe = "Moon", Longitude = 23.499460285339502, @@ -813,7 +813,7 @@ local keyframes = { Altitude = -1894.9677308115567, UseHeightmap = false }, - ['1969-07-20T20:15:20'] = { + ["1969-07-20T20:15:20"] = { Type = "GlobeTranslation", Globe = "Moon", Longitude = 23.498899330647752, @@ -821,7 +821,7 @@ local keyframes = { Altitude = -1896.057139784505, UseHeightmap = false }, - ['1969-07-20T20:15:21'] = { + ["1969-07-20T20:15:21"] = { Type = "GlobeTranslation", Globe = "Moon", Longitude = 23.49826864115494, @@ -829,7 +829,7 @@ local keyframes = { Altitude = -1896.601844270979, UseHeightmap = false }, - ['1969-07-20T20:15:22'] = { + ["1969-07-20T20:15:22"] = { Type = "GlobeTranslation", Globe = "Moon", Longitude = 23.49765193973772, @@ -837,7 +837,7 @@ local keyframes = { Altitude = -1897.41890100069, UseHeightmap = false }, - ['1969-07-20T20:15:23'] = { + ["1969-07-20T20:15:23"] = { Type = "GlobeTranslation", Globe = "Moon", Longitude = 23.49706547748806, @@ -845,7 +845,7 @@ local keyframes = { Altitude = -1898.2359577304012, UseHeightmap = false }, - ['1969-07-20T20:15:24'] = { + ["1969-07-20T20:15:24"] = { Type = "GlobeTranslation", Globe = "Moon", Longitude = 23.496489420526313, @@ -853,7 +853,7 @@ local keyframes = { Altitude = -1899.053014460112, UseHeightmap = false }, - ['1969-07-20T20:15:25'] = { + ["1969-07-20T20:15:25"] = { Type = "GlobeTranslation", Globe = "Moon", Longitude = 23.495878153012562, @@ -861,7 +861,7 @@ local keyframes = { Altitude = -1900.1424234330602, UseHeightmap = false }, - ['1969-07-20T20:15:26'] = { + ["1969-07-20T20:15:26"] = { Type = "GlobeTranslation", Globe = "Moon", Longitude = 23.4953425244022, @@ -869,7 +869,7 @@ local keyframes = { Altitude = -1901.5041846492454, UseHeightmap = false }, - ['1969-07-20T20:15:27'] = { + ["1969-07-20T20:15:27"] = { Type = "GlobeTranslation", Globe = "Moon", Longitude = 23.494725217962213, @@ -877,7 +877,7 @@ local keyframes = { Altitude = -1902.5935936221936, UseHeightmap = false }, - ['1969-07-20T20:15:28'] = { + ["1969-07-20T20:15:28"] = { Type = "GlobeTranslation", Globe = "Moon", Longitude = 23.494112443564592, @@ -885,7 +885,7 @@ local keyframes = { Altitude = -1903.4106503519047, UseHeightmap = false }, - ['1969-07-20T20:15:29'] = { + ["1969-07-20T20:15:29"] = { Type = "GlobeTranslation", Globe = "Moon", Longitude = 23.493537644480202, @@ -893,7 +893,7 @@ local keyframes = { Altitude = -1903.9553548383788, UseHeightmap = false }, - ['1969-07-20T20:15:30'] = { + ["1969-07-20T20:15:30"] = { Type = "GlobeTranslation", Globe = "Moon", Longitude = 23.49299719757025, @@ -901,7 +901,7 @@ local keyframes = { Altitude = -1903.9553548383788, UseHeightmap = false }, - ['1969-07-20T20:15:31'] = { + ["1969-07-20T20:15:31"] = { Type = "GlobeTranslation", Globe = "Moon", Longitude = 23.492415313069813, @@ -909,7 +909,7 @@ local keyframes = { Altitude = -1904.2277070816158, UseHeightmap = false }, - ['1969-07-20T20:15:32'] = { + ["1969-07-20T20:15:32"] = { Type = "GlobeTranslation", Globe = "Moon", Longitude = 23.491877755110142, @@ -917,7 +917,7 @@ local keyframes = { Altitude = -1904.2277070816158, UseHeightmap = false }, - ['1969-07-20T20:15:33'] = { + ["1969-07-20T20:15:33"] = { Type = "GlobeTranslation", Globe = "Moon", Longitude = 23.49128819308786, @@ -925,7 +925,7 @@ local keyframes = { Altitude = -1904.2277070816158, UseHeightmap = false }, - ['1969-07-20T20:15:34'] = { + ["1969-07-20T20:15:34"] = { Type = "GlobeTranslation", Globe = "Moon", Longitude = 23.49073158429634, @@ -933,7 +933,7 @@ local keyframes = { Altitude = -1904.2277070816158, UseHeightmap = false }, - ['1969-07-20T20:15:35'] = { + ["1969-07-20T20:15:35"] = { Type = "GlobeTranslation", Globe = "Moon", Longitude = 23.490174891596332, @@ -941,7 +941,7 @@ local keyframes = { Altitude = -1904.2277070816158, UseHeightmap = false }, - ['1969-07-20T20:15:36'] = { + ["1969-07-20T20:15:36"] = { Type = "GlobeTranslation", Globe = "Moon", Longitude = 23.489635065407523, @@ -949,7 +949,7 @@ local keyframes = { Altitude = -1904.5000593248528, UseHeightmap = false }, - ['1969-07-20T20:15:37'] = { + ["1969-07-20T20:15:37"] = { Type = "GlobeTranslation", Globe = "Moon", Longitude = 23.4891060535486, @@ -957,7 +957,7 @@ local keyframes = { Altitude = -1904.2277070816158, UseHeightmap = false }, - ['1969-07-20T20:15:38'] = { + ["1969-07-20T20:15:38"] = { Type = "GlobeTranslation", Globe = "Moon", Longitude = 23.48855436619652, @@ -965,7 +965,7 @@ local keyframes = { Altitude = -1904.2277070816158, UseHeightmap = false }, - ['1969-07-20T20:15:39'] = { + ["1969-07-20T20:15:39"] = { Type = "GlobeTranslation", Globe = "Moon", Longitude = 23.488052711552413, @@ -973,7 +973,7 @@ local keyframes = { Altitude = -1904.5000593248528, UseHeightmap = false }, - ['1969-07-20T20:15:40'] = { + ["1969-07-20T20:15:40"] = { Type = "GlobeTranslation", Globe = "Moon", Longitude = 23.48754943516269, @@ -981,7 +981,7 @@ local keyframes = { Altitude = -1904.2277070816158, UseHeightmap = false }, - ['1969-07-20T20:15:41'] = { + ["1969-07-20T20:15:41"] = { Type = "GlobeTranslation", Globe = "Moon", Longitude = 23.487094304824993, @@ -989,7 +989,7 @@ local keyframes = { Altitude = -1904.2277070816158, UseHeightmap = false }, - ['1969-07-20T20:15:42'] = { + ["1969-07-20T20:15:42"] = { Type = "GlobeTranslation", Globe = "Moon", Longitude = 23.486618165034592, @@ -997,7 +997,7 @@ local keyframes = { Altitude = -1904.7724115680899, UseHeightmap = false }, - ['1969-07-20T20:15:43'] = { + ["1969-07-20T20:15:43"] = { Type = "GlobeTranslation", Globe = "Moon", Longitude = 23.48604740534131, @@ -1005,7 +1005,7 @@ local keyframes = { Altitude = -1905.3171160545637, UseHeightmap = false }, - ['1969-07-20T20:15:44'] = { + ["1969-07-20T20:15:44"] = { Type = "GlobeTranslation", Globe = "Moon", Longitude = 23.48548248435554, @@ -1013,7 +1013,7 @@ local keyframes = { Altitude = -1905.8618205410378, UseHeightmap = false }, - ['1969-07-20T20:15:45'] = { + ["1969-07-20T20:15:45"] = { Type = "GlobeTranslation", Globe = "Moon", Longitude = 23.48494957486896, @@ -1021,7 +1021,7 @@ local keyframes = { Altitude = -1905.8618205410378, UseHeightmap = false }, - ['1969-07-20T20:15:46'] = { + ["1969-07-20T20:15:46"] = { Type = "GlobeTranslation", Globe = "Moon", Longitude = 23.484598386683622, @@ -1029,7 +1029,7 @@ local keyframes = { Altitude = -1907.49593400046, UseHeightmap = false }, - ['1969-07-20T20:15:47'] = { + ["1969-07-20T20:15:47"] = { Type = "GlobeTranslation", Globe = "Moon", Longitude = 23.4841269963268, @@ -1037,7 +1037,7 @@ local keyframes = { Altitude = -1908.040638486934, UseHeightmap = false }, - ['1969-07-20T20:15:48'] = { + ["1969-07-20T20:15:48"] = { Type = "GlobeTranslation", Globe = "Moon", Longitude = 23.48373390336955, @@ -1045,7 +1045,7 @@ local keyframes = { Altitude = -1908.8576952166452, UseHeightmap = false }, - ['1969-07-20T20:15:49'] = { + ["1969-07-20T20:15:49"] = { Type = "GlobeTranslation", Globe = "Moon", Longitude = 23.48325134882829, @@ -1053,7 +1053,7 @@ local keyframes = { Altitude = -1908.4491668517896, UseHeightmap = false }, - ['1969-07-20T20:15:50'] = { + ["1969-07-20T20:15:50"] = { Type = "GlobeTranslation", Globe = "Moon", Longitude = 23.48284574619883, @@ -1061,7 +1061,7 @@ local keyframes = { Altitude = -1909.1300474598822, UseHeightmap = false }, - ['1969-07-20T20:15:51'] = { + ["1969-07-20T20:15:51"] = { Type = "GlobeTranslation", Globe = "Moon", Longitude = 23.48245362823393, @@ -1069,7 +1069,7 @@ local keyframes = { Altitude = -1909.4023997031193, UseHeightmap = false }, - ['1969-07-20T20:15:52'] = { + ["1969-07-20T20:15:52"] = { Type = "GlobeTranslation", Globe = "Moon", Longitude = 23.482060114185842, @@ -1077,7 +1077,7 @@ local keyframes = { Altitude = -1909.6747519463563, UseHeightmap = false }, - ['1969-07-20T20:15:53'] = { + ["1969-07-20T20:15:53"] = { Type = "GlobeTranslation", Globe = "Moon", Longitude = 23.481698202127482, @@ -1085,7 +1085,7 @@ local keyframes = { Altitude = -1909.6747519463563, UseHeightmap = false }, - ['1969-07-20T20:15:54'] = { + ["1969-07-20T20:15:54"] = { Type = "GlobeTranslation", Globe = "Moon", Longitude = 23.48129046365451, @@ -1093,7 +1093,7 @@ local keyframes = { Altitude = -1909.6747519463563, UseHeightmap = false }, - ['1969-07-20T20:15:55'] = { + ["1969-07-20T20:15:55"] = { Type = "GlobeTranslation", Globe = "Moon", Longitude = 23.480893026154902, @@ -1101,7 +1101,7 @@ local keyframes = { Altitude = -1909.6747519463563, UseHeightmap = false }, - ['1969-07-20T20:15:56'] = { + ["1969-07-20T20:15:56"] = { Type = "GlobeTranslation", Globe = "Moon", Longitude = 23.48059324160945, @@ -1109,7 +1109,7 @@ local keyframes = { Altitude = -1909.6747519463563, UseHeightmap = false }, - ['1969-07-20T20:15:57'] = { + ["1969-07-20T20:15:57"] = { Type = "GlobeTranslation", Globe = "Moon", Longitude = 23.48034984354739, @@ -1117,7 +1117,7 @@ local keyframes = { Altitude = -1909.6747519463563, UseHeightmap = false }, - ['1969-07-20T20:15:58'] = { + ["1969-07-20T20:15:58"] = { Type = "GlobeTranslation", Globe = "Moon", Longitude = 23.48005268645993, @@ -1125,7 +1125,7 @@ local keyframes = { Altitude = -1909.6747519463563, UseHeightmap = false }, - ['1969-07-20T20:15:59'] = { + ["1969-07-20T20:15:59"] = { Type = "GlobeTranslation", Globe = "Moon", Longitude = 23.47978070153665, @@ -1133,7 +1133,7 @@ local keyframes = { Altitude = -1909.9471041895933, UseHeightmap = false }, - ['1969-07-20T20:16:00'] = { + ["1969-07-20T20:16:00"] = { Type = "GlobeTranslation", Globe = "Moon", Longitude = 23.47951311851127, @@ -1141,7 +1141,7 @@ local keyframes = { Altitude = -1909.9471041895933, UseHeightmap = false }, - ['1969-07-20T20:16:01'] = { + ["1969-07-20T20:16:01"] = { Type = "GlobeTranslation", Globe = "Moon", Longitude = 23.47927978098579, @@ -1149,7 +1149,7 @@ local keyframes = { Altitude = -1909.9471041895933, UseHeightmap = false }, - ['1969-07-20T20:16:02'] = { + ["1969-07-20T20:16:02"] = { Type = "GlobeTranslation", Globe = "Moon", Longitude = 23.47904250519933, @@ -1157,7 +1157,7 @@ local keyframes = { Altitude = -1910.4918086760674, UseHeightmap = false }, - ['1969-07-20T20:16:03'] = { + ["1969-07-20T20:16:03"] = { Type = "GlobeTranslation", Globe = "Moon", Longitude = 23.47879202998348, @@ -1165,7 +1165,7 @@ local keyframes = { Altitude = -1910.7641609193045, UseHeightmap = false }, - ['1969-07-20T20:16:04'] = { + ["1969-07-20T20:16:04"] = { Type = "GlobeTranslation", Globe = "Moon", Longitude = 23.478567222437622, @@ -1173,7 +1173,7 @@ local keyframes = { Altitude = -1910.7641609193045, UseHeightmap = false }, - ['1969-07-20T20:16:05'] = { + ["1969-07-20T20:16:05"] = { Type = "GlobeTranslation", Globe = "Moon", Longitude = 23.47836548542964, @@ -1181,7 +1181,7 @@ local keyframes = { Altitude = -1910.7641609193045, UseHeightmap = false }, - ['1969-07-20T20:16:06'] = { + ["1969-07-20T20:16:06"] = { Type = "GlobeTranslation", Globe = "Moon", Longitude = 23.47818769774975, @@ -1189,7 +1189,7 @@ local keyframes = { Altitude = -1911.3088654057785, UseHeightmap = false }, - ['1969-07-20T20:16:07'] = { + ["1969-07-20T20:16:07"] = { Type = "GlobeTranslation", Globe = "Moon", Longitude = 23.477896613823983, @@ -1197,7 +1197,7 @@ local keyframes = { Altitude = -1913.2153311084376, UseHeightmap = false }, - ['1969-07-20T20:16:08'] = { + ["1969-07-20T20:16:08"] = { Type = "GlobeTranslation", Globe = "Moon", Longitude = 23.47781195503974, @@ -1205,7 +1205,7 @@ local keyframes = { Altitude = -1913.2153311084376, UseHeightmap = false }, - ['1969-07-20T20:16:09'] = { + ["1969-07-20T20:16:09"] = { Type = "GlobeTranslation", Globe = "Moon", Longitude = 23.477664452707373, @@ -1213,7 +1213,7 @@ local keyframes = { Altitude = -1914.0323878381487, UseHeightmap = false }, - -- ['1969-07-20T20:16:10'] = { + -- ["1969-07-20T20:16:10"] = { -- Type = "GlobeTranslation", -- Globe = "Moon", -- Longitude = 23.477750217762413, @@ -1221,7 +1221,7 @@ local keyframes = { -- Altitude = -1912.6706266219635, -- UseHeightmap = false -- }, - -- ['1969-07-20T20:16:11'] = { + -- ["1969-07-20T20:16:11"] = { -- Type = "GlobeTranslation", -- Globe = "Moon", -- Longitude = 23.477590925415402, @@ -1229,7 +1229,7 @@ local keyframes = { -- Altitude = -1912.6706266219635, -- UseHeightmap = false -- }, - -- ['1969-07-20T20:16:12'] = { + -- ["1969-07-20T20:16:12"] = { -- Type = "GlobeTranslation", -- Globe = "Moon", -- Longitude = 23.47745952757753, @@ -1237,7 +1237,7 @@ local keyframes = { -- Altitude = -1912.6706266219635, -- UseHeightmap = false -- }, - -- ['1969-07-20T20:16:13'] = { + -- ["1969-07-20T20:16:13"] = { -- Type = "GlobeTranslation", -- Globe = "Moon", -- Longitude = 23.477271343369093, @@ -1245,7 +1245,7 @@ local keyframes = { -- Altitude = -1913.2153311084376, -- UseHeightmap = false -- }, - -- ['1969-07-20T20:16:14'] = { + -- ["1969-07-20T20:16:14"] = { -- Type = "GlobeTranslation", -- Globe = "Moon", -- Longitude = 23.477100932665042, @@ -1253,7 +1253,7 @@ local keyframes = { -- Altitude = -1914.3047400813857, -- UseHeightmap = false -- }, - ['1969-07-20T20:16:15'] = { + ["1969-07-20T20:16:15"] = { Type = "GlobeTranslation", Globe = "Moon", Longitude = 23.47697690593997, @@ -1261,7 +1261,7 @@ local keyframes = { Altitude = -1914.8494445678598, UseHeightmap = false }, - ['1969-07-20T20:16:16'] = { + ["1969-07-20T20:16:16"] = { Type = "GlobeTranslation", Globe = "Moon", Longitude = 23.476842953277412, @@ -1269,7 +1269,7 @@ local keyframes = { Altitude = -1915.1217968110968, UseHeightmap = false }, - ['1969-07-20T20:16:17'] = { + ["1969-07-20T20:16:17"] = { Type = "GlobeTranslation", Globe = "Moon", Longitude = 23.476774052091812, @@ -1277,7 +1277,7 @@ local keyframes = { Altitude = -1914.8494445678598, UseHeightmap = false }, - ['1969-07-20T20:16:18'] = { + ["1969-07-20T20:16:18"] = { Type = "GlobeTranslation", Globe = "Moon", Longitude = 23.47665204889191, @@ -1285,7 +1285,7 @@ local keyframes = { Altitude = -1915.1217968110968, UseHeightmap = false }, - ['1969-07-20T20:16:19'] = { + ["1969-07-20T20:16:19"] = { Type = "GlobeTranslation", Globe = "Moon", Longitude = 23.47657652039885, @@ -1293,7 +1293,7 @@ local keyframes = { Altitude = -1915.1217968110968, UseHeightmap = false }, - ['1969-07-20T20:16:20'] = { + ["1969-07-20T20:16:20"] = { Type = "GlobeTranslation", Globe = "Moon", Longitude = 23.476475036022492, @@ -1301,7 +1301,7 @@ local keyframes = { Altitude = -1914.8494445678598, UseHeightmap = false }, - ['1969-07-20T20:16:21'] = { + ["1969-07-20T20:16:21"] = { Type = "GlobeTranslation", Globe = "Moon", Longitude = 23.47638671770867, @@ -1309,7 +1309,7 @@ local keyframes = { Altitude = -1915.3941490543339, UseHeightmap = false }, - ['1969-07-20T20:16:22'] = { + ["1969-07-20T20:16:22"] = { Type = "GlobeTranslation", Globe = "Moon", Longitude = 23.476286834646782, @@ -1317,7 +1317,7 @@ local keyframes = { Altitude = -1915.3941490543339, UseHeightmap = false }, - ['1969-07-20T20:16:23'] = { + ["1969-07-20T20:16:23"] = { Type = "GlobeTranslation", Globe = "Moon", Longitude = 23.47623840477727, @@ -1325,7 +1325,7 @@ local keyframes = { Altitude = -1915.3941490543339, UseHeightmap = false }, - ['1969-07-20T20:16:24'] = { + ["1969-07-20T20:16:24"] = { Type = "GlobeTranslation", Globe = "Moon", Longitude = 23.476125794037742, @@ -1333,7 +1333,7 @@ local keyframes = { Altitude = -1915.938853540808, UseHeightmap = false }, - ['1969-07-20T20:16:25'] = { + ["1969-07-20T20:16:25"] = { Type = "GlobeTranslation", Globe = "Moon", Longitude = 23.47604582826371, @@ -1341,7 +1341,7 @@ local keyframes = { Altitude = -1916.211205784045, UseHeightmap = false }, - ['1969-07-20T20:16:26'] = { + ["1969-07-20T20:16:26"] = { Type = "GlobeTranslation", Globe = "Moon", Longitude = 23.47599605084473, @@ -1349,7 +1349,7 @@ local keyframes = { Altitude = -1916.211205784045, UseHeightmap = false }, - ['1969-07-20T20:16:27'] = { + ["1969-07-20T20:16:27"] = { Type = "GlobeTranslation", Globe = "Moon", Longitude = 23.47598166921822, @@ -1357,7 +1357,7 @@ local keyframes = { Altitude = -1916.755910270519, UseHeightmap = false }, - -- ['1969-07-20T20:16:28'] = { + -- ["1969-07-20T20:16:28"] = { -- Type = "GlobeTranslation", -- Globe = "Moon", -- Longitude = 23.47600003592791, @@ -1365,7 +1365,7 @@ local keyframes = { -- Altitude = -1916.211205784045, -- UseHeightmap = false -- }, - -- ['1969-07-20T20:16:29'] = { + -- ["1969-07-20T20:16:29"] = { -- Type = "GlobeTranslation", -- Globe = "Moon", -- Longitude = 23.47593990066764, @@ -1373,7 +1373,7 @@ local keyframes = { -- Altitude = -1916.483558027282, -- UseHeightmap = false -- }, - ['1969-07-20T20:16:30'] = { + ["1969-07-20T20:16:30"] = { Type = "GlobeTranslation", Globe = "Moon", Longitude = 23.47587957412098, @@ -1381,7 +1381,7 @@ local keyframes = { Altitude = -1916.755910270519, UseHeightmap = false }, - ['1969-07-20T20:16:31'] = { + ["1969-07-20T20:16:31"] = { Type = "GlobeTranslation", Globe = "Moon", Longitude = 23.47579282136856, @@ -1389,7 +1389,7 @@ local keyframes = { Altitude = -1917.028262513756, UseHeightmap = false }, - ['1969-07-20T20:16:32'] = { + ["1969-07-20T20:16:32"] = { Type = "GlobeTranslation", Globe = "Moon", Longitude = 23.47571834266516, @@ -1397,7 +1397,7 @@ local keyframes = { Altitude = -1917.5729670002302, UseHeightmap = false }, - -- ['1969-07-20T20:16:33'] = { + -- ["1969-07-20T20:16:33"] = { -- Type = "GlobeTranslation", -- Globe = "Moon", -- Longitude = 23.47569457676149, @@ -1405,7 +1405,7 @@ local keyframes = { -- Altitude = -1917.3006147569931, -- UseHeightmap = false -- }, - ['1969-07-20T20:16:34'] = { + ["1969-07-20T20:16:34"] = { Type = "GlobeTranslation", Globe = "Moon", Longitude = 23.47557041293751, @@ -1413,7 +1413,7 @@ local keyframes = { Altitude = -1918.117671486704, UseHeightmap = false }, - ['1969-07-20T20:16:35'] = { + ["1969-07-20T20:16:35"] = { Type = "GlobeTranslation", Globe = "Moon", Longitude = 23.475475681892203, @@ -1421,7 +1421,7 @@ local keyframes = { Altitude = -1918.117671486704, UseHeightmap = false }, - ['1969-07-20T20:16:36'] = { + ["1969-07-20T20:16:36"] = { Type = "GlobeTranslation", Globe = "Moon", Longitude = 23.47541533097675, @@ -1429,7 +1429,7 @@ local keyframes = { Altitude = -1918.390023729941, UseHeightmap = false }, - ['1969-07-20T20:16:37'] = { + ["1969-07-20T20:16:37"] = { Type = "GlobeTranslation", Globe = "Moon", Longitude = 23.47532207549478, @@ -1437,7 +1437,7 @@ local keyframes = { Altitude = -1918.662375973178, UseHeightmap = false }, - ['1969-07-20T20:16:38'] = { + ["1969-07-20T20:16:38"] = { Type = "GlobeTranslation", Globe = "Moon", Longitude = 23.47522251798864, @@ -1445,7 +1445,7 @@ local keyframes = { Altitude = -1918.662375973178, UseHeightmap = false }, - ['1969-07-20T20:16:39'] = { + ["1969-07-20T20:16:39"] = { Type = "GlobeTranslation", Globe = "Moon", Longitude = 23.47513564425997, @@ -1453,7 +1453,7 @@ local keyframes = { Altitude = -1918.662375973178, UseHeightmap = false }, - ['1969-07-20T20:16:40'] = { + ["1969-07-20T20:16:40"] = { Type = "GlobeTranslation", Globe = "Moon", Longitude = 23.47498810518855, @@ -1461,7 +1461,7 @@ local keyframes = { Altitude = -1920.2964894326003, UseHeightmap = false }, - -- ['1969-07-20T20:16:41'] = { + -- ["1969-07-20T20:16:41"] = { -- Type = "GlobeTranslation", -- Globe = "Moon", -- Longitude = 23.47489523759891, @@ -1469,7 +1469,7 @@ local keyframes = { -- Altitude = -1920.0241371893633, -- UseHeightmap = false -- }, - -- ['1969-07-20T20:16:42'] = { + -- ["1969-07-20T20:16:42"] = { -- Type = "GlobeTranslation", -- Globe = "Moon", -- Longitude = 23.47479438729774, @@ -1477,7 +1477,7 @@ local keyframes = { -- Altitude = -1920.2964894326003, -- UseHeightmap = false -- }, - -- ['1969-07-20T20:16:43'] = { + -- ["1969-07-20T20:16:43"] = { -- Type = "GlobeTranslation", -- Globe = "Moon", -- Longitude = 23.47475788126512, @@ -1485,7 +1485,7 @@ local keyframes = { -- Altitude = -1920.0241371893633, -- UseHeightmap = false -- }, - ['1969-07-20T20:16:44'] = { + ["1969-07-20T20:16:44"] = { Type = "GlobeTranslation", Globe = "Moon", Longitude = 23.474678823712882, @@ -1493,7 +1493,7 @@ local keyframes = { Altitude = -1920.2964894326003, UseHeightmap = false }, - ['1969-07-20T20:16:45'] = { + ["1969-07-20T20:16:45"] = { Type = "GlobeTranslation", Globe = "Moon", Longitude = 23.47460302474115, @@ -1501,7 +1501,7 @@ local keyframes = { Altitude = -1920.2964894326003, UseHeightmap = false }, - ['1969-07-20T20:16:46'] = { + ["1969-07-20T20:16:46"] = { Type = "GlobeTranslation", Globe = "Moon", Longitude = 23.47450130965027, @@ -1509,7 +1509,7 @@ local keyframes = { Altitude = -1920.8411939190744, UseHeightmap = false }, - ['1969-07-20T20:16:47'] = { + ["1969-07-20T20:16:47"] = { Type = "GlobeTranslation", Globe = "Moon", Longitude = 23.474379586340042, @@ -1517,7 +1517,7 @@ local keyframes = { Altitude = -1921.1135461623114, UseHeightmap = false }, - ['1969-07-20T20:16:48'] = { + ["1969-07-20T20:16:48"] = { Type = "GlobeTranslation", Globe = "Moon", Longitude = 23.47431921657337, @@ -1525,7 +1525,7 @@ local keyframes = { Altitude = -1921.1135461623114, UseHeightmap = false }, - ['1969-07-20T20:16:49'] = { + ["1969-07-20T20:16:49"] = { Type = "GlobeTranslation", Globe = "Moon", Longitude = 23.47424698504895, @@ -1533,7 +1533,7 @@ local keyframes = { Altitude = -1921.1135461623114, UseHeightmap = false }, - ['1969-07-20T20:16:50'] = { + ["1969-07-20T20:16:50"] = { Type = "GlobeTranslation", Globe = "Moon", Longitude = 23.474158028620153, @@ -1541,7 +1541,7 @@ local keyframes = { Altitude = -1921.6582506487855, UseHeightmap = false }, - ['1969-07-20T20:16:51'] = { + ["1969-07-20T20:16:51"] = { Type = "GlobeTranslation", Globe = "Moon", Longitude = 23.47408003386958, @@ -1549,7 +1549,7 @@ local keyframes = { Altitude = -1921.6582506487855, UseHeightmap = false }, - ['1969-07-20T20:16:52'] = { + ["1969-07-20T20:16:52"] = { Type = "GlobeTranslation", Globe = "Moon", Longitude = 23.473993195514502, @@ -1557,7 +1557,7 @@ local keyframes = { Altitude = -1921.9306028920225, UseHeightmap = false }, - -- ['1969-07-20T20:16:53'] = { + -- ["1969-07-20T20:16:53"] = { -- Type = "GlobeTranslation", -- Globe = "Moon", -- Longitude = 23.47392353665608, @@ -1565,7 +1565,7 @@ local keyframes = { -- Altitude = -1922.2029551352596, -- UseHeightmap = false -- }, - ['1969-07-20T20:16:54'] = { + ["1969-07-20T20:16:54"] = { Type = "GlobeTranslation", Globe = "Moon", Longitude = 23.47388537487237, @@ -1573,7 +1573,7 @@ local keyframes = { Altitude = -1921.9306028920225, UseHeightmap = false }, - ['1969-07-20T20:16:55'] = { + ["1969-07-20T20:16:55"] = { Type = "GlobeTranslation", Globe = "Moon", Longitude = 23.47382957912373, @@ -1581,7 +1581,7 @@ local keyframes = { Altitude = -1921.9306028920225, UseHeightmap = false }, - ['1969-07-20T20:16:56'] = { + ["1969-07-20T20:16:56"] = { Type = "GlobeTranslation", Globe = "Moon", Longitude = 23.47378652829031, @@ -1589,7 +1589,7 @@ local keyframes = { Altitude = -1921.6582506487855, UseHeightmap = false }, - ['1969-07-20T20:16:57'] = { + ["1969-07-20T20:16:57"] = { Type = "GlobeTranslation", Globe = "Moon", Longitude = 23.473741159081282, @@ -1597,7 +1597,7 @@ local keyframes = { Altitude = -1921.6582506487855, UseHeightmap = false }, - ['1969-07-20T20:16:58'] = { + ["1969-07-20T20:16:58"] = { Type = "GlobeTranslation", Globe = "Moon", Longitude = 23.473674434325403, @@ -1605,7 +1605,7 @@ local keyframes = { Altitude = -1922.2029551352596, UseHeightmap = false }, - ['1969-07-20T20:16:59'] = { + ["1969-07-20T20:16:59"] = { Type = "GlobeTranslation", Globe = "Moon", Longitude = 23.47366202033169, @@ -1613,7 +1613,7 @@ local keyframes = { Altitude = -1922.2029551352596, UseHeightmap = false }, - ['1969-07-20T20:17:00'] = { + ["1969-07-20T20:17:00"] = { Type = "GlobeTranslation", Globe = "Moon", Longitude = 23.47360771579434, @@ -1621,7 +1621,7 @@ local keyframes = { Altitude = -1922.7476596217336, UseHeightmap = false }, - ['1969-07-20T20:17:01'] = { + ["1969-07-20T20:17:01"] = { Type = "GlobeTranslation", Globe = "Moon", Longitude = 23.47357090816817, @@ -1629,7 +1629,7 @@ local keyframes = { Altitude = -1923.0200118649707, UseHeightmap = false }, - ['1969-07-20T20:17:02'] = { + ["1969-07-20T20:17:02"] = { Type = "GlobeTranslation", Globe = "Moon", Longitude = 23.47354290217646, @@ -1637,7 +1637,7 @@ local keyframes = { Altitude = -1923.2923641082077, UseHeightmap = false }, - ['1969-07-20T20:17:03'] = { + ["1969-07-20T20:17:03"] = { Type = "GlobeTranslation", Globe = "Moon", Longitude = 23.47354640286736, @@ -1645,7 +1645,7 @@ local keyframes = { Altitude = -1923.5647163514448, UseHeightmap = false }, - ['1969-07-20T20:17:04'] = { + ["1969-07-20T20:17:04"] = { Type = "GlobeTranslation", Globe = "Moon", Longitude = 23.473541367503802, @@ -1653,7 +1653,7 @@ local keyframes = { Altitude = -1923.8370685946818, UseHeightmap = false }, - ['1969-07-20T20:17:05'] = { + ["1969-07-20T20:17:05"] = { Type = "GlobeTranslation", Globe = "Moon", Longitude = 23.47350854369485, @@ -1661,7 +1661,7 @@ local keyframes = { Altitude = -1924.1094208379188, UseHeightmap = false }, - ['1969-07-20T20:17:06'] = { + ["1969-07-20T20:17:06"] = { Type = "GlobeTranslation", Globe = "Moon", Longitude = 23.47347424911663, @@ -1669,7 +1669,7 @@ local keyframes = { Altitude = -1924.6541253243927, UseHeightmap = false }, - ['1969-07-20T20:17:07'] = { + ["1969-07-20T20:17:07"] = { Type = "GlobeTranslation", Globe = "Moon", Longitude = 23.473503629496022, @@ -1677,7 +1677,7 @@ local keyframes = { Altitude = -1924.6541253243927, UseHeightmap = false }, - ['1969-07-20T20:17:08'] = { + ["1969-07-20T20:17:08"] = { Type = "GlobeTranslation", Globe = "Moon", Longitude = 23.473512768546712, @@ -1685,7 +1685,7 @@ local keyframes = { Altitude = -1924.6541253243927, UseHeightmap = false }, - ['1969-07-20T20:17:09'] = { + ["1969-07-20T20:17:09"] = { Type = "GlobeTranslation", Globe = "Moon", Longitude = 23.47353343175876, @@ -1693,7 +1693,7 @@ local keyframes = { Altitude = -1924.3817730811559, UseHeightmap = false }, - ['1969-07-20T20:17:10'] = { + ["1969-07-20T20:17:10"] = { Type = "GlobeTranslation", Globe = "Moon", Longitude = 23.47353316391657, @@ -1701,7 +1701,7 @@ local keyframes = { Altitude = -1925.4711820541038, UseHeightmap = false }, - ['1969-07-20T20:17:11'] = { + ["1969-07-20T20:17:11"] = { Type = "GlobeTranslation", Globe = "Moon", Longitude = 23.47355774790429, @@ -1709,7 +1709,7 @@ local keyframes = { Altitude = -1924.9264775676297, UseHeightmap = false }, - ['1969-07-20T20:17:12'] = { + ["1969-07-20T20:17:12"] = { Type = "GlobeTranslation", Globe = "Moon", Longitude = 23.4735540335665, @@ -1717,7 +1717,7 @@ local keyframes = { Altitude = -1924.9264775676297, UseHeightmap = false }, - ['1969-07-20T20:17:13'] = { + ["1969-07-20T20:17:13"] = { Type = "GlobeTranslation", Globe = "Moon", Longitude = 23.47353500681606, @@ -1725,7 +1725,7 @@ local keyframes = { Altitude = -1925.1988298108668, UseHeightmap = false }, - ['1969-07-20T20:17:14'] = { + ["1969-07-20T20:17:14"] = { Type = "GlobeTranslation", Globe = "Moon", Longitude = 23.47350664772458, @@ -1733,7 +1733,7 @@ local keyframes = { Altitude = -1925.4711820541038, UseHeightmap = false }, - ['1969-07-20T20:17:15'] = { + ["1969-07-20T20:17:15"] = { Type = "GlobeTranslation", Globe = "Moon", Longitude = 23.473494757982273, @@ -1741,7 +1741,7 @@ local keyframes = { Altitude = -1925.4711820541038, UseHeightmap = false }, - ['1969-07-20T20:17:16'] = { + ["1969-07-20T20:17:16"] = { Type = "GlobeTranslation", Globe = "Moon", Longitude = 23.473485349949943, @@ -1749,7 +1749,7 @@ local keyframes = { Altitude = -1925.4711820541038, UseHeightmap = false }, - ['1969-07-20T20:17:17'] = { + ["1969-07-20T20:17:17"] = { Type = "GlobeTranslation", Globe = "Moon", Longitude = 23.473464448566723, @@ -1757,7 +1757,7 @@ local keyframes = { Altitude = -1925.4711820541038, UseHeightmap = false }, - ['1969-07-20T20:17:18'] = { + ["1969-07-20T20:17:18"] = { Type = "GlobeTranslation", Globe = "Moon", Longitude = 23.47344203973089, @@ -1765,7 +1765,7 @@ local keyframes = { Altitude = -1925.4711820541038, UseHeightmap = false }, - ['1969-07-20T20:17:19'] = { + ["1969-07-20T20:17:19"] = { Type = "GlobeTranslation", Globe = "Moon", Longitude = 23.473416197134252, @@ -1773,7 +1773,7 @@ local keyframes = { Altitude = -1925.7435342973408, UseHeightmap = false }, - ['1969-07-20T20:17:20'] = { + ["1969-07-20T20:17:20"] = { Type = "GlobeTranslation", Globe = "Moon", Longitude = 23.47339416150648, @@ -1781,7 +1781,7 @@ local keyframes = { Altitude = -1925.7435342973408, UseHeightmap = false }, - ['1969-07-20T20:17:21'] = { + ["1969-07-20T20:17:21"] = { Type = "GlobeTranslation", Globe = "Moon", Longitude = 23.4733232813815, @@ -1789,7 +1789,7 @@ local keyframes = { Altitude = -1926.288238783815, UseHeightmap = false }, - ['1969-07-20T20:17:24'] = { + ["1969-07-20T20:17:24"] = { Type = "GlobeTranslation", Globe = "Moon", Longitude = 23.47324174890097, @@ -1797,7 +1797,7 @@ local keyframes = { Altitude = -1926.288238783815, UseHeightmap = false }, - ['1969-07-20T20:17:27'] = { + ["1969-07-20T20:17:27"] = { Type = "GlobeTranslation", Globe = "Moon", Longitude = 23.47317556908458, @@ -1805,7 +1805,7 @@ local keyframes = { Altitude = -1926.560591027052, UseHeightmap = false }, - ['1969-07-20T20:17:30'] = { + ["1969-07-20T20:17:30"] = { Type = "GlobeTranslation", Globe = "Moon", Longitude = 23.47310752310149, @@ -1813,7 +1813,7 @@ local keyframes = { Altitude = -1926.832943270289, UseHeightmap = false }, - ['1969-07-20T20:17:32'] = { + ["1969-07-20T20:17:32"] = { Type = "GlobeTranslation", Globe = "Moon", Longitude = 23.473074792306253, @@ -1821,7 +1821,7 @@ local keyframes = { Altitude = -1927.105295513526, UseHeightmap = false }, - ['1969-07-20T20:17:40'] = { + ["1969-07-20T20:17:40"] = { Type = "GlobeTranslation", Globe = "Moon", Longitude = 23.47306, @@ -1831,4 +1831,4 @@ local keyframes = { }, }; -asset.export('keyframes', keyframes); +asset.export("keyframes", keyframes); diff --git a/data/assets/scene/solarsystem/missions/apollo/11/lem_descent_rotation.asset b/data/assets/scene/solarsystem/missions/apollo/11/lem_descent_rotation.asset index 8ed85f9feb..d154270852 100644 --- a/data/assets/scene/solarsystem/missions/apollo/11/lem_descent_rotation.asset +++ b/data/assets/scene/solarsystem/missions/apollo/11/lem_descent_rotation.asset @@ -1,1586 +1,1586 @@ -asset.export('keyframes', { - -- ['1969-7-20T20:9:53'] = { +asset.export("keyframes", { + -- ["1969-7-20T20:9:53"] = { -- Type = "StaticRotation", -- Rotation = {-1.3815, -0.0048, -0.4891} -- }, - -- ['1969-7-20T20:9:55'] = { + -- ["1969-7-20T20:9:55"] = { -- Type = "StaticRotation", -- Rotation = {-1.3773, 0.0042, -0.3557} -- }, - -- ['1969-7-20T20:9:57'] = { + -- ["1969-7-20T20:9:57"] = { -- Type = "StaticRotation", -- Rotation = {-1.3677, 0.0184, -0.2218} -- }, - -- ['1969-7-20T20:9:59'] = { + -- ["1969-7-20T20:9:59"] = { -- Type = "StaticRotation", -- Rotation = {-1.3606, -0.0117, -0.0861} -- }, - -- ['1969-7-20T20:10:1'] = { + -- ["1969-7-20T20:10:1"] = { -- Type = "StaticRotation", -- Rotation = {-1.3587, -0.0222, -0.0219} -- }, - -- ['1969-7-20T20:10:3'] = { + -- ["1969-7-20T20:10:3"] = { -- Type = "StaticRotation", -- Rotation = {-1.3622, -0.0207, -0.0533} -- }, - -- ['1969-7-20T20:10:5'] = { + -- ["1969-7-20T20:10:5"] = { -- Type = "StaticRotation", -- Rotation = {-1.3639, -0.0032, -0.0640} -- }, - -- ['1969-7-20T20:10:7'] = { + -- ["1969-7-20T20:10:7"] = { -- Type = "StaticRotation", -- Rotation = {-1.3612, 0.0178, -0.0685} -- }, - -- ['1969-7-20T20:10:9'] = { + -- ["1969-7-20T20:10:9"] = { -- Type = "StaticRotation", -- Rotation = {-1.3571, 0.0196, -0.0796} -- }, - -- ['1969-7-20T20:10:11'] = { + -- ["1969-7-20T20:10:11"] = { -- Type = "StaticRotation", -- Rotation = {-1.3484, 0.0029, -0.0913} -- }, - -- ['1969-7-20T20:10:13'] = { + -- ["1969-7-20T20:10:13"] = { -- Type = "StaticRotation", -- Rotation = {-1.3597, -0.0149, -0.0832} -- }, - -- ['1969-7-20T20:10:15'] = { + -- ["1969-7-20T20:10:15"] = { -- Type = "StaticRotation", -- Rotation = {-1.3587, -0.0220, -0.0679} -- }, - -- ['1969-7-20T20:10:17'] = { + -- ["1969-7-20T20:10:17"] = { -- Type = "StaticRotation", -- Rotation = {-1.3482, -0.0121, -0.0736} -- }, - -- ['1969-7-20T20:10:19'] = { + -- ["1969-7-20T20:10:19"] = { -- Type = "StaticRotation", -- Rotation = {-1.3520, -0.0098, -0.0876} -- }, - -- ['1969-7-20T20:10:21'] = { + -- ["1969-7-20T20:10:21"] = { -- Type = "StaticRotation", -- Rotation = {-1.3503, -0.0240, -0.0872} -- }, - -- ['1969-7-20T20:10:25'] = { + -- ["1969-7-20T20:10:25"] = { -- Type = "StaticRotation", -- Rotation = {-1.3470, 0.0245, -0.0545} -- }, - -- ['1969-7-20T20:10:27'] = { + -- ["1969-7-20T20:10:27"] = { -- Type = "StaticRotation", -- Rotation = {-1.3420, 0.0115, -0.0518} -- }, - -- ['1969-7-20T20:10:29'] = { + -- ["1969-7-20T20:10:29"] = { -- Type = "StaticRotation", -- Rotation = {-1.3294, -0.0153, -0.0556} -- }, - -- ['1969-7-20T20:10:31'] = { + -- ["1969-7-20T20:10:31"] = { -- Type = "StaticRotation", -- Rotation = {-1.3399, -0.0136, -0.0573} -- }, - -- ['1969-7-20T20:10:33'] = { + -- ["1969-7-20T20:10:33"] = { -- Type = "StaticRotation", -- Rotation = {-1.3459, 0.0002, -0.0569} -- }, - -- ['1969-7-20T20:10:35'] = { + -- ["1969-7-20T20:10:35"] = { -- Type = "StaticRotation", -- Rotation = {-1.3440, 0.0012, -0.0542} -- }, - -- ['1969-7-20T20:10:37'] = { + -- ["1969-7-20T20:10:37"] = { -- Type = "StaticRotation", -- Rotation = {-1.3230, -0.0096, -0.0527} -- }, - -- ['1969-7-20T20:10:39'] = { + -- ["1969-7-20T20:10:39"] = { -- Type = "StaticRotation", -- Rotation = {-1.2966, -0.0119, -0.0510} -- }, - -- ['1969-7-20T20:10:41'] = { + -- ["1969-7-20T20:10:41"] = { -- Type = "StaticRotation", -- Rotation = {-1.3146, -0.0040, -0.0504} -- }, - -- ['1969-7-20T20:10:43'] = { + -- ["1969-7-20T20:10:43"] = { -- Type = "StaticRotation", -- Rotation = {-1.3355, -0.0015, -0.0514} -- }, - -- ['1969-7-20T20:10:45'] = { + -- ["1969-7-20T20:10:45"] = { -- Type = "StaticRotation", -- Rotation = {-1.2916, 0.0061, -0.0516} -- }, - -- ['1969-7-20T20:10:47'] = { + -- ["1969-7-20T20:10:47"] = { -- Type = "StaticRotation", -- Rotation = {-1.2901, -0.0257, -0.0516} -- }, - -- ['1969-7-20T20:10:49'] = { + -- ["1969-7-20T20:10:49"] = { -- Type = "StaticRotation", -- Rotation = {-1.2818, -0.0123, -0.0495} -- }, - -- ['1969-7-20T20:10:51'] = { + -- ["1969-7-20T20:10:51"] = { -- Type = "StaticRotation", -- Rotation = {-1.2682, 0.0058, -0.0477} -- }, - -- ['1969-7-20T20:10:53'] = { + -- ["1969-7-20T20:10:53"] = { -- Type = "StaticRotation", -- Rotation = {-1.2732, 0.0035, -0.0195} -- }, - -- ['1969-7-20T20:10:54'] = { + -- ["1969-7-20T20:10:54"] = { -- Type = "StaticRotation", -- Rotation = {-1.2740, 0.0029, 0.0123} -- }, - -- ['1969-7-20T20:10:55'] = { + -- ["1969-7-20T20:10:55"] = { -- Type = "StaticRotation", -- Rotation = {-1.2778, 0.0035, 0.0234} -- }, - -- ['1969-7-20T20:10:57'] = { + -- ["1969-7-20T20:10:57"] = { -- Type = "StaticRotation", -- Rotation = {-1.2573, 0.0069, 0.0174} -- }, - -- ['1969-7-20T20:10:58'] = { + -- ["1969-7-20T20:10:58"] = { -- Type = "StaticRotation", -- Rotation = {-1.2515, -0.0023, 0.0115} -- }, - -- ['1969-7-20T20:10:59'] = { + -- ["1969-7-20T20:10:59"] = { -- Type = "StaticRotation", -- Rotation = {-1.2333, -0.0092, 0.0092} -- }, - -- ['1969-7-20T20:11:0'] = { + -- ["1969-7-20T20:11:0"] = { -- Type = "StaticRotation", -- Rotation = {-1.2191, -0.0157, 0.0056} -- }, - -- ['1969-7-20T20:11:1'] = { + -- ["1969-7-20T20:11:1"] = { -- Type = "StaticRotation", -- Rotation = {-1.2246, -0.0195, 0.0029} -- }, - -- ['1969-7-20T20:11:3'] = { + -- ["1969-7-20T20:11:3"] = { -- Type = "StaticRotation", -- Rotation = {-1.2419, -0.0146, -0.0019} -- }, - -- ['1969-7-20T20:11:5'] = { + -- ["1969-7-20T20:11:5"] = { -- Type = "StaticRotation", -- Rotation = {-1.2274, -0.0054, -0.0048} -- }, - -- ['1969-7-20T20:11:6'] = { + -- ["1969-7-20T20:11:6"] = { -- Type = "StaticRotation", -- Rotation = {-1.2218, -0.0042, -0.0056} -- }, - -- ['1969-7-20T20:11:7'] = { + -- ["1969-7-20T20:11:7"] = { -- Type = "StaticRotation", -- Rotation = {-1.2047, 0.0010, -0.0065} -- }, - -- ['1969-7-20T20:11:7'] = { + -- ["1969-7-20T20:11:7"] = { -- Type = "StaticRotation", -- Rotation = {-1.2042, -0.0054, -0.0069} -- }, - -- ['1969-7-20T20:11:9'] = { + -- ["1969-7-20T20:11:9"] = { -- Type = "StaticRotation", -- Rotation = {-1.2007, -0.0100, -0.0077} -- }, - -- ['1969-7-20T20:11:11'] = { + -- ["1969-7-20T20:11:11"] = { -- Type = "StaticRotation", -- Rotation = {-1.2136, -0.0173, -0.0077} -- }, - -- ['1969-7-20T20:11:11'] = { + -- ["1969-7-20T20:11:11"] = { -- Type = "StaticRotation", -- Rotation = {-1.2013, -0.0021, -0.0077} -- }, - -- ['1969-7-20T20:11:13'] = { + -- ["1969-7-20T20:11:13"] = { -- Type = "StaticRotation", -- Rotation = {-1.1928, 0.0102, -0.0056} -- }, - -- ['1969-7-20T20:11:13'] = { + -- ["1969-7-20T20:11:13"] = { -- Type = "StaticRotation", -- Rotation = {-1.1854, 0.0090, -0.0057} -- }, - -- ['1969-7-20T20:11:15'] = { + -- ["1969-7-20T20:11:15"] = { -- Type = "StaticRotation", -- Rotation = {-1.1856, -0.0075, -0.0044} -- }, - -- ['1969-7-20T20:11:17'] = { + -- ["1969-7-20T20:11:17"] = { -- Type = "StaticRotation", -- Rotation = {-1.1670, -0.0157, -0.0023} -- }, - -- ['1969-7-20T20:11:17'] = { + -- ["1969-7-20T20:11:17"] = { -- Type = "StaticRotation", -- Rotation = {-1.1599, -0.0149, 0.0012} -- }, - -- ['1969-7-20T20:11:19'] = { + -- ["1969-7-20T20:11:19"] = { -- Type = "StaticRotation", -- Rotation = {-1.1514, -0.0119, 0.0012} -- }, - -- ['1969-7-20T20:11:19'] = { + -- ["1969-7-20T20:11:19"] = { -- Type = "StaticRotation", -- Rotation = {-1.1465, -0.0094, 0.0040} -- }, - -- ['1969-7-20T20:11:21'] = { + -- ["1969-7-20T20:11:21"] = { -- Type = "StaticRotation", -- Rotation = {-1.1593, -0.0176, 0.0063} -- }, - -- ['1969-7-20T20:11:23'] = { + -- ["1969-7-20T20:11:23"] = { -- Type = "StaticRotation", -- Rotation = {-1.1712, -0.0144, 0.0132} -- }, - -- ['1969-7-20T20:11:24'] = { + -- ["1969-7-20T20:11:24"] = { -- Type = "StaticRotation", -- Rotation = {-1.1727, -0.0052, 0.0176} -- }, - -- ['1969-7-20T20:11:25'] = { + -- ["1969-7-20T20:11:25"] = { -- Type = "StaticRotation", -- Rotation = {-1.1652, 0.0083, 0.0190} -- }, - -- ['1969-7-20T20:11:26'] = { + -- ["1969-7-20T20:11:26"] = { -- Type = "StaticRotation", -- Rotation = {-1.1827, -0.0044, 0.0178} -- }, - -- ['1969-7-20T20:11:27'] = { + -- ["1969-7-20T20:11:27"] = { -- Type = "StaticRotation", -- Rotation = {-1.1942, -0.0172, 0.0180} -- }, - -- ['1969-7-20T20:11:29'] = { + -- ["1969-7-20T20:11:29"] = { -- Type = "StaticRotation", -- Rotation = {-1.1788, -0.0071, 0.0188} -- }, - -- ['1969-7-20T20:11:30'] = { + -- ["1969-7-20T20:11:30"] = { -- Type = "StaticRotation", -- Rotation = {-1.1639, 0.0035, 0.0176} -- }, - -- ['1969-7-20T20:11:31'] = { + -- ["1969-7-20T20:11:31"] = { -- Type = "StaticRotation", -- Rotation = {-1.1614, 0.0048, 0.0178} -- }, - -- ['1969-7-20T20:11:31'] = { + -- ["1969-7-20T20:11:31"] = { -- Type = "StaticRotation", -- Rotation = {-1.1551, 0.0083, 0.0169} -- }, - -- ['1969-7-20T20:11:33'] = { + -- ["1969-7-20T20:11:33"] = { -- Type = "StaticRotation", -- Rotation = {-1.1643, 0.0060, 0.0175} -- }, - -- ['1969-7-20T20:11:35'] = { + -- ["1969-7-20T20:11:35"] = { -- Type = "StaticRotation", -- Rotation = {-1.1746, 0.0006, 0.0173} -- }, - -- ['1969-7-20T20:11:35'] = { + -- ["1969-7-20T20:11:35"] = { -- Type = "StaticRotation", -- Rotation = {-1.1679, -0.0008, 0.0178} -- }, - -- ['1969-7-20T20:11:37'] = { + -- ["1969-7-20T20:11:37"] = { -- Type = "StaticRotation", -- Rotation = {-1.1735, -0.0127, 0.0173} -- }, - -- ['1969-7-20T20:11:37'] = { + -- ["1969-7-20T20:11:37"] = { -- Type = "StaticRotation", -- Rotation = {-1.1599, -0.0044, 0.0186} -- }, - -- ['1969-7-20T20:11:39'] = { + -- ["1969-7-20T20:11:39"] = { -- Type = "StaticRotation", -- Rotation = {-1.1545, 0.0012, 0.0167} -- }, - -- ['1969-7-20T20:11:39'] = { + -- ["1969-7-20T20:11:39"] = { -- Type = "StaticRotation", -- Rotation = {-1.1461, 0.0075, 0.0169} -- }, - -- ['1969-7-20T20:11:41'] = { + -- ["1969-7-20T20:11:41"] = { -- Type = "StaticRotation", -- Rotation = {-1.1470, 0.0012, 0.0155} -- }, - -- ['1969-7-20T20:11:41'] = { + -- ["1969-7-20T20:11:41"] = { -- Type = "StaticRotation", -- Rotation = {-1.1442, -0.0086, 0.0148} -- }, - -- ['1969-7-20T20:11:43'] = { + -- ["1969-7-20T20:11:43"] = { -- Type = "StaticRotation", -- Rotation = {-1.1411, -0.0236, 0.0142} -- }, - -- ['1969-7-20T20:11:43'] = { + -- ["1969-7-20T20:11:43"] = { -- Type = "StaticRotation", -- Rotation = {-1.1302, -0.0240, 0.0131} -- }, - -- ['1969-7-20T20:11:45'] = { + -- ["1969-7-20T20:11:45"] = { -- Type = "StaticRotation", -- Rotation = {-1.1098, -0.0115, 0.0140} -- }, - -- ['1969-7-20T20:11:45'] = { + -- ["1969-7-20T20:11:45"] = { -- Type = "StaticRotation", -- Rotation = {-1.1043, -0.0088, 0.0134} -- }, - -- ['1969-7-20T20:11:47'] = { + -- ["1969-7-20T20:11:47"] = { -- Type = "StaticRotation", -- Rotation = {-1.0979, -0.0025, 0.0144} -- }, - -- ['1969-7-20T20:11:47'] = { + -- ["1969-7-20T20:11:47"] = { -- Type = "StaticRotation", -- Rotation = {-1.1092, -0.0125, 0.0144} -- }, - -- ['1969-7-20T20:11:49'] = { + -- ["1969-7-20T20:11:49"] = { -- Type = "StaticRotation", -- Rotation = {-1.1175, -0.0205, 0.0146} -- }, - -- ['1969-7-20T20:11:49'] = { + -- ["1969-7-20T20:11:49"] = { -- Type = "StaticRotation", -- Rotation = {-1.1230, -0.0249, 0.0157} -- }, - -- ['1969-7-20T20:11:51'] = { + -- ["1969-7-20T20:11:51"] = { -- Type = "StaticRotation", -- Rotation = {-1.1099, -0.0119, 0.0161} -- }, - -- ['1969-7-20T20:11:51'] = { + -- ["1969-7-20T20:11:51"] = { -- Type = "StaticRotation", -- Rotation = {-1.1056, -0.0071, 0.0167} -- }, - -- ['1969-7-20T20:11:53'] = { + -- ["1969-7-20T20:11:53"] = { -- Type = "StaticRotation", -- Rotation = {-1.0916, 0.0044, 0.0131} -- }, - -- ['1969-7-20T20:11:53'] = { + -- ["1969-7-20T20:11:53"] = { -- Type = "StaticRotation", -- Rotation = {-1.0901, 0.0073, 0.0111} -- }, - -- ['1969-7-20T20:11:55'] = { + -- ["1969-7-20T20:11:55"] = { -- Type = "StaticRotation", -- Rotation = {-1.0839, 0.0040, 0.0075} -- }, - -- ['1969-7-20T20:11:55'] = { + -- ["1969-7-20T20:11:55"] = { -- Type = "StaticRotation", -- Rotation = {-1.0832, 0.0015, 0.0050} -- }, - -- ['1969-7-20T20:11:57'] = { + -- ["1969-7-20T20:11:57"] = { -- Type = "StaticRotation", -- Rotation = {-1.0831, -0.0109, 0.0003} -- }, - -- ['1969-7-20T20:11:57'] = { + -- ["1969-7-20T20:11:57"] = { -- Type = "StaticRotation", -- Rotation = {-1.0812, -0.0147, -0.0009} -- }, - -- ['1969-7-20T20:11:59'] = { + -- ["1969-7-20T20:11:59"] = { -- Type = "StaticRotation", -- Rotation = {-1.0814, -0.0278, -0.0031} -- }, - -- ['1969-7-20T20:11:59'] = { + -- ["1969-7-20T20:11:59"] = { -- Type = "StaticRotation", -- Rotation = {-1.0696, -0.0224, -0.0050} -- }, - -- ['1969-7-20T20:12:1'] = { + -- ["1969-7-20T20:12:1"] = { -- Type = "StaticRotation", -- Rotation = {-1.0617, -0.0242, -0.0067} -- }, - -- ['1969-7-20T20:12:1'] = { + -- ["1969-7-20T20:12:1"] = { -- Type = "StaticRotation", -- Rotation = {-1.0508, -0.0174, -0.0075} -- }, - -- ['1969-7-20T20:12:3'] = { + -- ["1969-7-20T20:12:3"] = { -- Type = "StaticRotation", -- Rotation = {-1.0523, -0.0174, -0.0094} -- }, - -- ['1969-7-20T20:12:3'] = { + -- ["1969-7-20T20:12:3"] = { -- Type = "StaticRotation", -- Rotation = {-1.0466, -0.0117, -0.0094} -- }, - -- ['1969-7-20T20:12:5'] = { + -- ["1969-7-20T20:12:5"] = { -- Type = "StaticRotation", -- Rotation = {-1.0565, -0.0107, -0.0109} -- }, - -- ['1969-7-20T20:12:5'] = { + -- ["1969-7-20T20:12:5"] = { -- Type = "StaticRotation", -- Rotation = {-1.0559, -0.0080, -0.0109} -- }, - -- ['1969-7-20T20:12:7'] = { + -- ["1969-7-20T20:12:7"] = { -- Type = "StaticRotation", -- Rotation = {-1.0686, -0.0065, -0.0113} -- }, - -- ['1969-7-20T20:12:7'] = { + -- ["1969-7-20T20:12:7"] = { -- Type = "StaticRotation", -- Rotation = {-1.0692, -0.0082, -0.0115} -- }, - -- ['1969-7-20T20:12:9'] = { + -- ["1969-7-20T20:12:9"] = { -- Type = "StaticRotation", -- Rotation = {-1.0722, -0.0075, -0.0107} -- }, - -- ['1969-7-20T20:12:9'] = { + -- ["1969-7-20T20:12:9"] = { -- Type = "StaticRotation", -- Rotation = {-1.0707, -0.0144, -0.0113} -- }, - -- ['1969-7-20T20:12:11'] = { + -- ["1969-7-20T20:12:11"] = { -- Type = "StaticRotation", -- Rotation = {-1.0630, -0.0153, -0.0103} -- }, - -- ['1969-7-20T20:12:11'] = { + -- ["1969-7-20T20:12:11"] = { -- Type = "StaticRotation", -- Rotation = {-1.0605, -0.0261, -0.0102} -- }, - -- ['1969-7-20T20:12:13'] = { + -- ["1969-7-20T20:12:13"] = { -- Type = "StaticRotation", -- Rotation = {-1.0441, -0.0305, -0.0096} -- }, - -- ['1969-7-20T20:12:13'] = { + -- ["1969-7-20T20:12:13"] = { -- Type = "StaticRotation", -- Rotation = {-1.0427, -0.0410, -0.0086} -- }, - -- ['1969-7-20T20:12:15'] = { + -- ["1969-7-20T20:12:15"] = { -- Type = "StaticRotation", -- Rotation = {-1.0283, -0.0228, -0.0075} -- }, - -- ['1969-7-20T20:12:15'] = { + -- ["1969-7-20T20:12:15"] = { -- Type = "StaticRotation", -- Rotation = {-1.0329, -0.0178, -0.0050} -- }, - -- ['1969-7-20T20:12:17'] = { + -- ["1969-7-20T20:12:17"] = { -- Type = "StaticRotation", -- Rotation = {-1.0260, -0.0009, -0.0027} -- }, - -- ['1969-7-20T20:12:17'] = { + -- ["1969-7-20T20:12:17"] = { -- Type = "StaticRotation", -- Rotation = {-1.0404, -0.0059, -0.0004} -- }, - -- ['1969-7-20T20:12:19'] = { + -- ["1969-7-20T20:12:19"] = { -- Type = "StaticRotation", -- Rotation = {-1.0467, -0.0140, 0.0023} -- }, - -- ['1969-7-20T20:12:19'] = { + -- ["1969-7-20T20:12:19"] = { -- Type = "StaticRotation", -- Rotation = {-1.0584, -0.0220, 0.0044} -- }, - -- ['1969-7-20T20:12:21'] = { + -- ["1969-7-20T20:12:21"] = { -- Type = "StaticRotation", -- Rotation = {-1.0416, -0.0176, 0.0088} -- }, - -- ['1969-7-20T20:12:21'] = { + -- ["1969-7-20T20:12:21"] = { -- Type = "StaticRotation", -- Rotation = {-1.0370, -0.0102, 0.0104} -- }, - -- ['1969-7-20T20:12:23'] = { + -- ["1969-7-20T20:12:23"] = { -- Type = "StaticRotation", -- Rotation = {-1.0222, -0.0063, 0.0121} -- }, - -- ['1969-7-20T20:12:23'] = { + -- ["1969-7-20T20:12:23"] = { -- Type = "StaticRotation", -- Rotation = {-1.0193, 0.0006, 0.0108} -- }, - -- ['1969-7-20T20:12:25'] = { + -- ["1969-7-20T20:12:25"] = { -- Type = "StaticRotation", -- Rotation = {-1.0166, -0.0059, 0.0098} -- }, - -- ['1969-7-20T20:12:25'] = { + -- ["1969-7-20T20:12:25"] = { -- Type = "StaticRotation", -- Rotation = {-1.0164, -0.0038, 0.0092} -- }, - -- ['1969-7-20T20:12:27'] = { + -- ["1969-7-20T20:12:27"] = { -- Type = "StaticRotation", -- Rotation = {-1.0237, -0.0188, 0.0081} -- }, - -- ['1969-7-20T20:12:27'] = { + -- ["1969-7-20T20:12:27"] = { -- Type = "StaticRotation", -- Rotation = {-1.0249, -0.0199, 0.0081} -- }, - -- ['1969-7-20T20:12:29'] = { + -- ["1969-7-20T20:12:29"] = { -- Type = "StaticRotation", -- Rotation = {-1.0329, -0.0330, 0.0077} -- }, - -- ['1969-7-20T20:12:29'] = { + -- ["1969-7-20T20:12:29"] = { -- Type = "StaticRotation", -- Rotation = {-1.0209, -0.0255, 0.0079} -- }, - -- ['1969-7-20T20:12:31'] = { + -- ["1969-7-20T20:12:31"] = { -- Type = "StaticRotation", -- Rotation = {-1.0157, -0.0205, 0.0084} -- }, - -- ['1969-7-20T20:12:31'] = { + -- ["1969-7-20T20:12:31"] = { -- Type = "StaticRotation", -- Rotation = {-1.0034, -0.0159, 0.0092} -- }, - -- ['1969-7-20T20:12:33'] = { + -- ["1969-7-20T20:12:33"] = { -- Type = "StaticRotation", -- Rotation = {-1.0044, -0.0136, 0.0106} -- }, - -- ['1969-7-20T20:12:33'] = { + -- ["1969-7-20T20:12:33"] = { -- Type = "StaticRotation", -- Rotation = {-0.9963, -0.0161, 0.0096} -- }, - -- ['1969-7-20T20:12:35'] = { + -- ["1969-7-20T20:12:35"] = { -- Type = "StaticRotation", -- Rotation = {-1.0036, -0.0180, 0.0084} -- }, - -- ['1969-7-20T20:12:35'] = { + -- ["1969-7-20T20:12:35"] = { -- Type = "StaticRotation", -- Rotation = {-0.9998, -0.0253, 0.0073} -- }, - -- ['1969-7-20T20:12:37'] = { + -- ["1969-7-20T20:12:37"] = { -- Type = "StaticRotation", -- Rotation = {-1.0088, -0.0265, 0.0065} -- }, - -- ['1969-7-20T20:12:37'] = { + -- ["1969-7-20T20:12:37"] = { -- Type = "StaticRotation", -- Rotation = {-1.0105, -0.0339, 0.0065} -- }, - -- ['1969-7-20T20:12:39'] = { + -- ["1969-7-20T20:12:39"] = { -- Type = "StaticRotation", -- Rotation = {-1.0230, -0.0280, 0.0060} -- }, - -- ['1969-7-20T20:12:39'] = { + -- ["1969-7-20T20:12:39"] = { -- Type = "StaticRotation", -- Rotation = {-1.0253, -0.0282, 0.0067} -- }, - -- ['1969-7-20T20:12:41'] = { + -- ["1969-7-20T20:12:41"] = { -- Type = "StaticRotation", -- Rotation = {-1.0216, -0.0071, 0.0067} -- }, - -- ['1969-7-20T20:12:42'] = { + -- ["1969-7-20T20:12:42"] = { -- Type = "StaticRotation", -- Rotation = {-1.0118, -0.0115, 0.0079} -- }, - -- ['1969-7-20T20:12:43'] = { + -- ["1969-7-20T20:12:43"] = { -- Type = "StaticRotation", -- Rotation = {-0.9946, -0.0098, 0.0077} -- }, - -- ['1969-7-20T20:12:43'] = { + -- ["1969-7-20T20:12:43"] = { -- Type = "StaticRotation", -- Rotation = {-0.9927, -0.0172, 0.0081} -- }, - -- ['1969-7-20T20:12:45'] = { + -- ["1969-7-20T20:12:45"] = { -- Type = "StaticRotation", -- Rotation = {-0.9890, -0.0147, 0.0094} -- }, - -- ['1969-7-20T20:12:45'] = { + -- ["1969-7-20T20:12:45"] = { -- Type = "StaticRotation", -- Rotation = {-1.0046, -0.0125, 0.0094} -- }, - -- ['1969-7-20T20:12:47'] = { + -- ["1969-7-20T20:12:47"] = { -- Type = "StaticRotation", -- Rotation = {-1.0109, -0.0048, 0.0104} -- }, - -- ['1969-7-20T20:12:47'] = { + -- ["1969-7-20T20:12:47"] = { -- Type = "StaticRotation", -- Rotation = {-1.0186, -0.0057, 0.0083} -- }, - -- ['1969-7-20T20:12:49'] = { + -- ["1969-7-20T20:12:49"] = { -- Type = "StaticRotation", -- Rotation = {-0.9940, -0.0226, 0.0048} -- }, - -- ['1969-7-20T20:12:49'] = { + -- ["1969-7-20T20:12:49"] = { -- Type = "StaticRotation", -- Rotation = {-0.9861, -0.0278, 0.0023} -- }, - -- ['1969-7-20T20:12:51'] = { + -- ["1969-7-20T20:12:51"] = { -- Type = "StaticRotation", -- Rotation = {-0.9712, -0.0301, 0.0000} -- }, - -- ['1969-7-20T20:12:51'] = { + -- ["1969-7-20T20:12:51"] = { -- Type = "StaticRotation", -- Rotation = {-0.9768, -0.0176, -0.0013} -- }, - -- ['1969-7-20T20:12:53'] = { + -- ["1969-7-20T20:12:53"] = { -- Type = "StaticRotation", -- Rotation = {-0.9791, -0.0088, -0.0025} -- }, - -- ['1969-7-20T20:12:53'] = { + -- ["1969-7-20T20:12:53"] = { -- Type = "StaticRotation", -- Rotation = {-0.9890, -0.0017, -0.0036} -- }, - -- ['1969-7-20T20:12:55'] = { + -- ["1969-7-20T20:12:55"] = { -- Type = "StaticRotation", -- Rotation = {-0.9906, -0.0245, -0.0056} -- }, - -- ['1969-7-20T20:12:55'] = { + -- ["1969-7-20T20:12:55"] = { -- Type = "StaticRotation", -- Rotation = {-0.9892, -0.0303, -0.0067} -- }, - -- ['1969-7-20T20:12:57'] = { + -- ["1969-7-20T20:12:57"] = { -- Type = "StaticRotation", -- Rotation = {-0.9852, -0.0470, -0.0086} -- }, - -- ['1969-7-20T20:12:57'] = { + -- ["1969-7-20T20:12:57"] = { -- Type = "StaticRotation", -- Rotation = {-0.9837, -0.0307, -0.0088} -- }, - -- ['1969-7-20T20:12:59'] = { + -- ["1969-7-20T20:12:59"] = { -- Type = "StaticRotation", -- Rotation = {-0.9873, -0.0128, -0.0090} -- }, - -- ['1969-7-20T20:12:59'] = { + -- ["1969-7-20T20:12:59"] = { -- Type = "StaticRotation", -- Rotation = {-0.9861, 0.0010, -0.0088} -- }, - -- ['1969-7-20T20:13:1'] = { + -- ["1969-7-20T20:13:1"] = { -- Type = "StaticRotation", -- Rotation = {-0.9944, -0.0117, -0.0094} -- }, - -- ['1969-7-20T20:13:1'] = { + -- ["1969-7-20T20:13:1"] = { -- Type = "StaticRotation", -- Rotation = {-0.9900, -0.0194, -0.0100} -- }, - -- ['1969-7-20T20:13:3'] = { + -- ["1969-7-20T20:13:3"] = { -- Type = "StaticRotation", -- Rotation = {-0.9917, -0.0355, -0.0103} -- }, - -- ['1969-7-20T20:13:3'] = { + -- ["1969-7-20T20:13:3"] = { -- Type = "StaticRotation", -- Rotation = {-0.9856, -0.0395, -0.0105} -- }, - -- ['1969-7-20T20:13:5'] = { + -- ["1969-7-20T20:13:5"] = { -- Type = "StaticRotation", -- Rotation = {-0.9969, -0.0299, -0.0096} -- }, - -- ['1969-7-20T20:13:5'] = { + -- ["1969-7-20T20:13:5"] = { -- Type = "StaticRotation", -- Rotation = {-0.9965, -0.0228, -0.0088} -- }, - -- ['1969-7-20T20:13:7'] = { + -- ["1969-7-20T20:13:7"] = { -- Type = "StaticRotation", -- Rotation = {-1.0015, -0.0073, -0.0075} -- }, - -- ['1969-7-20T20:13:7'] = { + -- ["1969-7-20T20:13:7"] = { -- Type = "StaticRotation", -- Rotation = {-0.9908, -0.0098, -0.0067} -- }, - -- ['1969-7-20T20:13:9'] = { + -- ["1969-7-20T20:13:9"] = { -- Type = "StaticRotation", -- Rotation = {-0.9814, -0.0034, -0.0057} -- }, - -- ['1969-7-20T20:13:9'] = { + -- ["1969-7-20T20:13:9"] = { -- Type = "StaticRotation", -- Rotation = {-0.9729, -0.0071, -0.0044} -- }, - -- ['1969-7-20T20:13:11'] = { + -- ["1969-7-20T20:13:11"] = { -- Type = "StaticRotation", -- Rotation = {-0.9716, -0.0002, -0.0029} -- }, - -- ['1969-7-20T20:13:11'] = { + -- ["1969-7-20T20:13:11"] = { -- Type = "StaticRotation", -- Rotation = {-0.9729, -0.0044, -0.0013} -- }, - -- ['1969-7-20T20:13:13'] = { + -- ["1969-7-20T20:13:13"] = { -- Type = "StaticRotation", -- Rotation = {-0.9793, 0.0010, 0.0006} -- }, - -- ['1969-7-20T20:13:14'] = { + -- ["1969-7-20T20:13:14"] = { -- Type = "StaticRotation", -- Rotation = {-0.9869, -0.0040, 0.0031} -- }, - -- ['1969-7-20T20:13:15'] = { + -- ["1969-7-20T20:13:15"] = { -- Type = "StaticRotation", -- Rotation = {-0.9938, -0.0031, 0.0048} -- }, - -- ['1969-7-20T20:13:15'] = { + -- ["1969-7-20T20:13:15"] = { -- Type = "StaticRotation", -- Rotation = {-0.9978, -0.0134, 0.0067} -- }, - -- ['1969-7-20T20:13:17'] = { + -- ["1969-7-20T20:13:17"] = { -- Type = "StaticRotation", -- Rotation = {-0.9881, -0.0334, 0.0048} -- }, - -- ['1969-7-20T20:13:17'] = { + -- ["1969-7-20T20:13:17"] = { -- Type = "StaticRotation", -- Rotation = {-0.9881, -0.0449, 0.0023} -- }, - -- ['1969-7-20T20:13:19'] = { + -- ["1969-7-20T20:13:19"] = { -- Type = "StaticRotation", -- Rotation = {-0.9756, -0.0447, -0.0015} -- }, - -- ['1969-7-20T20:13:19'] = { + -- ["1969-7-20T20:13:19"] = { -- Type = "StaticRotation", -- Rotation = {-0.9804, -0.0351, -0.0034} -- }, - -- ['1969-7-20T20:13:21'] = { + -- ["1969-7-20T20:13:21"] = { -- Type = "StaticRotation", -- Rotation = {-0.9769, -0.0269, -0.0052} -- }, - -- ['1969-7-20T20:13:21'] = { + -- ["1969-7-20T20:13:21"] = { -- Type = "StaticRotation", -- Rotation = {-0.9816, -0.0182, -0.0073} -- }, - -- ['1969-7-20T20:13:23'] = { + -- ["1969-7-20T20:13:23"] = { -- Type = "StaticRotation", -- Rotation = {-0.9783, -0.0192, -0.0084} -- }, - -- ['1969-7-20T20:13:23'] = { + -- ["1969-7-20T20:13:23"] = { -- Type = "StaticRotation", -- Rotation = {-0.9808, -0.0149, -0.0103} -- }, - -- ['1969-7-20T20:13:25'] = { + -- ["1969-7-20T20:13:25"] = { -- Type = "StaticRotation", -- Rotation = {-0.9771, -0.0197, -0.0117} -- }, - -- ['1969-7-20T20:13:25'] = { + -- ["1969-7-20T20:13:25"] = { -- Type = "StaticRotation", -- Rotation = {-0.9748, -0.0171, -0.0127} -- }, - -- ['1969-7-20T20:13:27'] = { + -- ["1969-7-20T20:13:27"] = { -- Type = "StaticRotation", -- Rotation = {-0.9710, -0.0197, -0.0144} -- }, - -- ['1969-7-20T20:13:27'] = { + -- ["1969-7-20T20:13:27"] = { -- Type = "StaticRotation", -- Rotation = {-0.9643, -0.0186, -0.0146} -- }, - -- ['1969-7-20T20:13:29'] = { + -- ["1969-7-20T20:13:29"] = { -- Type = "StaticRotation", -- Rotation = {-0.9616, -0.0165, -0.0159} -- }, - -- ['1969-7-20T20:13:29'] = { + -- ["1969-7-20T20:13:29"] = { -- Type = "StaticRotation", -- Rotation = {-0.9534, -0.0163, -0.0159} -- }, - -- ['1969-7-20T20:13:31'] = { + -- ["1969-7-20T20:13:31"] = { -- Type = "StaticRotation", -- Rotation = {-0.9605, -0.0096, -0.0165} -- }, - -- ['1969-7-20T20:13:41'] = { + -- ["1969-7-20T20:13:41"] = { -- Type = "StaticRotation", -- Rotation = {-0.8092, -0.0297, -0.0155} -- }, - -- ['1969-7-20T20:13:41'] = { + -- ["1969-7-20T20:13:41"] = { -- Type = "StaticRotation", -- Rotation = {-0.8097, -0.0389, -0.0149} -- }, - -- ['1969-7-20T20:13:43'] = { + -- ["1969-7-20T20:13:43"] = { -- Type = "StaticRotation", -- Rotation = {-0.7923, -0.0358, -0.0138} -- }, - -- ['1969-7-20T20:13:43'] = { + -- ["1969-7-20T20:13:43"] = { -- Type = "StaticRotation", -- Rotation = {-0.7988, -0.0267, -0.0125} -- }, - -- ['1969-7-20T20:13:45'] = { + -- ["1969-7-20T20:13:45"] = { -- Type = "StaticRotation", -- Rotation = {-0.7909, -0.0128, -0.0094} -- }, - -- ['1969-7-20T20:13:45'] = { + -- ["1969-7-20T20:13:45"] = { -- Type = "StaticRotation", -- Rotation = {-0.7967, -0.0061, -0.0080} -- }, - -- ['1969-7-20T20:13:47'] = { + -- ["1969-7-20T20:13:47"] = { -- Type = "StaticRotation", -- Rotation = {-0.7748, -0.0207, -0.0056} -- }, - -- ['1969-7-20T20:13:47'] = { + -- ["1969-7-20T20:13:47"] = { -- Type = "StaticRotation", -- Rotation = {-0.7681, -0.0278, -0.0048} -- }, - -- ['1969-7-20T20:13:49'] = { + -- ["1969-7-20T20:13:49"] = { -- Type = "StaticRotation", -- Rotation = {-0.7574, -0.0426, -0.0027} -- }, - -- ['1969-7-20T20:13:49'] = { + -- ["1969-7-20T20:13:49"] = { -- Type = "StaticRotation", -- Rotation = {-0.7582, -0.0364, -0.0004} -- }, - -- ['1969-7-20T20:13:51'] = { + -- ["1969-7-20T20:13:51"] = { -- Type = "StaticRotation", -- Rotation = {-0.7699, -0.0324, 0.0036} -- }, - -- ['1969-7-20T20:13:51'] = { + -- ["1969-7-20T20:13:51"] = { -- Type = "StaticRotation", -- Rotation = {-0.7676, -0.0245, 0.0040} -- }, - -- ['1969-7-20T20:13:53'] = { + -- ["1969-7-20T20:13:53"] = { -- Type = "StaticRotation", -- Rotation = {-0.7733, -0.0194, 0.0023} -- }, - -- ['1969-7-20T20:13:53'] = { + -- ["1969-7-20T20:13:53"] = { -- Type = "StaticRotation", -- Rotation = {-0.7574, -0.0207, 0.0008} -- }, - -- ['1969-7-20T20:13:55'] = { + -- ["1969-7-20T20:13:55"] = { -- Type = "StaticRotation", -- Rotation = {-0.7440, -0.0310, -0.0017} -- }, - -- ['1969-7-20T20:13:55'] = { + -- ["1969-7-20T20:13:55"] = { -- Type = "StaticRotation", -- Rotation = {-0.7405, -0.0569, -0.0044} -- }, - -- ['1969-7-20T20:13:57'] = { + -- ["1969-7-20T20:13:57"] = { -- Type = "StaticRotation", -- Rotation = {-0.7549, -0.0587, -0.0054} -- }, - -- ['1969-7-20T20:13:57'] = { + -- ["1969-7-20T20:13:57"] = { -- Type = "StaticRotation", -- Rotation = {-0.7518, -0.0326, -0.0046} -- }, - -- ['1969-7-20T20:13:59'] = { + -- ["1969-7-20T20:13:59"] = { -- Type = "StaticRotation", -- Rotation = {-0.7465, 0.0040, -0.0050} -- }, - -- ['1969-7-20T20:13:59'] = { + -- ["1969-7-20T20:13:59"] = { -- Type = "StaticRotation", -- Rotation = {-0.7465, 0.0113, -0.0050} -- }, - -- ['1969-7-20T20:14:1'] = { + -- ["1969-7-20T20:14:1"] = { -- Type = "StaticRotation", -- Rotation = {-0.6939, 0.0029, -0.0063} -- }, - -- ['1969-7-20T20:14:2'] = { + -- ["1969-7-20T20:14:2"] = { -- Type = "StaticRotation", -- Rotation = {-0.6912, 0.0079, -0.0079} -- }, - -- ['1969-7-20T20:14:3'] = { + -- ["1969-7-20T20:14:3"] = { -- Type = "StaticRotation", -- Rotation = {-0.6793, 0.0048, -0.0077} -- }, - -- ['1969-7-20T20:14:4'] = { + -- ["1969-7-20T20:14:4"] = { -- Type = "StaticRotation", -- Rotation = {-0.6817, 0.0090, -0.0098} -- }, - -- ['1969-7-20T20:14:5'] = { + -- ["1969-7-20T20:14:5"] = { -- Type = "StaticRotation", -- Rotation = {-0.6730, 0.0117, -0.0090} -- }, - -- ['1969-7-20T20:14:6'] = { + -- ["1969-7-20T20:14:6"] = { -- Type = "StaticRotation", -- Rotation = {-0.6684, 0.0102, -0.0096} -- }, - -- ['1969-7-20T20:14:7'] = { + -- ["1969-7-20T20:14:7"] = { -- Type = "StaticRotation", -- Rotation = {-0.6604, 0.0115, -0.0109} -- }, - -- ['1969-7-20T20:14:7'] = { + -- ["1969-7-20T20:14:7"] = { -- Type = "StaticRotation", -- Rotation = {-0.6418, 0.0006, -0.0098} -- }, - -- ['1969-7-20T20:14:9'] = { + -- ["1969-7-20T20:14:9"] = { -- Type = "StaticRotation", -- Rotation = {-0.6301, -0.0067, -0.0121} -- }, - -- ['1969-7-20T20:14:10'] = { + -- ["1969-7-20T20:14:10"] = { -- Type = "StaticRotation", -- Rotation = {-0.6128, -0.0142, -0.0119} -- }, - -- ['1969-7-20T20:14:11'] = { + -- ["1969-7-20T20:14:11"] = { -- Type = "StaticRotation", -- Rotation = {-0.6180, -0.0134, -0.0119} -- }, - -- ['1969-7-20T20:14:12'] = { + -- ["1969-7-20T20:14:12"] = { -- Type = "StaticRotation", -- Rotation = {-0.6249, -0.0057, -0.0121} -- }, - -- ['1969-7-20T20:14:13'] = { + -- ["1969-7-20T20:14:13"] = { -- Type = "StaticRotation", -- Rotation = {-0.6299, -0.0057, -0.0098} -- }, - -- ['1969-7-20T20:14:14'] = { + -- ["1969-7-20T20:14:14"] = { -- Type = "StaticRotation", -- Rotation = {-0.6437, -0.0009, -0.0100} -- }, - -- ['1969-7-20T20:14:15'] = { + -- ["1969-7-20T20:14:15"] = { -- Type = "StaticRotation", -- Rotation = {-0.6328, -0.0105, -0.0100} -- }, - -- ['1969-7-20T20:14:16'] = { + -- ["1969-7-20T20:14:16"] = { -- Type = "StaticRotation", -- Rotation = {-0.6285, -0.0232, -0.0088} -- }, - -- ['1969-7-20T20:14:17'] = { + -- ["1969-7-20T20:14:17"] = { -- Type = "StaticRotation", -- Rotation = {-0.6195, -0.0291, -0.0117} -- }, - -- ['1969-7-20T20:14:18'] = { + -- ["1969-7-20T20:14:18"] = { -- Type = "StaticRotation", -- Rotation = {-0.6073, -0.0374, -0.0127} -- }, - -- ['1969-7-20T20:14:19'] = { + -- ["1969-7-20T20:14:19"] = { -- Type = "StaticRotation", -- Rotation = {-0.6027, -0.0362, -0.0132} -- }, - -- ['1969-7-20T20:14:20'] = { + -- ["1969-7-20T20:14:20"] = { -- Type = "StaticRotation", -- Rotation = {-0.5892, -0.0314, -0.0147} -- }, - -- ['1969-7-20T20:14:21'] = { + -- ["1969-7-20T20:14:21"] = { -- Type = "StaticRotation", -- Rotation = {-0.5829, -0.0096, -0.0157} -- }, - -- ['1969-7-20T20:14:23'] = { + -- ["1969-7-20T20:14:23"] = { -- Type = "StaticRotation", -- Rotation = {-0.5674, 0.0119, -0.0263} -- }, - -- ['1969-7-20T20:14:23'] = { + -- ["1969-7-20T20:14:23"] = { -- Type = "StaticRotation", -- Rotation = {-0.5674, 0.0261, -0.0324} -- }, - -- ['1969-7-20T20:14:25'] = { + -- ["1969-7-20T20:14:25"] = { -- Type = "StaticRotation", -- Rotation = {-0.5637, 0.0232, -0.0439} -- }, - -- ['1969-7-20T20:14:26'] = { + -- ["1969-7-20T20:14:26"] = { -- Type = "StaticRotation", -- Rotation = {-0.5670, 0.0081, -0.0525} -- }, - -- ['1969-7-20T20:14:27'] = { + -- ["1969-7-20T20:14:27"] = { -- Type = "StaticRotation", -- Rotation = {-0.5739, 0.0013, -0.0564} -- }, - -- ['1969-7-20T20:14:28'] = { + -- ["1969-7-20T20:14:28"] = { -- Type = "StaticRotation", -- Rotation = {-0.5660, -0.0021, -0.0587} -- }, - -- ['1969-7-20T20:14:29'] = { + -- ["1969-7-20T20:14:29"] = { -- Type = "StaticRotation", -- Rotation = {-0.5603, -0.0025, -0.0604} -- }, - -- ['1969-7-20T20:14:30'] = { + -- ["1969-7-20T20:14:30"] = { -- Type = "StaticRotation", -- Rotation = {-0.5394, 0.0092, -0.0562} -- }, - ['1969-7-20T20:10:00'] = { + ["1969-7-20T20:10:00"] = { Type = "StaticRotation", Rotation = {0, 0, 1.5708} }, - ['1969-7-20T20:12:10'] = { + ["1969-7-20T20:12:10"] = { Type = "StaticRotation", Rotation = {0, 0, 1.5708} }, - ['1969-7-20T20:12:14'] = { + ["1969-7-20T20:12:14"] = { Type = "StaticRotation", Rotation = {0, 0, 1.5708} }, - ['1969-7-20T20:14:30'] = { + ["1969-7-20T20:14:30"] = { Type = "StaticRotation", Rotation = {0, 0, 1.5708} }, - ['1969-7-20T20:14:31'] = { + ["1969-7-20T20:14:31"] = { Type = "StaticRotation", Rotation = {-0.5133, 0.0131, -0.0531} }, - ['1969-7-20T20:14:32'] = { + ["1969-7-20T20:14:32"] = { Type = "StaticRotation", Rotation = {-0.5043, 0.0117, -0.0487} }, - ['1969-7-20T20:14:33'] = { + ["1969-7-20T20:14:33"] = { Type = "StaticRotation", Rotation = {-0.4893, 0.0090, -0.0447} }, - ['1969-7-20T20:14:33'] = { + ["1969-7-20T20:14:33"] = { Type = "StaticRotation", Rotation = {-0.4851, -0.0008, -0.0429} }, - ['1969-7-20T20:14:35'] = { + ["1969-7-20T20:14:35"] = { Type = "StaticRotation", Rotation = {-0.4865, -0.0057, -0.0382} }, - ['1969-7-20T20:14:35'] = { + ["1969-7-20T20:14:35"] = { Type = "StaticRotation", Rotation = {-0.4788, -0.0073, -0.0345} }, - ['1969-7-20T20:14:37'] = { + ["1969-7-20T20:14:37"] = { Type = "StaticRotation", Rotation = {-0.4824, -0.0130, -0.0307} }, - ['1969-7-20T20:14:37'] = { + ["1969-7-20T20:14:37"] = { Type = "StaticRotation", Rotation = {-0.4836, -0.0103, -0.0268} }, - ['1969-7-20T20:14:39'] = { + ["1969-7-20T20:14:39"] = { Type = "StaticRotation", Rotation = {-0.4792, -0.0121, -0.0203} }, - ['1969-7-20T20:14:40'] = { + ["1969-7-20T20:14:40"] = { Type = "StaticRotation", Rotation = {-0.4874, -0.0140, -0.0211} }, - ['1969-7-20T20:14:41'] = { + ["1969-7-20T20:14:41"] = { Type = "StaticRotation", Rotation = {-0.5030, 0.0002, -0.0209} }, - ['1969-7-20T20:14:42'] = { + ["1969-7-20T20:14:42"] = { Type = "StaticRotation", Rotation = {-0.5361, -0.0040, -0.0209} }, - ['1969-7-20T20:14:44'] = { + ["1969-7-20T20:14:44"] = { Type = "StaticRotation", Rotation = {-0.4715, -0.0040, -0.0234} }, - ['1969-7-20T20:14:45'] = { + ["1969-7-20T20:14:45"] = { Type = "StaticRotation", Rotation = {-0.4433, -0.0050, -0.0238} }, - ['1969-7-20T20:14:46'] = { + ["1969-7-20T20:14:46"] = { Type = "StaticRotation", Rotation = {-0.4280, -0.0019, -0.0268} }, - ['1969-7-20T20:14:47'] = { + ["1969-7-20T20:14:47"] = { Type = "StaticRotation", Rotation = {-0.4310, -0.0069, -0.0259} }, - ['1969-7-20T20:14:48'] = { + ["1969-7-20T20:14:48"] = { Type = "StaticRotation", Rotation = {-0.4389, -0.0147, -0.0257} }, - ['1969-7-20T20:14:49'] = { + ["1969-7-20T20:14:49"] = { Type = "StaticRotation", Rotation = {-0.4519, -0.0178, -0.0287} }, - ['1969-7-20T20:14:50'] = { + ["1969-7-20T20:14:50"] = { Type = "StaticRotation", Rotation = {-0.4579, -0.0201, -0.0278} }, - ['1969-7-20T20:14:51'] = { + ["1969-7-20T20:14:51"] = { Type = "StaticRotation", Rotation = {-0.4554, -0.0147, -0.0265} }, - ['1969-7-20T20:14:52'] = { + ["1969-7-20T20:14:52"] = { Type = "StaticRotation", Rotation = {-0.4468, -0.0084, -0.0284} }, - ['1969-7-20T20:14:53'] = { + ["1969-7-20T20:14:53"] = { Type = "StaticRotation", Rotation = {-0.4316, -0.0127, -0.0268} }, - ['1969-7-20T20:14:53'] = { + ["1969-7-20T20:14:53"] = { Type = "StaticRotation", Rotation = {-0.4228, -0.0171, -0.0255} }, - ['1969-7-20T20:14:55'] = { + ["1969-7-20T20:14:55"] = { Type = "StaticRotation", Rotation = {-0.4046, -0.0174, -0.0274} }, - ['1969-7-20T20:14:57'] = { + ["1969-7-20T20:14:57"] = { Type = "StaticRotation", Rotation = {-0.3806, -0.0211, -0.0243} }, - ['1969-7-20T20:14:57'] = { + ["1969-7-20T20:14:57"] = { Type = "StaticRotation", Rotation = {-0.3751, -0.0178, -0.0249} }, - ['1969-7-20T20:14:59'] = { + ["1969-7-20T20:14:59"] = { Type = "StaticRotation", Rotation = {-0.3670, -0.0153, -0.0230} }, - ['1969-7-20T20:14:59'] = { + ["1969-7-20T20:14:59"] = { Type = "StaticRotation", Rotation = {-0.3641, -0.0100, -0.0209} }, - ['1969-7-20T20:15:1'] = { + ["1969-7-20T20:15:1"] = { Type = "StaticRotation", Rotation = {-0.3526, -0.0021, -0.0207} }, - ['1969-7-20T20:15:1'] = { + ["1969-7-20T20:15:1"] = { Type = "StaticRotation", Rotation = {-0.3457, -0.0038, -0.0195} }, - ['1969-7-20T20:15:3'] = { + ["1969-7-20T20:15:3"] = { Type = "StaticRotation", Rotation = {-0.3371, -0.0038, -0.0161} }, - ['1969-7-20T20:15:3'] = { + ["1969-7-20T20:15:3"] = { Type = "StaticRotation", Rotation = {-0.3309, -0.0015, -0.0192} }, - ['1969-7-20T20:15:5'] = { + ["1969-7-20T20:15:5"] = { Type = "StaticRotation", Rotation = {-0.3263, -0.0096, -0.0232} }, - ['1969-7-20T20:15:5'] = { + ["1969-7-20T20:15:5"] = { Type = "StaticRotation", Rotation = {-0.3240, 0.0015, -0.0243} }, - ['1969-7-20T20:15:7'] = { + ["1969-7-20T20:15:7"] = { Type = "StaticRotation", Rotation = {-0.3160, 0.0061, -0.0295} }, - ['1969-7-20T20:15:7'] = { + ["1969-7-20T20:15:7"] = { Type = "StaticRotation", Rotation = {-0.3135, 0.0035, -0.0318} }, - ['1969-7-20T20:15:9'] = { + ["1969-7-20T20:15:9"] = { Type = "StaticRotation", Rotation = {-0.3074, 0.0108, -0.0341} }, - ['1969-7-20T20:15:9'] = { + ["1969-7-20T20:15:9"] = { Type = "StaticRotation", Rotation = {-0.3022, 0.0027, -0.0360} }, - ['1969-7-20T20:15:11'] = { + ["1969-7-20T20:15:11"] = { Type = "StaticRotation", Rotation = {-0.2995, -0.0061, -0.0406} }, - ['1969-7-20T20:15:11'] = { + ["1969-7-20T20:15:11"] = { Type = "StaticRotation", Rotation = {-0.2976, -0.0098, -0.0416} }, - ['1969-7-20T20:15:13'] = { + ["1969-7-20T20:15:13"] = { Type = "StaticRotation", Rotation = {-0.2901, -0.0127, -0.0447} }, - ['1969-7-20T20:15:14'] = { + ["1969-7-20T20:15:14"] = { Type = "StaticRotation", Rotation = {-0.2886, -0.0169, -0.0470} }, - ['1969-7-20T20:15:15'] = { + ["1969-7-20T20:15:15"] = { Type = "StaticRotation", Rotation = {-0.2700, -0.0174, -0.0491} }, - ['1969-7-20T20:15:15'] = { + ["1969-7-20T20:15:15"] = { Type = "StaticRotation", Rotation = {-0.2107, -0.0119, -0.0512} }, - ['1969-7-20T20:15:17'] = { + ["1969-7-20T20:15:17"] = { Type = "StaticRotation", Rotation = {-0.1630, -0.0123, -0.0560} }, - ['1969-7-20T20:15:18'] = { + ["1969-7-20T20:15:18"] = { Type = "StaticRotation", Rotation = {-0.1101, -0.0077, -0.0583} }, - ['1969-7-20T20:15:19'] = { + ["1969-7-20T20:15:19"] = { Type = "StaticRotation", Rotation = {-0.0868, -0.0029, -0.0613} }, - ['1969-7-20T20:15:19'] = { + ["1969-7-20T20:15:19"] = { Type = "StaticRotation", Rotation = {-0.0893, -0.0036, -0.0642} }, - ['1969-7-20T20:15:21'] = { + ["1969-7-20T20:15:21"] = { Type = "StaticRotation", Rotation = {-0.0892, -0.0029, -0.0675} }, - ['1969-7-20T20:15:21'] = { + ["1969-7-20T20:15:21"] = { Type = "StaticRotation", Rotation = {-0.0970, -0.0004, -0.0698} }, - ['1969-7-20T20:15:23'] = { + ["1969-7-20T20:15:23"] = { Type = "StaticRotation", Rotation = {-0.1020, -0.0079, -0.0736} }, - ['1969-7-20T20:15:24'] = { + ["1969-7-20T20:15:24"] = { Type = "StaticRotation", Rotation = {-0.0959, -0.0069, -0.0771} }, - ['1969-7-20T20:15:25'] = { + ["1969-7-20T20:15:25"] = { Type = "StaticRotation", Rotation = {-0.0999, -0.0057, -0.0794} }, - ['1969-7-20T20:15:26'] = { + ["1969-7-20T20:15:26"] = { Type = "StaticRotation", Rotation = {-0.1001, -0.0075, -0.0828} }, - ['1969-7-20T20:15:27'] = { + ["1969-7-20T20:15:27"] = { Type = "StaticRotation", Rotation = {-0.0966, -0.0067, -0.0849} }, - ['1969-7-20T20:15:28'] = { + ["1969-7-20T20:15:28"] = { Type = "StaticRotation", Rotation = {-0.1039, -0.0050, -0.0876} }, - ['1969-7-20T20:15:29'] = { + ["1969-7-20T20:15:29"] = { Type = "StaticRotation", Rotation = {-0.1055, -0.0059, -0.0893} }, - ['1969-7-20T20:15:30'] = { + ["1969-7-20T20:15:30"] = { Type = "StaticRotation", Rotation = {-0.1010, -0.0050, -0.0909} }, - ['1969-7-20T20:15:31'] = { + ["1969-7-20T20:15:31"] = { Type = "StaticRotation", Rotation = {-0.1066, -0.0036, -0.0903} }, - ['1969-7-20T20:15:32'] = { + ["1969-7-20T20:15:32"] = { Type = "StaticRotation", Rotation = {-0.1106, -0.0032, -0.0882} }, - ['1969-7-20T20:15:33'] = { + ["1969-7-20T20:15:33"] = { Type = "StaticRotation", Rotation = {-0.1074, -0.0019, -0.0874} }, - ['1969-7-20T20:15:34'] = { + ["1969-7-20T20:15:34"] = { Type = "StaticRotation", Rotation = {-0.1131, 0.0021, -0.0857} }, - ['1969-7-20T20:15:35'] = { + ["1969-7-20T20:15:35"] = { Type = "StaticRotation", Rotation = {-0.1193, 0.0036, -0.0842} }, - ['1969-7-20T20:15:36'] = { + ["1969-7-20T20:15:36"] = { Type = "StaticRotation", Rotation = {-0.1193, 0.0083, -0.0819} }, - ['1969-7-20T20:15:37'] = { + ["1969-7-20T20:15:37"] = { Type = "StaticRotation", Rotation = {-0.1233, 0.0129, -0.0809} }, - ['1969-7-20T20:15:38'] = { + ["1969-7-20T20:15:38"] = { Type = "StaticRotation", Rotation = {-0.1365, 0.0194, -0.0786} }, - ['1969-7-20T20:15:39'] = { + ["1969-7-20T20:15:39"] = { Type = "StaticRotation", Rotation = {-0.1334, 0.0230, -0.0765} }, - ['1969-7-20T20:15:40'] = { + ["1969-7-20T20:15:40"] = { Type = "StaticRotation", Rotation = {-0.1267, 0.0257, -0.0744} }, - ['1969-7-20T20:15:41'] = { + ["1969-7-20T20:15:41"] = { Type = "StaticRotation", Rotation = {-0.1271, 0.0288, -0.0732} }, - ['1969-7-20T20:15:42'] = { + ["1969-7-20T20:15:42"] = { Type = "StaticRotation", Rotation = {-0.1206, 0.0272, -0.0700} }, - ['1969-7-20T20:15:43'] = { + ["1969-7-20T20:15:43"] = { Type = "StaticRotation", Rotation = {-0.1465, 0.0244, -0.0692} }, - ['1969-7-20T20:15:44'] = { + ["1969-7-20T20:15:44"] = { Type = "StaticRotation", Rotation = {-0.1931, 0.0217, -0.0692} }, - ['1969-7-20T20:15:45'] = { + ["1969-7-20T20:15:45"] = { Type = "StaticRotation", Rotation = {-0.1981, 0.0205, -0.0679} }, - ['1969-7-20T20:15:46'] = { + ["1969-7-20T20:15:46"] = { Type = "StaticRotation", Rotation = {-0.2048, 0.0173, -0.0656} }, - ['1969-7-20T20:15:47'] = { + ["1969-7-20T20:15:47"] = { Type = "StaticRotation", Rotation = {-0.2151, 0.0169, -0.0650} }, - ['1969-7-20T20:15:48'] = { + ["1969-7-20T20:15:48"] = { Type = "StaticRotation", Rotation = {-0.2385, 0.0132, -0.0633} }, - ['1969-7-20T20:15:49'] = { + ["1969-7-20T20:15:49"] = { Type = "StaticRotation", Rotation = {-0.2590, 0.0092, -0.0623} }, - ['1969-7-20T20:15:50'] = { + ["1969-7-20T20:15:50"] = { Type = "StaticRotation", Rotation = {-0.2607, 0.0077, -0.0608} }, - ['1969-7-20T20:15:51'] = { + ["1969-7-20T20:15:51"] = { Type = "StaticRotation", Rotation = {-0.2646, 0.0056, -0.0600} }, - ['1969-7-20T20:15:52'] = { + ["1969-7-20T20:15:52"] = { Type = "StaticRotation", Rotation = {-0.2680, 0.0004, -0.0575} }, - ['1969-7-20T20:15:53'] = { + ["1969-7-20T20:15:53"] = { Type = "StaticRotation", Rotation = {-0.2682, -0.0011, -0.0560} }, - ['1969-7-20T20:15:54'] = { + ["1969-7-20T20:15:54"] = { Type = "StaticRotation", Rotation = {-0.2742, -0.0044, -0.0543} }, - ['1969-7-20T20:15:55'] = { + ["1969-7-20T20:15:55"] = { Type = "StaticRotation", Rotation = {-0.2757, -0.0061, -0.0522} }, - ['1969-7-20T20:15:56'] = { + ["1969-7-20T20:15:56"] = { Type = "StaticRotation", Rotation = {-0.2727, -0.0065, -0.0491} }, - ['1969-7-20T20:15:57'] = { + ["1969-7-20T20:15:57"] = { Type = "StaticRotation", Rotation = {-0.2724, -0.0063, -0.0474} }, - ['1969-7-20T20:15:58'] = { + ["1969-7-20T20:15:58"] = { Type = "StaticRotation", Rotation = {-0.2732, -0.0077, -0.0445} }, - ['1969-7-20T20:15:59'] = { + ["1969-7-20T20:15:59"] = { Type = "StaticRotation", Rotation = {-0.2709, -0.0092, -0.0420} }, - ['1969-7-20T20:16:0'] = { + ["1969-7-20T20:16:0"] = { Type = "StaticRotation", Rotation = {-0.2690, -0.0102, -0.0387} }, - ['1969-7-20T20:16:1'] = { + ["1969-7-20T20:16:1"] = { Type = "StaticRotation", Rotation = {-0.2704, -0.0115, -0.0368} }, - ['1969-7-20T20:16:2'] = { + ["1969-7-20T20:16:2"] = { Type = "StaticRotation", Rotation = {-0.2704, -0.0142, -0.0332} }, - ['1969-7-20T20:16:3'] = { + ["1969-7-20T20:16:3"] = { Type = "StaticRotation", Rotation = {-0.2700, -0.0153, -0.0305} }, - ['1969-7-20T20:16:4'] = { + ["1969-7-20T20:16:4"] = { Type = "StaticRotation", Rotation = {-0.2736, -0.0176, -0.0268} }, - ['1969-7-20T20:16:5'] = { + ["1969-7-20T20:16:5"] = { Type = "StaticRotation", Rotation = {-0.2752, -0.0199, -0.0243} }, - ['1969-7-20T20:16:6'] = { + ["1969-7-20T20:16:6"] = { Type = "StaticRotation", Rotation = {-0.2752, -0.0238, -0.0207} }, - ['1969-7-20T20:16:7'] = { + ["1969-7-20T20:16:7"] = { Type = "StaticRotation", Rotation = {-0.2702, -0.0245, -0.0205} }, - ['1969-7-20T20:16:8'] = { + ["1969-7-20T20:16:8"] = { Type = "StaticRotation", Rotation = {-0.1841, -0.0217, -0.0219} }, - ['1969-7-20T20:16:9'] = { + ["1969-7-20T20:16:9"] = { Type = "StaticRotation", Rotation = {-0.1632, -0.0217, -0.0226} }, - ['1969-7-20T20:16:26'] = { + ["1969-7-20T20:16:26"] = { Type = "StaticRotation", Rotation = {-0.0989, -0.0184, -0.0391} }, - ['1969-7-20T20:16:27'] = { + ["1969-7-20T20:16:27"] = { Type = "StaticRotation", Rotation = {-0.0968, -0.0167, -0.0393} }, - ['1969-7-20T20:16:28'] = { + ["1969-7-20T20:16:28"] = { Type = "StaticRotation", Rotation = {-0.0171, -0.0103, -0.0406} }, - ['1969-7-20T20:16:29'] = { + ["1969-7-20T20:16:29"] = { Type = "StaticRotation", Rotation = {-0.0157, -0.0105, -0.0412} }, - ['1969-7-20T20:16:30'] = { + ["1969-7-20T20:16:30"] = { Type = "StaticRotation", Rotation = {0.0127, -0.0103, -0.0427} }, - ['1969-7-20T20:16:31'] = { + ["1969-7-20T20:16:31"] = { Type = "StaticRotation", Rotation = {0.0134, -0.0147, -0.0433} }, - ['1969-7-20T20:16:32'] = { + ["1969-7-20T20:16:32"] = { Type = "StaticRotation", Rotation = {0.0042, -0.0370, -0.0470} }, - ['1969-7-20T20:16:33'] = { + ["1969-7-20T20:16:33"] = { Type = "StaticRotation", Rotation = {0.0092, -0.0506, -0.0487} }, - ['1969-7-20T20:16:34'] = { + ["1969-7-20T20:16:34"] = { Type = "StaticRotation", Rotation = {0.0244, -0.0512, -0.0510} }, - ['1969-7-20T20:16:35'] = { + ["1969-7-20T20:16:35"] = { Type = "StaticRotation", Rotation = {0.0042, -0.0546, -0.0512} }, - ['1969-7-20T20:16:36'] = { + ["1969-7-20T20:16:36"] = { Type = "StaticRotation", Rotation = {-0.0006, -0.0558, -0.0533} }, - ['1969-7-20T20:16:37'] = { + ["1969-7-20T20:16:37"] = { Type = "StaticRotation", Rotation = {0.0050, -0.0522, -0.0543} }, - ['1969-7-20T20:16:38'] = { + ["1969-7-20T20:16:38"] = { Type = "StaticRotation", Rotation = {0.0077, -0.0343, -0.0548} }, - ['1969-7-20T20:16:39'] = { + ["1969-7-20T20:16:39"] = { Type = "StaticRotation", Rotation = {-0.0004, -0.0155, -0.0550} }, - ['1969-7-20T20:16:40'] = { + ["1969-7-20T20:16:40"] = { Type = "StaticRotation", Rotation = {0.0036, -0.0105, -0.0571} }, - ['1969-7-20T20:16:41'] = { + ["1969-7-20T20:16:41"] = { Type = "StaticRotation", Rotation = {-0.0080, -0.0086, -0.0579} }, - ['1969-7-20T20:16:42'] = { + ["1969-7-20T20:16:42"] = { Type = "StaticRotation", Rotation = {-0.0698, -0.0140, -0.0604} }, - ['1969-7-20T20:16:43'] = { + ["1969-7-20T20:16:43"] = { Type = "StaticRotation", Rotation = {-0.0579, -0.0134, -0.0623} }, - ['1969-7-20T20:16:44'] = { + ["1969-7-20T20:16:44"] = { Type = "StaticRotation", Rotation = {-0.0462, -0.0090, -0.0648} }, - ['1969-7-20T20:16:45'] = { + ["1969-7-20T20:16:45"] = { Type = "StaticRotation", Rotation = {-0.0466, -0.0067, -0.0665} }, - ['1969-7-20T20:16:46'] = { + ["1969-7-20T20:16:46"] = { Type = "StaticRotation", Rotation = {-0.0529, -0.0027, -0.0694} }, - ['1969-7-20T20:16:47'] = { + ["1969-7-20T20:16:47"] = { Type = "StaticRotation", Rotation = {-0.0518, 0.0079, -0.0707} }, - ['1969-7-20T20:16:48'] = { + ["1969-7-20T20:16:48"] = { Type = "StaticRotation", Rotation = {-0.0602, 0.0299, -0.0729} }, - ['1969-7-20T20:16:49'] = { + ["1969-7-20T20:16:49"] = { Type = "StaticRotation", Rotation = {-0.0510, 0.0562, -0.0729} }, - ['1969-7-20T20:16:50'] = { + ["1969-7-20T20:16:50"] = { Type = "StaticRotation", Rotation = {-0.0539, 0.0562, -0.0765} }, - ['1969-7-20T20:16:51'] = { + ["1969-7-20T20:16:51"] = { Type = "StaticRotation", Rotation = {-0.0928, 0.0545, -0.0813} }, - ['1969-7-20T20:16:52'] = { + ["1969-7-20T20:16:52"] = { Type = "StaticRotation", Rotation = {-0.0886, 0.0560, -0.0844} }, - ['1969-7-20T20:16:53'] = { + ["1969-7-20T20:16:53"] = { Type = "StaticRotation", Rotation = {-0.0832, 0.0552, -0.0865} }, - ['1969-7-20T20:16:54'] = { + ["1969-7-20T20:16:54"] = { Type = "StaticRotation", Rotation = {-0.0805, 0.0573, -0.0899} }, - ['1969-7-20T20:16:55'] = { + ["1969-7-20T20:16:55"] = { Type = "StaticRotation", Rotation = {-0.0784, 0.0614, -0.0924} }, - ['1969-7-20T20:16:56'] = { + ["1969-7-20T20:16:56"] = { Type = "StaticRotation", Rotation = {-0.0729, 0.0635, -0.0945} }, - ['1969-7-20T20:16:57'] = { + ["1969-7-20T20:16:57"] = { Type = "StaticRotation", Rotation = {-0.0792, 0.0627, -0.0976} }, - ['1969-7-20T20:17:7'] = { + ["1969-7-20T20:17:7"] = { Type = "StaticRotation", Rotation = {-0.1056, -0.0366, -0.1402} }, - ['1969-7-20T20:17:7'] = { + ["1969-7-20T20:17:7"] = { Type = "StaticRotation", Rotation = {-0.1053, -0.0395, -0.1428} }, - ['1969-7-20T20:17:9'] = { + ["1969-7-20T20:17:9"] = { Type = "StaticRotation", Rotation = {-0.0725, -0.0314, -0.1503} }, - ['1969-7-20T20:17:9'] = { + ["1969-7-20T20:17:9"] = { Type = "StaticRotation", Rotation = {-0.0259, -0.0270, -0.1542} }, - ['1969-7-20T20:17:11'] = { + ["1969-7-20T20:17:11"] = { Type = "StaticRotation", Rotation = {0.0874, -0.0059, -0.1614} }, - ['1969-7-20T20:17:12'] = { + ["1969-7-20T20:17:12"] = { Type = "StaticRotation", Rotation = {0.0769, -0.0096, -0.1678} }, - ['1969-7-20T20:17:13'] = { + ["1969-7-20T20:17:13"] = { Type = "StaticRotation", Rotation = {0.0740, -0.0270, -0.1743} }, - ['1969-7-20T20:17:14'] = { + ["1969-7-20T20:17:14"] = { Type = "StaticRotation", Rotation = {0.0673, -0.0458, -0.1810} }, - ['1969-7-20T20:17:15'] = { + ["1969-7-20T20:17:15"] = { Type = "StaticRotation", Rotation = {0.0550, -0.0506, -0.1860} }, - ['1969-7-20T20:17:16'] = { + ["1969-7-20T20:17:16"] = { Type = "StaticRotation", Rotation = {0.0449, -0.0577, -0.1931} }, - ['1969-7-20T20:17:17'] = { + ["1969-7-20T20:17:17"] = { Type = "StaticRotation", Rotation = {0.0437, -0.0617, -0.1967} }, - ['1969-7-20T20:17:18'] = { + ["1969-7-20T20:17:18"] = { Type = "StaticRotation", Rotation = {0.0297, -0.0650, -0.2027} }, - ['1969-7-20T20:17:19'] = { + ["1969-7-20T20:17:19"] = { Type = "StaticRotation", Rotation = {0.0203, -0.0518, -0.2061} }, - ['1969-7-20T20:17:20'] = { + ["1969-7-20T20:17:20"] = { Type = "StaticRotation", Rotation = {0.0211, -0.0201, -0.2109} }, - ['1969-7-20T20:17:21'] = { + ["1969-7-20T20:17:21"] = { Type = "StaticRotation", Rotation = {0.0228, -0.0197, -0.2159} }, - ['1969-7-20T20:17:22'] = { + ["1969-7-20T20:17:22"] = { Type = "StaticRotation", Rotation = {-0.0201, -0.0257, -0.2230} }, - ['1969-7-20T20:17:23'] = { + ["1969-7-20T20:17:23"] = { Type = "StaticRotation", Rotation = {-0.0299, -0.0125, -0.2287} }, - ['1969-7-20T20:17:24'] = { + ["1969-7-20T20:17:24"] = { Type = "StaticRotation", Rotation = {-0.0368, -0.0025, -0.2355} }, - ['1969-7-20T20:17:25'] = { + ["1969-7-20T20:17:25"] = { Type = "StaticRotation", Rotation = {-0.0464, 0.0209, -0.2408} }, - ['1969-7-20T20:17:26'] = { + ["1969-7-20T20:17:26"] = { Type = "StaticRotation", Rotation = {-0.0548, 0.0474, -0.2472} }, - ['1969-7-20T20:17:27'] = { + ["1969-7-20T20:17:27"] = { Type = "StaticRotation", Rotation = {-0.0535, 0.0464, -0.2481} }, - ['1969-7-20T20:17:28'] = { + ["1969-7-20T20:17:28"] = { Type = "StaticRotation", Rotation = {-0.0512, 0.0508, -0.2491} }, - ['1969-7-20T20:17:29'] = { + ["1969-7-20T20:17:29"] = { Type = "StaticRotation", Rotation = {-0.0625, 0.0781, -0.2504} }, - ['1969-7-20T20:17:30'] = { + ["1969-7-20T20:17:30"] = { Type = "StaticRotation", Rotation = {-0.0811, 0.0711, -0.2531} }, - ['1969-7-20T20:17:31'] = { + ["1969-7-20T20:17:31"] = { Type = "StaticRotation", Rotation = {-0.0855, 0.0692, -0.2544} }, - ['1969-7-20T20:17:32'] = { + ["1969-7-20T20:17:32"] = { Type = "StaticRotation", Rotation = {-0.0940, 0.0673, -0.2569} }, - ['1969-7-20T20:17:33'] = { + ["1969-7-20T20:17:33"] = { Type = "StaticRotation", Rotation = {-0.0963, 0.0648, -0.2587} }, - ['1969-7-20T20:17:34'] = { + ["1969-7-20T20:17:34"] = { Type = "StaticRotation", Rotation = {-0.0909, 0.0619, -0.2587} }, - ['1969-7-20T20:17:35'] = { + ["1969-7-20T20:17:35"] = { Type = "StaticRotation", Rotation = {-0.0832, 0.0602, -0.2585} }, - ['1969-7-20T20:17:36'] = { + ["1969-7-20T20:17:36"] = { Type = "StaticRotation", Rotation = {-0.0761, 0.0326, -0.2602} }, - ['1969-7-20T20:17:37'] = { + ["1969-7-20T20:17:37"] = { Type = "StaticRotation", Rotation = {-0.0612, 0.0013, -0.2635} }, - ['1969-7-20T20:17:38'] = { + ["1969-7-20T20:17:38"] = { Type = "StaticRotation", Rotation = {-0.0274, -0.0079, -0.2727} }, - ['1969-7-20T20:17:39'] = { + ["1969-7-20T20:17:39"] = { Type = "StaticRotation", Rotation = {-0.0061, -0.0470, -0.2732} }, - ['1969-7-20T20:17:40'] = { + ["1969-7-20T20:17:40"] = { Type = "StaticRotation", Rotation = {-0.0794, -0.0088, -0.2447} - }, + } }) diff --git a/data/assets/scene/solarsystem/missions/apollo/11/lem_flipbook.asset b/data/assets/scene/solarsystem/missions/apollo/11/lem_flipbook.asset index 29972a0ab0..3172e6c417 100644 --- a/data/assets/scene/solarsystem/missions/apollo/11/lem_flipbook.asset +++ b/data/assets/scene/solarsystem/missions/apollo/11/lem_flipbook.asset @@ -1,5 +1,5 @@ -local helper = asset.require('util/vrt_flipbook_helper') -local moon_asset = asset.require('scene/solarsystem/planets/earth/moon/moon') +local helper = asset.require("util/vrt_flipbook_helper") +local moon_asset = asset.require("scene/solarsystem/planets/earth/moon/moon") local assetPrefix = "A11flip"; local assetGlobe = moon_asset.Moon.Identifier; diff --git a/data/assets/scene/solarsystem/missions/apollo/11/models.asset b/data/assets/scene/solarsystem/missions/apollo/11/models.asset deleted file mode 100644 index 46b87d9ba3..0000000000 --- a/data/assets/scene/solarsystem/missions/apollo/11/models.asset +++ /dev/null @@ -1,8 +0,0 @@ -local modelFolder = asset.syncedResource({ - Name = "Apollo Models", - Type = "HttpSynchronization", - Identifier = "apollo_11_models", - Version = 1 -}) - -asset.export('models', modelFolder) diff --git a/data/assets/scene/solarsystem/missions/apollo/15/apollo15.asset b/data/assets/scene/solarsystem/missions/apollo/15/apollo15.asset index 0fe0283e1e..2b5595e354 100644 --- a/data/assets/scene/solarsystem/missions/apollo/15/apollo15.asset +++ b/data/assets/scene/solarsystem/missions/apollo/15/apollo15.asset @@ -1,10 +1,15 @@ -local assetHelper = asset.require('util/asset_helper') -local moon_transforms = asset.require('scene/solarsystem/planets/earth/moon/moon') -local sun_transforms = asset.require('scene/solarsystem/sun/transforms') -asset.require('spice/base') -local models = asset.require('scene/solarsystem/missions/apollo/csm_model').models +local moon_transforms = asset.require("scene/solarsystem/planets/earth/moon/moon") +local sun_transforms = asset.require("scene/solarsystem/sun/transforms") +asset.require("spice/base") -local kernels = asset.require('scene/solarsystem/missions/apollo/15/kernels').kernels +local models = asset.syncedResource({ + Name = "Apollo Models", + Type = "HttpSynchronization", + Identifier = "apollo_models", + Version = 4 +}) + +local kernels = asset.require("scene/solarsystem/missions/apollo/15/kernels").kernels -- local models = asset.syncedResource({ @@ -49,7 +54,7 @@ local Apollo15 = { }, Renderable = { Type = "RenderableModel", - GeometryFile = models .. "/ApolloCSM.osmodel", + GeometryFile = models .. "ApolloCSM.osmodel", ModelScale = 0.0001, LightSources = { { @@ -96,6 +101,15 @@ local Apollo15Trail = { } } -local list = { Apollo15, Apollo15Trail } - -assetHelper.registerSceneGraphNodesAndExport(asset, list) +asset.onInitialize(function() + openspace.addSceneGraphNode(Apollo15) + openspace.addSceneGraphNode(Apollo15Trail) +end) + +asset.onDeinitialize(function() + openspace.removeSceneGraphNode(Apollo15Trail) + openspace.removeSceneGraphNode(Apollo15) +end) + +asset.export(Apollo15) +asset.export(Apollo15Trail) diff --git a/data/assets/scene/solarsystem/missions/apollo/15/kernels.asset b/data/assets/scene/solarsystem/missions/apollo/15/kernels.asset index 385565429b..320adc553e 100644 --- a/data/assets/scene/solarsystem/missions/apollo/15/kernels.asset +++ b/data/assets/scene/solarsystem/missions/apollo/15/kernels.asset @@ -6,17 +6,17 @@ local folder = asset.syncedResource({ }) local kernels = { - folder .. "/apollo15.0001.tsc", + folder .. "apollo15.0001.tsc", - -- folder .. '/AS15-P_v01.bc', - folder .. '/apollo15.0001.tf', - folder .. '/apollo15MetricAddendum002.ti', - -- folder .. '/apollo15PanoramicAddendum001.ti', - folder .. '/apollo15_metric.0002.ti', - -- folder .. '/apollo15_panoramic.0001.ti', - folder .. '/apollo15-1.bsp', - folder .. '/AS15-M_v01.bc', - -- folder .. '/AS15-M_v01.bsp', + -- folder .. "AS15-P_v01.bc", + folder .. "apollo15.0001.tf", + folder .. "apollo15MetricAddendum002.ti", + -- folder .. "apollo15PanoramicAddendum001.ti", + folder .. "apollo15_metric.0002.ti", + -- folder .. "apollo15_panoramic.0001.ti", + folder .. "apollo15-1.bsp", + folder .. "AS15-M_v01.bc", + -- folder .. "AS15-M_v01.bsp", } -- local kernels = { diff --git a/data/assets/scene/solarsystem/missions/apollo/17/boulder_models.asset b/data/assets/scene/solarsystem/missions/apollo/17/boulder_models.asset deleted file mode 100644 index 9e5e6545e8..0000000000 --- a/data/assets/scene/solarsystem/missions/apollo/17/boulder_models.asset +++ /dev/null @@ -1,8 +0,0 @@ -local models = asset.syncedResource({ - Name = "Apollo Boulders Models", - Type = "HttpSynchronization", - Identifier = "apollo_boulders", - Version = 2 -}) - -asset.export('models', models) diff --git a/data/assets/scene/solarsystem/missions/apollo/17/bouldersstation2.asset b/data/assets/scene/solarsystem/missions/apollo/17/bouldersstation2.asset index 79d44f2fe0..3fe739e62c 100644 --- a/data/assets/scene/solarsystem/missions/apollo/17/bouldersstation2.asset +++ b/data/assets/scene/solarsystem/missions/apollo/17/bouldersstation2.asset @@ -1,7 +1,12 @@ -local sun_transforms = asset.require('scene/solarsystem/sun/transforms') -local asset_helper = asset.require('util/asset_helper') -local moon_asset = asset.require('scene/solarsystem/planets/earth/moon/moon') -local models = asset.require('./boulder_models').models +local sun_transforms = asset.require("scene/solarsystem/sun/transforms") +local moon_asset = asset.require("scene/solarsystem/planets/earth/moon/moon") + +local models = asset.syncedResource({ + Name = "Apollo Boulders Models", + Type = "HttpSynchronization", + Identifier = "apollo_boulders", + Version = 2 +}) local LightSources = { { @@ -47,7 +52,7 @@ local Station2Boulder1Model = { }, Renderable = { Type = "RenderableModel", - GeometryFile = models .. "/b1-v2.obj", + GeometryFile = models .. "b1-v2.obj", RotationVector = { 243.243256 ,206.270264, 309.677429 }, LightSources = LightSources, PerformShading = false, @@ -89,7 +94,7 @@ local Station2Boulder2Model = { }, Renderable = { Type = "RenderableModel", - GeometryFile = models .. "/b2model.obj", + GeometryFile = models .. "b2model.obj", RotationVector = { 66.162155, 7.783780, 114.193550 }, LightSources = LightSources, PerformShading = false, @@ -131,7 +136,7 @@ local Station2Boulder3Model = { }, Renderable = { Type = "RenderableModel", - GeometryFile = models .. "/b3model.obj", + GeometryFile = models .. "b3model.obj", RotationVector = { 161.513519 ,243.243256, 65.806450 }, LightSources = LightSources, PerformShading = false, @@ -143,8 +148,25 @@ local Station2Boulder3Model = { } } -asset_helper.registerSceneGraphNodesAndExport(asset, { +local nodes = { Station2Boulder1Holder, Station2Boulder1Model, Station2Boulder2Holder, Station2Boulder2Model, Station2Boulder3Holder, Station2Boulder3Model -}) +} + +asset.onInitialize(function() + for i, node in ipairs(nodes) do + openspace.addSceneGraphNode(node) + end +end) + +asset.onDeinitialize(function() + for i = #nodes, 1, -1 do + local node = nodes[i] + openspace.removeSceneGraphNode(node) + end +end) + +for i, node in ipairs(nodes) do + asset.export(node) +end diff --git a/data/assets/scene/solarsystem/missions/apollo/17/bouldersstation6.asset b/data/assets/scene/solarsystem/missions/apollo/17/bouldersstation6.asset index 8574725776..16f8218fa8 100644 --- a/data/assets/scene/solarsystem/missions/apollo/17/bouldersstation6.asset +++ b/data/assets/scene/solarsystem/missions/apollo/17/bouldersstation6.asset @@ -1,7 +1,12 @@ -local sun_transforms = asset.require('scene/solarsystem/sun/transforms') -local asset_helper = asset.require('util/asset_helper') -local moon_asset = asset.require('scene/solarsystem/planets/earth/moon/moon') -local models = asset.require('./boulder_models').models +local sun_transforms = asset.require("scene/solarsystem/sun/transforms") +local moon_asset = asset.require("scene/solarsystem/planets/earth/moon/moon") + +local models = asset.syncedResource({ + Name = "Apollo Boulders Models", + Type = "HttpSynchronization", + Identifier = "apollo_boulders", + Version = 2 +}) local LightSources = { { @@ -58,7 +63,7 @@ local Station6Frag1Model = { }, Renderable = { Type = "RenderableModel", - GeometryFile = models .. "/A17-S6-frag1.obj", + GeometryFile = models .. "A17-S6-frag1.obj", RotationVector = { 235.909088,165.000000,286.299194 }, LightSources = LightSources, PerformShading = false, @@ -101,7 +106,7 @@ local Station6Frag2Model = { }, Renderable = { Type = "RenderableModel", - GeometryFile = models .. "/station6_boulder_frag2.obj", + GeometryFile = models .. "station6_boulder_frag2.obj", RotationVector = { 336.959991,210.239990,325.984253 }, LightSources = LightSources, PerformShading = false, @@ -132,7 +137,7 @@ local Station6Frag3Model = { }, Renderable = { Type = "RenderableModel", - GeometryFile = models .. "/station6_boulder_frag3.obj", + GeometryFile = models .. "station6_boulder_frag3.obj", RotationVector = { 293.181824,255.000000,4.090910 }, LightSources = LightSources, PerformShading = false, @@ -144,6 +149,24 @@ local Station6Frag3Model = { } } -asset_helper.registerSceneGraphNodesAndExport(asset, { - Station6Frag1Holder, Station6Frag1Model, Station6Frag23Holder, Station6Frag2Model, Station6Frag3Model, -}) +local nodes = { + Station6Frag1Holder, Station6Frag1Model, Station6Frag23Holder, Station6Frag2Model, + Station6Frag3Model, +} + +asset.onInitialize(function() + for i, node in ipairs(nodes) do + openspace.addSceneGraphNode(node) + end +end) + +asset.onDeinitialize(function() + for i = #nodes, 1, -1 do + local node = nodes[i] + openspace.removeSceneGraphNode(node) + end +end) + +for i, node in ipairs(nodes) do + asset.export(node) +end diff --git a/data/assets/scene/solarsystem/missions/apollo/17/bouldersstation7.asset b/data/assets/scene/solarsystem/missions/apollo/17/bouldersstation7.asset index 7a185e33d8..94c253e830 100644 --- a/data/assets/scene/solarsystem/missions/apollo/17/bouldersstation7.asset +++ b/data/assets/scene/solarsystem/missions/apollo/17/bouldersstation7.asset @@ -1,7 +1,12 @@ -local sun_transforms = asset.require('scene/solarsystem/sun/transforms') -local asset_helper = asset.require('util/asset_helper') -local moon_asset = asset.require('scene/solarsystem/planets/earth/moon/moon') -local models = asset.require('./boulder_models').models +local sun_transforms = asset.require("scene/solarsystem/sun/transforms") +local moon_asset = asset.require("scene/solarsystem/planets/earth/moon/moon") + +local models = asset.syncedResource({ + Name = "Apollo Boulders Models", + Type = "HttpSynchronization", + Identifier = "apollo_boulders", + Version = 2 +}) local LightSources = { { @@ -47,7 +52,7 @@ local Station7BoulderModel = { }, Renderable = { Type = "RenderableModel", - GeometryFile = models .. "/b7model.obj", + GeometryFile = models .. "b7model.obj", RotationVector = { 1.945950,274.378387,212.903214 }, LightSources = LightSources, PerformShading = false, @@ -59,6 +64,15 @@ local Station7BoulderModel = { } } -asset_helper.registerSceneGraphNodesAndExport(asset, { - Station7BoulderHolder, Station7BoulderModel -}) +asset.onInitialize(function() + openspace.addSceneGraphNode(Station7BoulderHolder) + openspace.addSceneGraphNode(Station7BoulderModel) +end) + +asset.onDeinitialize(function() + openspace.removeSceneGraphNode(Station7BoulderModel) + openspace.removeSceneGraphNode(Station7BoulderHolder) +end) + +asset.export(Station7BoulderHolder) +asset.export(Station7BoulderModel) diff --git a/data/assets/scene/solarsystem/missions/apollo/17/lem.asset b/data/assets/scene/solarsystem/missions/apollo/17/lem.asset index 74dc722275..d9d6c7b76e 100644 --- a/data/assets/scene/solarsystem/missions/apollo/17/lem.asset +++ b/data/assets/scene/solarsystem/missions/apollo/17/lem.asset @@ -1,8 +1,12 @@ -local asset_helper = asset.require('util/asset_helper') -local sun_transforms = asset.require('scene/solarsystem/sun/transforms') -local moon_asset = asset.require('scene/solarsystem/planets/earth/moon/moon') +local sun_transforms = asset.require("scene/solarsystem/sun/transforms") +local moon_asset = asset.require("scene/solarsystem/planets/earth/moon/moon") -local model = asset.require('scene/solarsystem/missions/apollo/lem_model') +local model = asset.syncedResource({ + Name = "Apollo Lem Models", + Type = "HttpSynchronization", + Identifier = "apollo_lem_model", + Version = 4 +}) local Apollo17Lem = { Identifier = "Apollo17Lem", @@ -34,10 +38,22 @@ local Apollo17LemModel = { }, Renderable = { Type = "RenderableModel", - GeometryFile = model.modelFolder .. "/LM-2_ver2clean.obj", + GeometryFile = model .. "LM-2_ver2clean.obj", SpecularIntensity = 0.0, RotationVector = { 110.255219,171.229706,126.666664 }, - LightSources = asset_helper.getDefaultLightSources(sun_transforms.SolarSystemBarycenter.Identifier) + LightSources = { + { + Type = "SceneGraphLightSource", + Identifier = "Sun", + Node = sun_transforms.SolarSystemBarycenter.Identifier, + Intensity = 1.0 + }, + { + Identifier = "Camera", + Type = "CameraLightSource", + Intensity = 0.5 + } + } }, GUI = { Name = "Apollo 17 Lem", @@ -45,4 +61,15 @@ local Apollo17LemModel = { } } -asset_helper.registerSceneGraphNodesAndExport(asset, { Apollo17Lem, Apollo17LemModel }) +asset.onInitialize(function() + openspace.addSceneGraphNode(Apollo17Lem) + openspace.addSceneGraphNode(Apollo17LemModel) +end) + +asset.onDeinitialize(function() + openspace.removeSceneGraphNode(Apollo17LemModel) + openspace.removeSceneGraphNode(Apollo17Lem) +end) + +asset.export(Apollo17Lem) +asset.export(Apollo17LemModel) diff --git a/data/assets/scene/solarsystem/missions/apollo/8/apollo8.asset b/data/assets/scene/solarsystem/missions/apollo/8/apollo8.asset index 4b2a8777a1..cf491145b7 100644 --- a/data/assets/scene/solarsystem/missions/apollo/8/apollo8.asset +++ b/data/assets/scene/solarsystem/missions/apollo/8/apollo8.asset @@ -1,3 +1,3 @@ -asset.require('./model') -asset.require('./launch_model') -asset.require('./trails') +asset.require("./model") +asset.require("./launch_model") +asset.require("./trails") diff --git a/data/assets/scene/solarsystem/missions/apollo/8/kernels.asset b/data/assets/scene/solarsystem/missions/apollo/8/kernels.asset index 7b2e464bf7..9995423e1d 100644 --- a/data/assets/scene/solarsystem/missions/apollo/8/kernels.asset +++ b/data/assets/scene/solarsystem/missions/apollo/8/kernels.asset @@ -6,12 +6,12 @@ local kernelsFolder = asset.syncedResource({ }) local kernels = { - kernelsFolder .. "/moon_080317.tf", - kernelsFolder .. "/apollo8.tf", - kernelsFolder .. "/moon_pa_de421_1900-2050.bpc", - kernelsFolder .. '/apollo8.tsc', - kernelsFolder .. '/apollo8.bsp', - kernelsFolder .. '/apollo8_earthrise.bc', + kernelsFolder .. "moon_080317.tf", + kernelsFolder .. "apollo8.tf", + kernelsFolder .. "moon_pa_de421_1900-2050.bpc", + kernelsFolder .. "apollo8.tsc", + kernelsFolder .. "apollo8.bsp", + kernelsFolder .. "apollo8_earthrise.bc" } -asset.export('kernels', kernels) +asset.export("kernels", kernels) diff --git a/data/assets/scene/solarsystem/missions/apollo/8/launch_model.asset b/data/assets/scene/solarsystem/missions/apollo/8/launch_model.asset index 448df1dd70..a2844520ce 100644 --- a/data/assets/scene/solarsystem/missions/apollo/8/launch_model.asset +++ b/data/assets/scene/solarsystem/missions/apollo/8/launch_model.asset @@ -1,8 +1,13 @@ -local asset_helper = asset.require('util/asset_helper') -local earth_transforms = asset.require('scene/solarsystem/planets/earth/transforms') -local sun_transforms = asset.require('scene/solarsystem/sun/transforms') -local kernels = asset.require('./kernels').kernels -local models = asset.require('scene/solarsystem/missions/apollo/csm_model').models +local earth_transforms = asset.require("scene/solarsystem/planets/earth/transforms") +local sun_transforms = asset.require("scene/solarsystem/sun/transforms") +local kernels = asset.require("./kernels").kernels + +local models = asset.syncedResource({ + Name = "Apollo Models", + Type = "HttpSynchronization", + Identifier = "apollo_models", + Version = 4 +}) local apolloSpiceId = "-908" @@ -40,12 +45,12 @@ local Apollo8LaunchModel = { Transform = { Rotation = { Type = "StaticRotation", - Rotation = {0.0, 0.0, -3.1415 / 2} + Rotation = {0.0, 0.0, -math.pi / 2} } }, Renderable = { Type = "RenderableModel", - GeometryFile = models .. "/ApolloCSM.osmodel", + GeometryFile = models .. "ApolloCSM.osmodel", ModelScale = 0.0001, LightSources = { { @@ -65,6 +70,15 @@ local Apollo8LaunchModel = { } } -local list = { Apollo8Launch, Apollo8LaunchModel } - -asset_helper.registerSceneGraphNodesAndExport(asset, list) +asset.onInitialize(function() + openspace.addSceneGraphNode(Apollo8Launch) + openspace.addSceneGraphNode(Apollo8LaunchModel) +end) + +asset.onDeinitialize(function() + openspace.removeSceneGraphNode(Apollo8LaunchModel) + openspace.removeSceneGraphNode(Apollo8Launch) +end) + +asset.export(Apollo8Launch) +asset.export(Apollo8LaunchModel) diff --git a/data/assets/scene/solarsystem/missions/apollo/8/model.asset b/data/assets/scene/solarsystem/missions/apollo/8/model.asset index 30d2e70a15..4d43b54084 100644 --- a/data/assets/scene/solarsystem/missions/apollo/8/model.asset +++ b/data/assets/scene/solarsystem/missions/apollo/8/model.asset @@ -1,8 +1,13 @@ -local asset_helper = asset.require('util/asset_helper') -local earth_transforms = asset.require('scene/solarsystem/planets/earth/transforms') -local sun_transforms = asset.require('scene/solarsystem/sun/transforms') -local kernels = asset.require('./kernels').kernels -local models = asset.require('scene/solarsystem/missions/apollo/csm_model').models +local earth_transforms = asset.require("scene/solarsystem/planets/earth/transforms") +local sun_transforms = asset.require("scene/solarsystem/sun/transforms") +local kernels = asset.require("./kernels").kernels + +local models = asset.syncedResource({ + Name = "Apollo Models", + Type = "HttpSynchronization", + Identifier = "apollo_models", + Version = 4 +}) local apolloSpiceId = "-908" @@ -52,12 +57,12 @@ local Apollo8Model = { Transform = { Rotation = { Type = "StaticRotation", - Rotation = {0.0, 0.0, -3.1415 / 2} + Rotation = {0.0, 0.0, -math.pi / 2} } }, Renderable = { Type = "RenderableModel", - GeometryFile = models .. "/ApolloCSM.osmodel", + GeometryFile = models .. "ApolloCSM.osmodel", ModelScale = 0.0001, LightSources = { { @@ -93,6 +98,18 @@ local Apollo8Pivot = { } } -local list = { Apollo8, Apollo8Model, Apollo8Pivot } - -asset_helper.registerSceneGraphNodesAndExport(asset, list) +asset.onInitialize(function() + openspace.addSceneGraphNode(Apollo8) + openspace.addSceneGraphNode(Apollo8Model) + openspace.addSceneGraphNode(Apollo8Pivot) +end) + +asset.onDeinitialize(function() + openspace.removeSceneGraphNode(Apollo8Pivot) + openspace.removeSceneGraphNode(Apollo8Model) + openspace.removeSceneGraphNode(Apollo8) +end) + +asset.export(Apollo8) +asset.export(Apollo8Model) +asset.export(Apollo8Pivot) diff --git a/data/assets/scene/solarsystem/missions/apollo/8/trails.asset b/data/assets/scene/solarsystem/missions/apollo/8/trails.asset index dfe3d02b88..f94415d757 100644 --- a/data/assets/scene/solarsystem/missions/apollo/8/trails.asset +++ b/data/assets/scene/solarsystem/missions/apollo/8/trails.asset @@ -1,8 +1,6 @@ -local assetHelper = asset.require('util/asset_helper') - -local earth_transforms = asset.require('scene/solarsystem/planets/earth/transforms') -local moon_transforms = asset.require('scene/solarsystem/planets/earth/moon/moon') -local kernels = asset.require('./kernels').kernels +local earth_transforms = asset.require("scene/solarsystem/planets/earth/transforms") +local moon_transforms = asset.require("scene/solarsystem/planets/earth/moon/moon") +local kernels = asset.require("./kernels").kernels local apolloSpiceId = "-908" @@ -79,4 +77,18 @@ local EarthBarycenterTrail = { } } -assetHelper.registerSceneGraphNodesAndExport(asset, { LaunchTrail, MoonTrail, EarthBarycenterTrail }) +asset.onInitialize(function() + openspace.addSceneGraphNode(LaunchTrail) + openspace.addSceneGraphNode(MoonTrail) + openspace.addSceneGraphNode(EarthBarycenterTrail) +end) + +asset.onDeinitialize(function() + openspace.removeSceneGraphNode(EarthBarycenterTrail) + openspace.removeSceneGraphNode(MoonTrail) + openspace.removeSceneGraphNode(LaunchTrail) +end) + +asset.export(LaunchTrail) +asset.export(MoonTrail) +asset.export(EarthBarycenterTrail) diff --git a/data/assets/scene/solarsystem/missions/apollo/apollo_globebrowsing.asset b/data/assets/scene/solarsystem/missions/apollo/apollo_globebrowsing.asset index d32a695d9f..93e7be48ca 100644 --- a/data/assets/scene/solarsystem/missions/apollo/apollo_globebrowsing.asset +++ b/data/assets/scene/solarsystem/missions/apollo/apollo_globebrowsing.asset @@ -1,5 +1,4 @@ ---apollo_globebrowsing.asset -local moon_transforms = asset.require('scene/solarsystem/planets/earth/moon/moon') +local moon_transforms = asset.require("scene/solarsystem/planets/earth/moon/moon") local heightmaps = asset.syncedResource({ Name = "Apollo Globebrowsing Heightmaps", diff --git a/data/assets/scene/solarsystem/missions/apollo/csm_model.asset b/data/assets/scene/solarsystem/missions/apollo/csm_model.asset deleted file mode 100644 index 68ce09e62c..0000000000 --- a/data/assets/scene/solarsystem/missions/apollo/csm_model.asset +++ /dev/null @@ -1,8 +0,0 @@ -local models = asset.syncedResource({ - Name = "Apollo Models", - Type = "HttpSynchronization", - Identifier = "apollo_models", - Version = 4 -}) - -asset.export('models', models) diff --git a/data/assets/scene/solarsystem/missions/apollo/insignias_map.asset b/data/assets/scene/solarsystem/missions/apollo/insignias_map.asset index b79b609c3c..d8bba76038 100644 --- a/data/assets/scene/solarsystem/missions/apollo/insignias_map.asset +++ b/data/assets/scene/solarsystem/missions/apollo/insignias_map.asset @@ -2,15 +2,13 @@ -- The insignias are invisible by default, but can be enabled using shown or hidden using -- the exported functions `showInsignias(interpolationDuration)` and `hideInsignias(interpolationDuration)`. -local asset_helper = asset.require('util/asset_helper') - local insigniasPath = asset.syncedResource({ Name = "Apollo Insignias", Type = "HttpSynchronization", Identifier = "apollo_insignias", Version = 1 }) -local moon = asset.require('scene/solarsystem/planets/earth/moon/moon') +local moon = asset.require("scene/solarsystem/planets/earth/moon/moon") local landingData = { { @@ -75,7 +73,7 @@ for i = 1, #landingData do Size = size, Origin = "Center", Billboard = true, - Texture = insigniasPath .. "/" .. entry.Texture, + Texture = insigniasPath .. entry.Texture, Opacity = 0.0 }, GUI = { @@ -88,7 +86,7 @@ end local show_apollo_labels = { Identifier = "apollo_insignias.show_insignias", Name = "Show Apollo Landing Labels", - Command = "openspace.setPropertyValue('Scene.Apollo*Insignia.Renderable.Opacity', 1, 0.5)", + Command = [[openspace.setPropertyValue("Scene.Apollo*Insignia.Renderable.Opacity", 1, 0.5)]], Documentation = "Show patches of the Apollo missions on their respective landing sites", GuiPath = "/Missions/Apollo", IsLocal = true @@ -97,7 +95,7 @@ local show_apollo_labels = { local hide_apollo_labels = { Identifier = "apollo_insignias.hide_insignias", Name = "Hide Apollo Landing Labels", - Command = "openspace.setPropertyValue('Scene.Apollo*Insignia.Renderable.Opacity', 0, 0.5)", + Command = [[openspace.setPropertyValue("Scene.Apollo*Insignia.Renderable.Opacity", 0, 0.5)]], Documentation = "Hide patches of the Apollo missions on their respective landing sites", GuiPath = "/Missions/Apollo", IsLocal = true @@ -106,27 +104,37 @@ local hide_apollo_labels = { asset.onInitialize(function () openspace.action.registerAction(show_apollo_labels) openspace.action.registerAction(hide_apollo_labels) + for _, node in ipairs(nodes) do + openspace.addSceneGraphNode(node) + end end) asset.onDeinitialize(function () - openspace.action.removeAction(show_apollo_labels.Identifier) - openspace.action.removeAction(hide_apollo_labels.Identifier) + for i = #nodes, 1, -1 do + local node = nodes[i] + openspace.removeSceneGraphNode(node) + end + + openspace.action.removeAction(show_apollo_labels) + openspace.action.removeAction(hide_apollo_labels) end) -asset.export('showInsignia', function (missinNumber, interpolationDuration) +for _, node in ipairs(nodes) do + asset.export(node) +end + +asset.export("showInsignia", function (missionNumber, interpolationDuration) openspace.setPropertyValue("Scene.Apollo" .. missionNumber .. "Insignia.Renderable.Opacity", 1, interpolationDuration) end) -asset.export('hideInsignia', function (missinNumber, interpolationDuration) +asset.export("hideInsignia", function (missionNumber, interpolationDuration) openspace.setPropertyValue("Scene.Apollo" .. missionNumber .. "Insignia.Renderable.Opacity", 0, interpolationDuration) end) -asset.export('showInsignias', function (interpolationDuration) +asset.export("showInsignias", function (interpolationDuration) openspace.setPropertyValue("Scene.Apollo*Insignia.Renderable.Opacity", 1, interpolationDuration) end) -asset.export('hideInsignias', function (interpolationDuration) +asset.export("hideInsignias", function (interpolationDuration) openspace.setPropertyValue("Scene.Apollo*Insignia.Renderable.Opacity", 0, interpolationDuration) end) - -asset_helper.registerSceneGraphNodesAndExport(asset, nodes) diff --git a/data/assets/scene/solarsystem/missions/apollo/lem_model.asset b/data/assets/scene/solarsystem/missions/apollo/lem_model.asset deleted file mode 100644 index 5490471d7e..0000000000 --- a/data/assets/scene/solarsystem/missions/apollo/lem_model.asset +++ /dev/null @@ -1,8 +0,0 @@ -local modelFolder = asset.syncedResource({ - Name = "Apollo Lem Models", - Type = "HttpSynchronization", - Identifier = "apollo_lem_model", - Version = 4 -}) - -asset.export('modelFolder', modelFolder) diff --git a/data/assets/scene/solarsystem/missions/dawn/ceres.asset b/data/assets/scene/solarsystem/missions/dawn/ceres.asset index 3b5bcc41f9..27dcf52e74 100644 --- a/data/assets/scene/solarsystem/missions/dawn/ceres.asset +++ b/data/assets/scene/solarsystem/missions/dawn/ceres.asset @@ -1,9 +1,14 @@ -local assetHelper = asset.require('util/asset_helper') -local transforms = asset.require('scene/solarsystem/sun/transforms') -local kernels = asset.require('./dawn_kernels').Kernels +local transforms = asset.require("scene/solarsystem/sun/transforms") +local kernels = asset.syncedResource({ + Name = "Dawn Kernels", + Type = "HttpSynchronization", + Identifier = "dawn_kernels", + Version = 2 +}) + local textures = asset.syncedResource({ Name = "Ceres Textures", Type = "HttpSynchronization", @@ -20,9 +25,9 @@ local Ceres = { SourceFrame = "IAU_CERES", DestinationFrame = "GALACTIC", Kernels = { - kernels .. "/dawn_ceres_v01.tpc", - kernels .. "/sb_ceres_140724.bsp", - kernels .. "/sb_ceres_110211.bsp" + kernels .. "dawn_ceres_v01.tpc", + kernels .. "sb_ceres_140724.bsp", + kernels .. "sb_ceres_110211.bsp" } }, Translation = { @@ -30,9 +35,9 @@ local Ceres = { Target = "CERES", Observer = "SSB", Kernels = { - kernels .. "/dawn_ceres_v01.tpc", - kernels .. "/sb_ceres_140724.bsp", - kernels .. "/sb_ceres_110211.bsp" + kernels .. "dawn_ceres_v01.tpc", + kernels .. "sb_ceres_140724.bsp", + kernels .. "sb_ceres_110211.bsp" } } }, @@ -43,9 +48,8 @@ local Ceres = { Layers = { ColorLayers = { { - Name = "Texture", - Identifier = "CeresTexture", - FilePath = textures .. "/gray.png", + Identifier = "Texture", + FilePath = textures .. "gray.png", Enabled = true } } @@ -80,4 +84,15 @@ local CeresTrail = { } -assetHelper.registerSceneGraphNodesAndExport(asset, { Ceres, CeresTrail }) +asset.onInitialize(function() + openspace.addSceneGraphNode(Ceres) + openspace.addSceneGraphNode(CeresTrail) +end) + +asset.onDeinitialize(function() + openspace.removeSceneGraphNode(CeresTrail) + openspace.removeSceneGraphNode(Ceres) +end) + +asset.export(Ceres) +asset.export(CeresTrail) diff --git a/data/assets/scene/solarsystem/missions/dawn/dawn.asset b/data/assets/scene/solarsystem/missions/dawn/dawn.asset index 5887fb10d0..2a52df35f7 100644 --- a/data/assets/scene/solarsystem/missions/dawn/dawn.asset +++ b/data/assets/scene/solarsystem/missions/dawn/dawn.asset @@ -1,9 +1,14 @@ -local assetHelper = asset.require('util/asset_helper') -local transforms = asset.require('scene/solarsystem/sun/transforms') -local kernels = asset.require('./dawn_kernels').Kernels -local sunTransforms = asset.require('scene/solarsystem/sun/transforms') +local transforms = asset.require("scene/solarsystem/sun/transforms") +local sunTransforms = asset.require("scene/solarsystem/sun/transforms") +local kernels = asset.syncedResource({ + Name = "Dawn Kernels", + Type = "HttpSynchronization", + Identifier = "dawn_kernels", + Version = 2 +}) + local textures = asset.syncedResource({ Name = "Dawn Textures", Type = "HttpSynchronization", @@ -19,601 +24,601 @@ local models = asset.syncedResource({ }) local KernelFiles = { - kernels .. "/dawn_ref_070926-150201_070829.bsp", + kernels .. "dawn_ref_070926-150201_070829.bsp", --ik - kernels .. "/dawn_fc_v10.ti", + kernels .. "dawn_fc_v10.ti", -- SPK - kernels .. "/sb_ceres_110211.bsp", - kernels .. "/sb_ceres_140724.bsp", - kernels .. "/sb_vesta_071107.bsp", + kernels .. "sb_ceres_110211.bsp", + kernels .. "sb_ceres_140724.bsp", + kernels .. "sb_vesta_071107.bsp", - kernels .. "/dawn_rec_070927_070930_081218_v1.bsp", - --[[kernels .. "/dawn_rec_070930_071201_081218_v1.bsp", - kernels .. "/dawn_rec_071201_080205_081218_v1.bsp", - kernels .. "/dawn_rec_080205_080325_081218_v1.bsp", - kernels .. "/dawn_rec_080325_080503_081218_v1.bsp", - kernels .. "/dawn_rec_080503_080601_081218_v1.bsp", - kernels .. "/dawn_rec_080601_080718_081218_v1.bsp", - kernels .. "/dawn_rec_080718_080910_081218_v1.bsp", - kernels .. "/dawn_rec_080910_081022_090218_v1.bsp", - kernels .. "/dawn_rec_081022_081109_090218_v1.bsp", - kernels .. "/dawn_rec_081109_090228_090306_v1.bsp", - kernels .. "/dawn_rec_090228_090501_090702_v1.bsp", - kernels .. "/dawn_rec_090501_090801_090916_v1.bsp", - kernels .. "/dawn_rec_090801_090915_090923_v1.bsp", - kernels .. "/dawn_rec_090915_091201_091202_v1.bsp", - kernels .. "/dawn_rec_091201_100208_100209_v1.bsp", - kernels .. "/dawn_rec_100208_100316_100323_v1.bsp", - kernels .. "/dawn_rec_100316_100413_100422_v1.bsp", - kernels .. "/dawn_rec_100413_100622_100830_v1.bsp", - kernels .. "/dawn_rec_100622_100824_100830_v1.bsp", - kernels .. "/dawn_rec_100824_101130_101202_v1.bsp", - kernels .. "/dawn_rec_101130_110201_110201_v1.bsp", - kernels .. "/dawn_rec_110201_110328_110328_v1.bsp", - kernels .. "/dawn_rec_110328_110419_110420_v1.bsp",--]] + kernels .. "dawn_rec_070927_070930_081218_v1.bsp", + --[[kernels .. "dawn_rec_070930_071201_081218_v1.bsp", + kernels .. "dawn_rec_071201_080205_081218_v1.bsp", + kernels .. "dawn_rec_080205_080325_081218_v1.bsp", + kernels .. "dawn_rec_080325_080503_081218_v1.bsp", + kernels .. "dawn_rec_080503_080601_081218_v1.bsp", + kernels .. "dawn_rec_080601_080718_081218_v1.bsp", + kernels .. "dawn_rec_080718_080910_081218_v1.bsp", + kernels .. "dawn_rec_080910_081022_090218_v1.bsp", + kernels .. "dawn_rec_081022_081109_090218_v1.bsp", + kernels .. "dawn_rec_081109_090228_090306_v1.bsp", + kernels .. "dawn_rec_090228_090501_090702_v1.bsp", + kernels .. "dawn_rec_090501_090801_090916_v1.bsp", + kernels .. "dawn_rec_090801_090915_090923_v1.bsp", + kernels .. "dawn_rec_090915_091201_091202_v1.bsp", + kernels .. "dawn_rec_091201_100208_100209_v1.bsp", + kernels .. "dawn_rec_100208_100316_100323_v1.bsp", + kernels .. "dawn_rec_100316_100413_100422_v1.bsp", + kernels .. "dawn_rec_100413_100622_100830_v1.bsp", + kernels .. "dawn_rec_100622_100824_100830_v1.bsp", + kernels .. "dawn_rec_100824_101130_101202_v1.bsp", + kernels .. "dawn_rec_101130_110201_110201_v1.bsp", + kernels .. "dawn_rec_110201_110328_110328_v1.bsp", + kernels .. "dawn_rec_110328_110419_110420_v1.bsp",--]] - kernels .. "/dawn_rec_110416_110802_110913_v1.bsp", - kernels .. "/dawn_rec_110802_110831_110922_v1.bsp", - --[[kernels .. "/spk/dawn_rec_110831_110928_111221_v1.bsp", - kernels .. "/dawn_rec_110928_111102_120615_v1.bsp", - kernels .. "/dawn_rec_111102_111210_120618_v1.bsp", - kernels .. "/dawn_rec_111211_120501_120620_v1.bsp", - kernels .. "/dawn_rec_120501_120611_120625_v1.bsp", - kernels .. "/dawn_rec_120611_120724_121101_v1.bsp",--]] - kernels .. "/dawn_rec_120724_120913_121213_v1.bsp", + kernels .. "dawn_rec_110416_110802_110913_v1.bsp", + kernels .. "dawn_rec_110802_110831_110922_v1.bsp", + --[[kernels .. "spk/dawn_rec_110831_110928_111221_v1.bsp", + kernels .. "dawn_rec_110928_111102_120615_v1.bsp", + kernels .. "dawn_rec_111102_111210_120618_v1.bsp", + kernels .. "dawn_rec_111211_120501_120620_v1.bsp", + kernels .. "dawn_rec_120501_120611_120625_v1.bsp", + kernels .. "dawn_rec_120611_120724_121101_v1.bsp",--]] + kernels .. "dawn_rec_120724_120913_121213_v1.bsp", --PCK - --kernels .. "/dawn_vesta_v06.tpc", - --kernels .. "/dawn_ceres_v01.tpc", - --kernels .. "/pck00008.tpc", + --kernels .. "dawn_vesta_v06.tpc", + --kernels .. "dawn_ceres_v01.tpc", + --kernels .. "pck00008.tpc", -- FK - kernels .. "/dawn_vesta_v00.tf", - kernels .. "/dawn_v12.tf", + kernels .. "dawn_vesta_v00.tf", + kernels .. "dawn_v12.tf", --SCLK - kernels .. "/dawn_203_sclkscet_00039.tsc", + kernels .. "dawn_203_sclkscet_00039.tsc", -- CK - kernels .. "/dawn_sc_070927_070930.bc", - kernels .. "/dawn_sc_110801_110807.bc", - kernels .. "/dawn_sc_110808_110814.bc", - kernels .. "/dawn_sc_120910_120916.bc", - -- kernels .. "/dawn_sc_111226_120101.bc", - -- kernels .. "/dawn_sc_120102_120108.bc", - -- kernels .. "/dawn_sc_120109_120115.bc", - -- kernels .. "/dawn_sc_120116_120122.bc", - -- kernels .. "/dawn_sc_120123_120129.bc", + kernels .. "dawn_sc_070927_070930.bc", + kernels .. "dawn_sc_110801_110807.bc", + kernels .. "dawn_sc_110808_110814.bc", + kernels .. "dawn_sc_120910_120916.bc", + -- kernels .. "dawn_sc_111226_120101.bc", + -- kernels .. "dawn_sc_120102_120108.bc", + -- kernels .. "dawn_sc_120109_120115.bc", + -- kernels .. "dawn_sc_120116_120122.bc", + -- kernels .. "dawn_sc_120123_120129.bc", -- all space craft CK files, ~10 gb - -- kernels .. "/dawn_sc_120123_120129.bc", - -- kernels .. "/dawn_sc_070927_070930.bc", - --[[kernels .. "/ck/dawn_sc_071001_071007.bc", - kernels .. "/dawn_sc_071008_071014_v2.bc", - kernels .. "/dawn_sc_071015_071021.bc", - kernels .. "/dawn_sc_071022_071028_v2.bc", - kernels .. "/dawn_sc_071029_071104.bc", - kernels .. "/dawn_sc_071105_071111.bc", - kernels .. "/dawn_sc_071112_071118.bc", - kernels .. "/dawn_sc_071119_071125.bc", - kernels .. "/dawn_sc_071126_071202.bc", - kernels .. "/dawn_sc_071203_071209.bc", - kernels .. "/dawn_sc_071210_071216.bc", - kernels .. "/dawn_sc_071217_071223.bc", - kernels .. "/dawn_sc_071224_071230.bc", - kernels .. "/dawn_sc_071231_080106.bc", - kernels .. "/dawn_sc_080107_080113.bc", - kernels .. "/dawn_sc_080114_080120.bc", - kernels .. "/dawn_sc_080121_080127.bc", - kernels .. "/dawn_sc_080128_080203.bc", - kernels .. "/dawn_sc_080204_080210.bc", - kernels .. "/dawn_sc_080211_080217.bc", - kernels .. "/dawn_sc_080218_080224.bc", - kernels .. "/dawn_sc_080225_080302.bc", - kernels .. "/dawn_sc_080303_080309.bc", - kernels .. "/dawn_sc_080310_080316.bc", - kernels .. "/dawn_sc_080317_080323.bc", - kernels .. "/dawn_sc_080324_080330.bc", - kernels .. "/dawn_sc_080331_080406.bc", - kernels .. "/dawn_sc_080407_080413.bc", - kernels .. "/dawn_sc_080414_080420.bc", - kernels .. "/dawn_sc_080421_080427.bc", - kernels .. "/dawn_sc_080428_080504.bc", - kernels .. "/dawn_sc_080505_080511.bc", - kernels .. "/dawn_sc_080512_080518.bc", - kernels .. "/dawn_sc_080519_080525.bc", - kernels .. "/dawn_sc_080526_080601.bc", - kernels .. "/dawn_sc_080602_080608.bc", - kernels .. "/dawn_sc_080609_080615.bc", - kernels .. "/dawn_sc_080616_080622.bc", - kernels .. "/dawn_sc_080623_080629.bc", - kernels .. "/dawn_sc_080630_080706.bc", - kernels .. "/dawn_sc_080707_080713.bc", - kernels .. "/dawn_sc_080714_080720.bc", - kernels .. "/dawn_sc_080721_080727.bc", - kernels .. "/dawn_sc_080728_080803.bc", - kernels .. "/dawn_sc_080804_080810.bc", - kernels .. "/dawn_sc_080811_080817.bc", - kernels .. "/dawn_sc_080818_080824.bc", - kernels .. "/dawn_sc_080825_080831.bc", - kernels .. "/dawn_sc_080901_080907.bc", - kernels .. "/dawn_sc_080908_080914.bc", - kernels .. "/dawn_sc_080915_080921.bc", - kernels .. "/dawn_sc_080922_080928.bc", - kernels .. "/dawn_sc_080929_081005.bc", - kernels .. "/dawn_sc_081006_081012.bc", - kernels .. "/dawn_sc_081013_081019.bc", - kernels .. "/dawn_sc_081020_081026.bc", - kernels .. "/dawn_sc_081027_081102.bc", - kernels .. "/dawn_sc_081103_081109.bc", - kernels .. "/dawn_sc_081110_081116.bc", - kernels .. "/dawn_sc_081117_081123.bc", - kernels .. "/dawn_sc_081124_081130.bc", - kernels .. "/dawn_sc_081201_081207.bc", - kernels .. "/dawn_sc_081208_081214.bc", - kernels .. "/dawn_sc_081215_081221.bc", - kernels .. "/dawn_sc_081222_081228.bc", - kernels .. "/dawn_sc_081229_090104.bc", - kernels .. "/dawn_sc_090105_090111.bc", - kernels .. "/dawn_sc_090112_090118.bc", - kernels .. "/dawn_sc_090119_090125.bc", - kernels .. "/dawn_sc_090126_090201.bc", - kernels .. "/dawn_sc_090202_090208.bc", - kernels .. "/dawn_sc_090209_090215.bc", - kernels .. "/dawn_sc_090216_090222.bc", - kernels .. "/dawn_sc_090223_090301.bc", - kernels .. "/dawn_sc_090302_090308.bc", - kernels .. "/dawn_sc_090309_090315.bc", - kernels .. "/dawn_sc_090316_090322.bc", - kernels .. "/dawn_sc_090323_090329.bc", - kernels .. "/dawn_sc_090330_090405.bc", - kernels .. "/dawn_sc_090406_090412.bc", - kernels .. "/dawn_sc_090413_090419.bc", - kernels .. "/dawn_sc_090420_090426.bc", - kernels .. "/dawn_sc_090427_090503.bc", - kernels .. "/dawn_sc_090504_090510.bc", - kernels .. "/dawn_sc_090511_090517.bc", - kernels .. "/dawn_sc_090518_090524.bc", - kernels .. "/dawn_sc_090525_090531.bc", - kernels .. "/dawn_sc_090601_090607.bc", - kernels .. "/dawn_sc_090608_090614.bc", - kernels .. "/dawn_sc_090615_090621.bc", - kernels .. "/dawn_sc_090622_090628.bc", - kernels .. "/dawn_sc_090629_090705.bc", - kernels .. "/dawn_sc_090706_090712.bc", - kernels .. "/dawn_sc_090713_090719.bc", - kernels .. "/dawn_sc_090720_090726.bc", - kernels .. "/dawn_sc_090727_090802.bc", - kernels .. "/dawn_sc_090803_090809.bc", - kernels .. "/dawn_sc_090810_090816.bc", - kernels .. "/dawn_sc_090817_090823.bc", - kernels .. "/dawn_sc_090824_090830.bc", - kernels .. "/dawn_sc_090831_090906.bc", - kernels .. "/dawn_sc_090907_090913.bc", - kernels .. "/dawn_sc_090914_090920.bc", - kernels .. "/dawn_sc_090921_090927.bc", - kernels .. "/dawn_sc_090928_091004.bc", - kernels .. "/dawn_sc_091005_091011.bc", - kernels .. "/dawn_sc_091012_091018.bc", - kernels .. "/dawn_sc_091019_091025.bc", - kernels .. "/dawn_sc_091026_091101.bc", - kernels .. "/dawn_sc_091102_091108.bc", - kernels .. "/dawn_sc_091109_091115.bc", - kernels .. "/dawn_sc_091116_091122.bc", - kernels .. "/dawn_sc_091123_091129.bc", - kernels .. "/dawn_sc_091130_091206.bc", - kernels .. "/dawn_sc_091207_091213.bc", - kernels .. "/dawn_sc_091214_091220.bc", - kernels .. "/dawn_sc_091221_091227.bc", - kernels .. "/dawn_sc_091228_100103.bc", - kernels .. "/dawn_sc_100104_100110_v2.bc", - kernels .. "/dawn_sc_100111_100117_v2.bc",--]] - -- kernels .. "/dawn_sc_100118_100124.bc", - -- kernels .. "/dawn_sc_100125_100131.bc", - -- kernels .. "/dawn_sc_100201_100207.bc", - -- kernels .. "/dawn_sc_100208_100214.bc", - -- kernels .. "/dawn_sc_100215_100221.bc", - -- kernels .. "/dawn_sc_100222_100228.bc", - -- kernels .. "/dawn_sc_100301_100307.bc", - -- kernels .. "/dawn_sc_100308_100314.bc", - -- kernels .. "/dawn_sc_100315_100321.bc", - -- kernels .. "/dawn_sc_100322_100328.bc", - -- kernels .. "/dawn_sc_100329_100404.bc", - -- kernels .. "/dawn_sc_100405_100411.bc", - -- kernels .. "/dawn_sc_100412_100418.bc", - -- kernels .. "/dawn_sc_100419_100425.bc", - -- kernels .. "/dawn_sc_100426_100502.bc", - -- kernels .. "/dawn_sc_100503_100509.bc", - -- kernels .. "/dawn_sc_100510_100516.bc", - -- kernels .. "/dawn_sc_100517_100523.bc", - -- kernels .. "/dawn_sc_100524_100530.bc", - -- kernels .. "/dawn_sc_100531_100606.bc", - -- kernels .. "/dawn_sc_100607_100613.bc", - -- kernels .. "/dawn_sc_100614_100620.bc", - -- kernels .. "/dawn_sc_100621_100627.bc", - -- kernels .. "/dawn_sc_100628_100704.bc", - -- kernels .. "/dawn_sc_100705_100711.bc", - -- kernels .. "/dawn_sc_100712_100718.bc", - -- kernels .. "/dawn_sc_100719_100725.bc", - -- kernels .. "/dawn_sc_100726_100801.bc", - -- kernels .. "/dawn_sc_100802_100808.bc", - -- kernels .. "/dawn_sc_100809_100815.bc", - -- kernels .. "/dawn_sc_100816_100822.bc", - -- kernels .. "/dawn_sc_100823_100829.bc", - -- kernels .. "/dawn_sc_100830_100905.bc", - -- kernels .. "/dawn_sc_100906_100912.bc", - -- kernels .. "/dawn_sc_100913_100919.bc", - -- kernels .. "/dawn_sc_100920_100926.bc", - -- kernels .. "/dawn_sc_100927_101003.bc", - -- kernels .. "/dawn_sc_101004_101010.bc", - -- kernels .. "/dawn_sc_101011_101017.bc", - -- kernels .. "/dawn_sc_101018_101024.bc", - -- kernels .. "/dawn_sc_101025_101031.bc", - -- kernels .. "/dawn_sc_101101_101107.bc", - -- kernels .. "/dawn_sc_101108_101114.bc", - -- kernels .. "/dawn_sc_101115_101121.bc", - -- kernels .. "/dawn_sc_101122_101128.bc", - -- kernels .. "/dawn_sc_101129_101205.bc", - -- kernels .. "/dawn_sc_101206_101212.bc", - -- kernels .. "/dawn_sc_101213_101219.bc", - -- kernels .. "/dawn_sc_101220_101226.bc", - -- kernels .. "/dawn_sc_101227_110102.bc", - -- kernels .. "/dawn_sc_110103_110109.bc", - -- kernels .. "/dawn_sc_110110_110116.bc", - -- kernels .. "/dawn_sc_110117_110123.bc", - -- kernels .. "/dawn_sc_110124_110130.bc", - -- kernels .. "/dawn_sc_110131_110206.bc", - -- kernels .. "/dawn_sc_110207_110213.bc", - -- kernels .. "/dawn_sc_110214_110220.bc", - -- kernels .. "/dawn_sc_110221_110227.bc", - -- kernels .. "/dawn_sc_110228_110306.bc", - -- kernels .. "/dawn_sc_110307_110313.bc", - -- kernels .. "/dawn_sc_110314_110320.bc", - -- kernels .. "/dawn_sc_110321_110327.bc", - -- kernels .. "/dawn_sc_110328_110403.bc", - -- kernels .. "/dawn_sc_110404_110410.bc", - -- kernels .. "/dawn_sc_110411_110417.bc", - -- kernels .. "/dawn_sc_110418_110424.bc", - -- kernels .. "/dawn_sc_110425_110501.bc", - -- kernels .. "/dawn_sc_110502_110508.bc", - -- kernels .. "/dawn_sc_110509_110515.bc", - -- kernels .. "/dawn_sc_110516_110522.bc", - -- kernels .. "/dawn_sc_110523_110529.bc", - -- kernels .. "/dawn_sc_110530_110605.bc", - -- kernels .. "/dawn_sc_110606_110612.bc", - -- kernels .. "/dawn_sc_110613_110619.bc", - -- kernels .. "/dawn_sc_110620_110626.bc", - -- kernels .. "/dawn_sc_110627_110703.bc", - -- kernels .. "/dawn_sc_110704_110710.bc", - -- kernels .. "/dawn_sc_110711_110717.bc", - -- kernels .. "/dawn_sc_110718_110724.bc", - -- kernels .. "/dawn_sc_110725_110731.bc", - -- kernels .. "/dawn_sc_110801_110807.bc", - -- kernels .. "/dawn_sc_110808_110814.bc", - -- kernels .. "/dawn_sc_110815_110821.bc", - -- kernels .. "/dawn_sc_110822_110828.bc", - -- kernels .. "/dawn_sc_110829_110904.bc", - -- kernels .. "/dawn_sc_110905_110911.bc", - -- kernels .. "/dawn_sc_110912_110918.bc", - -- kernels .. "/dawn_sc_110919_110925.bc", - -- kernels .. "/dawn_sc_110926_111002.bc", - -- kernels .. "/dawn_sc_111003_111009.bc", - -- kernels .. "/dawn_sc_111010_111016.bc", - -- kernels .. "/dawn_sc_111017_111023.bc", - -- kernels .. "/dawn_sc_111024_111030.bc", - -- kernels .. "/dawn_sc_111031_111106.bc", - -- kernels .. "/dawn_sc_111107_111113.bc", - -- kernels .. "/dawn_sc_111114_111120.bc", - -- kernels .. "/dawn_sc_111121_111127.bc", - -- kernels .. "/dawn_sc_111128_111204.bc", - -- kernels .. "/dawn_sc_111205_111211.bc", - -- kernels .. "/dawn_sc_111212_111218.bc", - -- kernels .. "/dawn_sc_111219_111225.bc", - -- kernels .. "/dawn_sc_111226_120101.bc", - -- kernels .. "/dawn_sc_120102_120108.bc", - -- kernels .. "/dawn_sc_120109_120115.bc", - -- kernels .. "/dawn_sc_120116_120122.bc", - -- kernels .. "/dawn_sc_120123_120129.bc", - -- kernels .. "/dawn_sc_120130_120205.bc", - -- kernels .. "/dawn_sc_120206_120212.bc", - -- kernels .. "/dawn_sc_120213_120219.bc", - -- kernels .. "/dawn_sc_120220_120226.bc", - -- kernels .. "/dawn_sc_120227_120304.bc", - -- kernels .. "/dawn_sc_120305_120311.bc", - -- kernels .. "/dawn_sc_120312_120318.bc", - -- kernels .. "/dawn_sc_120319_120325.bc", - -- kernels .. "/dawn_sc_120326_120401.bc", - -- kernels .. "/dawn_sc_120402_120408.bc", - -- kernels .. "/dawn_sc_120409_120415.bc", - -- kernels .. "/dawn_sc_120416_120422.bc", - -- kernels .. "/dawn_sc_120423_120429.bc", - -- kernels .. "/dawn_sc_120430_120506.bc", - -- kernels .. "/dawn_sc_120507_120513.bc", - -- kernels .. "/dawn_sc_120514_120520.bc", - -- kernels .. "/dawn_sc_120521_120527.bc", - -- kernels .. "/dawn_sc_120528_120603.bc", - -- kernels .. "/dawn_sc_120604_120610.bc", - -- kernels .. "/dawn_sc_120611_120617.bc", - -- kernels .. "/dawn_sc_120618_120624.bc", - -- kernels .. "/dawn_sc_120625_120701.bc", - -- kernels .. "/dawn_sc_120702_120708.bc", - -- kernels .. "/dawn_sc_120709_120715.bc", - -- kernels .. "/dawn_sc_120716_120722.bc", - -- kernels .. "/dawn_sc_120723_120729.bc", - -- kernels .. "/dawn_sc_120730_120805.bc", - -- kernels .. "/dawn_sc_120806_120812.bc", - -- kernels .. "/dawn_sc_120813_120819.bc", - -- kernels .. "/dawn_sc_120820_120826.bc", - -- kernels .. "/dawn_sc_120827_120902.bc", - -- kernels .. "/dawn_sc_120903_120909.bc", - -- kernels .. "/dawn_sc_120910_120916.bc", - -- kernels .. "/dawn_sc_f2_3942xxxxx.bc", - -- kernels .. "/dawn_sc_pred_da028b_00_eu.bc", - -- kernels .. "/dawn_sc_pred_dc041a_00.bc", + -- kernels .. "dawn_sc_120123_120129.bc", + -- kernels .. "dawn_sc_070927_070930.bc", + --[[kernels .. "ck/dawn_sc_071001_071007.bc", + kernels .. "dawn_sc_071008_071014_v2.bc", + kernels .. "dawn_sc_071015_071021.bc", + kernels .. "dawn_sc_071022_071028_v2.bc", + kernels .. "dawn_sc_071029_071104.bc", + kernels .. "dawn_sc_071105_071111.bc", + kernels .. "dawn_sc_071112_071118.bc", + kernels .. "dawn_sc_071119_071125.bc", + kernels .. "dawn_sc_071126_071202.bc", + kernels .. "dawn_sc_071203_071209.bc", + kernels .. "dawn_sc_071210_071216.bc", + kernels .. "dawn_sc_071217_071223.bc", + kernels .. "dawn_sc_071224_071230.bc", + kernels .. "dawn_sc_071231_080106.bc", + kernels .. "dawn_sc_080107_080113.bc", + kernels .. "dawn_sc_080114_080120.bc", + kernels .. "dawn_sc_080121_080127.bc", + kernels .. "dawn_sc_080128_080203.bc", + kernels .. "dawn_sc_080204_080210.bc", + kernels .. "dawn_sc_080211_080217.bc", + kernels .. "dawn_sc_080218_080224.bc", + kernels .. "dawn_sc_080225_080302.bc", + kernels .. "dawn_sc_080303_080309.bc", + kernels .. "dawn_sc_080310_080316.bc", + kernels .. "dawn_sc_080317_080323.bc", + kernels .. "dawn_sc_080324_080330.bc", + kernels .. "dawn_sc_080331_080406.bc", + kernels .. "dawn_sc_080407_080413.bc", + kernels .. "dawn_sc_080414_080420.bc", + kernels .. "dawn_sc_080421_080427.bc", + kernels .. "dawn_sc_080428_080504.bc", + kernels .. "dawn_sc_080505_080511.bc", + kernels .. "dawn_sc_080512_080518.bc", + kernels .. "dawn_sc_080519_080525.bc", + kernels .. "dawn_sc_080526_080601.bc", + kernels .. "dawn_sc_080602_080608.bc", + kernels .. "dawn_sc_080609_080615.bc", + kernels .. "dawn_sc_080616_080622.bc", + kernels .. "dawn_sc_080623_080629.bc", + kernels .. "dawn_sc_080630_080706.bc", + kernels .. "dawn_sc_080707_080713.bc", + kernels .. "dawn_sc_080714_080720.bc", + kernels .. "dawn_sc_080721_080727.bc", + kernels .. "dawn_sc_080728_080803.bc", + kernels .. "dawn_sc_080804_080810.bc", + kernels .. "dawn_sc_080811_080817.bc", + kernels .. "dawn_sc_080818_080824.bc", + kernels .. "dawn_sc_080825_080831.bc", + kernels .. "dawn_sc_080901_080907.bc", + kernels .. "dawn_sc_080908_080914.bc", + kernels .. "dawn_sc_080915_080921.bc", + kernels .. "dawn_sc_080922_080928.bc", + kernels .. "dawn_sc_080929_081005.bc", + kernels .. "dawn_sc_081006_081012.bc", + kernels .. "dawn_sc_081013_081019.bc", + kernels .. "dawn_sc_081020_081026.bc", + kernels .. "dawn_sc_081027_081102.bc", + kernels .. "dawn_sc_081103_081109.bc", + kernels .. "dawn_sc_081110_081116.bc", + kernels .. "dawn_sc_081117_081123.bc", + kernels .. "dawn_sc_081124_081130.bc", + kernels .. "dawn_sc_081201_081207.bc", + kernels .. "dawn_sc_081208_081214.bc", + kernels .. "dawn_sc_081215_081221.bc", + kernels .. "dawn_sc_081222_081228.bc", + kernels .. "dawn_sc_081229_090104.bc", + kernels .. "dawn_sc_090105_090111.bc", + kernels .. "dawn_sc_090112_090118.bc", + kernels .. "dawn_sc_090119_090125.bc", + kernels .. "dawn_sc_090126_090201.bc", + kernels .. "dawn_sc_090202_090208.bc", + kernels .. "dawn_sc_090209_090215.bc", + kernels .. "dawn_sc_090216_090222.bc", + kernels .. "dawn_sc_090223_090301.bc", + kernels .. "dawn_sc_090302_090308.bc", + kernels .. "dawn_sc_090309_090315.bc", + kernels .. "dawn_sc_090316_090322.bc", + kernels .. "dawn_sc_090323_090329.bc", + kernels .. "dawn_sc_090330_090405.bc", + kernels .. "dawn_sc_090406_090412.bc", + kernels .. "dawn_sc_090413_090419.bc", + kernels .. "dawn_sc_090420_090426.bc", + kernels .. "dawn_sc_090427_090503.bc", + kernels .. "dawn_sc_090504_090510.bc", + kernels .. "dawn_sc_090511_090517.bc", + kernels .. "dawn_sc_090518_090524.bc", + kernels .. "dawn_sc_090525_090531.bc", + kernels .. "dawn_sc_090601_090607.bc", + kernels .. "dawn_sc_090608_090614.bc", + kernels .. "dawn_sc_090615_090621.bc", + kernels .. "dawn_sc_090622_090628.bc", + kernels .. "dawn_sc_090629_090705.bc", + kernels .. "dawn_sc_090706_090712.bc", + kernels .. "dawn_sc_090713_090719.bc", + kernels .. "dawn_sc_090720_090726.bc", + kernels .. "dawn_sc_090727_090802.bc", + kernels .. "dawn_sc_090803_090809.bc", + kernels .. "dawn_sc_090810_090816.bc", + kernels .. "dawn_sc_090817_090823.bc", + kernels .. "dawn_sc_090824_090830.bc", + kernels .. "dawn_sc_090831_090906.bc", + kernels .. "dawn_sc_090907_090913.bc", + kernels .. "dawn_sc_090914_090920.bc", + kernels .. "dawn_sc_090921_090927.bc", + kernels .. "dawn_sc_090928_091004.bc", + kernels .. "dawn_sc_091005_091011.bc", + kernels .. "dawn_sc_091012_091018.bc", + kernels .. "dawn_sc_091019_091025.bc", + kernels .. "dawn_sc_091026_091101.bc", + kernels .. "dawn_sc_091102_091108.bc", + kernels .. "dawn_sc_091109_091115.bc", + kernels .. "dawn_sc_091116_091122.bc", + kernels .. "dawn_sc_091123_091129.bc", + kernels .. "dawn_sc_091130_091206.bc", + kernels .. "dawn_sc_091207_091213.bc", + kernels .. "dawn_sc_091214_091220.bc", + kernels .. "dawn_sc_091221_091227.bc", + kernels .. "dawn_sc_091228_100103.bc", + kernels .. "dawn_sc_100104_100110_v2.bc", + kernels .. "dawn_sc_100111_100117_v2.bc",--]] + -- kernels .. "dawn_sc_100118_100124.bc", + -- kernels .. "dawn_sc_100125_100131.bc", + -- kernels .. "dawn_sc_100201_100207.bc", + -- kernels .. "dawn_sc_100208_100214.bc", + -- kernels .. "dawn_sc_100215_100221.bc", + -- kernels .. "dawn_sc_100222_100228.bc", + -- kernels .. "dawn_sc_100301_100307.bc", + -- kernels .. "dawn_sc_100308_100314.bc", + -- kernels .. "dawn_sc_100315_100321.bc", + -- kernels .. "dawn_sc_100322_100328.bc", + -- kernels .. "dawn_sc_100329_100404.bc", + -- kernels .. "dawn_sc_100405_100411.bc", + -- kernels .. "dawn_sc_100412_100418.bc", + -- kernels .. "dawn_sc_100419_100425.bc", + -- kernels .. "dawn_sc_100426_100502.bc", + -- kernels .. "dawn_sc_100503_100509.bc", + -- kernels .. "dawn_sc_100510_100516.bc", + -- kernels .. "dawn_sc_100517_100523.bc", + -- kernels .. "dawn_sc_100524_100530.bc", + -- kernels .. "dawn_sc_100531_100606.bc", + -- kernels .. "dawn_sc_100607_100613.bc", + -- kernels .. "dawn_sc_100614_100620.bc", + -- kernels .. "dawn_sc_100621_100627.bc", + -- kernels .. "dawn_sc_100628_100704.bc", + -- kernels .. "dawn_sc_100705_100711.bc", + -- kernels .. "dawn_sc_100712_100718.bc", + -- kernels .. "dawn_sc_100719_100725.bc", + -- kernels .. "dawn_sc_100726_100801.bc", + -- kernels .. "dawn_sc_100802_100808.bc", + -- kernels .. "dawn_sc_100809_100815.bc", + -- kernels .. "dawn_sc_100816_100822.bc", + -- kernels .. "dawn_sc_100823_100829.bc", + -- kernels .. "dawn_sc_100830_100905.bc", + -- kernels .. "dawn_sc_100906_100912.bc", + -- kernels .. "dawn_sc_100913_100919.bc", + -- kernels .. "dawn_sc_100920_100926.bc", + -- kernels .. "dawn_sc_100927_101003.bc", + -- kernels .. "dawn_sc_101004_101010.bc", + -- kernels .. "dawn_sc_101011_101017.bc", + -- kernels .. "dawn_sc_101018_101024.bc", + -- kernels .. "dawn_sc_101025_101031.bc", + -- kernels .. "dawn_sc_101101_101107.bc", + -- kernels .. "dawn_sc_101108_101114.bc", + -- kernels .. "dawn_sc_101115_101121.bc", + -- kernels .. "dawn_sc_101122_101128.bc", + -- kernels .. "dawn_sc_101129_101205.bc", + -- kernels .. "dawn_sc_101206_101212.bc", + -- kernels .. "dawn_sc_101213_101219.bc", + -- kernels .. "dawn_sc_101220_101226.bc", + -- kernels .. "dawn_sc_101227_110102.bc", + -- kernels .. "dawn_sc_110103_110109.bc", + -- kernels .. "dawn_sc_110110_110116.bc", + -- kernels .. "dawn_sc_110117_110123.bc", + -- kernels .. "dawn_sc_110124_110130.bc", + -- kernels .. "dawn_sc_110131_110206.bc", + -- kernels .. "dawn_sc_110207_110213.bc", + -- kernels .. "dawn_sc_110214_110220.bc", + -- kernels .. "dawn_sc_110221_110227.bc", + -- kernels .. "dawn_sc_110228_110306.bc", + -- kernels .. "dawn_sc_110307_110313.bc", + -- kernels .. "dawn_sc_110314_110320.bc", + -- kernels .. "dawn_sc_110321_110327.bc", + -- kernels .. "dawn_sc_110328_110403.bc", + -- kernels .. "dawn_sc_110404_110410.bc", + -- kernels .. "dawn_sc_110411_110417.bc", + -- kernels .. "dawn_sc_110418_110424.bc", + -- kernels .. "dawn_sc_110425_110501.bc", + -- kernels .. "dawn_sc_110502_110508.bc", + -- kernels .. "dawn_sc_110509_110515.bc", + -- kernels .. "dawn_sc_110516_110522.bc", + -- kernels .. "dawn_sc_110523_110529.bc", + -- kernels .. "dawn_sc_110530_110605.bc", + -- kernels .. "dawn_sc_110606_110612.bc", + -- kernels .. "dawn_sc_110613_110619.bc", + -- kernels .. "dawn_sc_110620_110626.bc", + -- kernels .. "dawn_sc_110627_110703.bc", + -- kernels .. "dawn_sc_110704_110710.bc", + -- kernels .. "dawn_sc_110711_110717.bc", + -- kernels .. "dawn_sc_110718_110724.bc", + -- kernels .. "dawn_sc_110725_110731.bc", + -- kernels .. "dawn_sc_110801_110807.bc", + -- kernels .. "dawn_sc_110808_110814.bc", + -- kernels .. "dawn_sc_110815_110821.bc", + -- kernels .. "dawn_sc_110822_110828.bc", + -- kernels .. "dawn_sc_110829_110904.bc", + -- kernels .. "dawn_sc_110905_110911.bc", + -- kernels .. "dawn_sc_110912_110918.bc", + -- kernels .. "dawn_sc_110919_110925.bc", + -- kernels .. "dawn_sc_110926_111002.bc", + -- kernels .. "dawn_sc_111003_111009.bc", + -- kernels .. "dawn_sc_111010_111016.bc", + -- kernels .. "dawn_sc_111017_111023.bc", + -- kernels .. "dawn_sc_111024_111030.bc", + -- kernels .. "dawn_sc_111031_111106.bc", + -- kernels .. "dawn_sc_111107_111113.bc", + -- kernels .. "dawn_sc_111114_111120.bc", + -- kernels .. "dawn_sc_111121_111127.bc", + -- kernels .. "dawn_sc_111128_111204.bc", + -- kernels .. "dawn_sc_111205_111211.bc", + -- kernels .. "dawn_sc_111212_111218.bc", + -- kernels .. "dawn_sc_111219_111225.bc", + -- kernels .. "dawn_sc_111226_120101.bc", + -- kernels .. "dawn_sc_120102_120108.bc", + -- kernels .. "dawn_sc_120109_120115.bc", + -- kernels .. "dawn_sc_120116_120122.bc", + -- kernels .. "dawn_sc_120123_120129.bc", + -- kernels .. "dawn_sc_120130_120205.bc", + -- kernels .. "dawn_sc_120206_120212.bc", + -- kernels .. "dawn_sc_120213_120219.bc", + -- kernels .. "dawn_sc_120220_120226.bc", + -- kernels .. "dawn_sc_120227_120304.bc", + -- kernels .. "dawn_sc_120305_120311.bc", + -- kernels .. "dawn_sc_120312_120318.bc", + -- kernels .. "dawn_sc_120319_120325.bc", + -- kernels .. "dawn_sc_120326_120401.bc", + -- kernels .. "dawn_sc_120402_120408.bc", + -- kernels .. "dawn_sc_120409_120415.bc", + -- kernels .. "dawn_sc_120416_120422.bc", + -- kernels .. "dawn_sc_120423_120429.bc", + -- kernels .. "dawn_sc_120430_120506.bc", + -- kernels .. "dawn_sc_120507_120513.bc", + -- kernels .. "dawn_sc_120514_120520.bc", + -- kernels .. "dawn_sc_120521_120527.bc", + -- kernels .. "dawn_sc_120528_120603.bc", + -- kernels .. "dawn_sc_120604_120610.bc", + -- kernels .. "dawn_sc_120611_120617.bc", + -- kernels .. "dawn_sc_120618_120624.bc", + -- kernels .. "dawn_sc_120625_120701.bc", + -- kernels .. "dawn_sc_120702_120708.bc", + -- kernels .. "dawn_sc_120709_120715.bc", + -- kernels .. "dawn_sc_120716_120722.bc", + -- kernels .. "dawn_sc_120723_120729.bc", + -- kernels .. "dawn_sc_120730_120805.bc", + -- kernels .. "dawn_sc_120806_120812.bc", + -- kernels .. "dawn_sc_120813_120819.bc", + -- kernels .. "dawn_sc_120820_120826.bc", + -- kernels .. "dawn_sc_120827_120902.bc", + -- kernels .. "dawn_sc_120903_120909.bc", + -- kernels .. "dawn_sc_120910_120916.bc", + -- kernels .. "dawn_sc_f2_3942xxxxx.bc", + -- kernels .. "dawn_sc_pred_da028b_00_eu.bc", + -- kernels .. "dawn_sc_pred_dc041a_00.bc", -- Solar array rotation kernels ~ 2gb - kernels .. "/dawn_sa_070927_070930.bc", - --[[kernels .. "/ck/dawn_sa_071001_071007.bc", - kernels .. "/dawn_sa_071008_071014.bc", - kernels .. "/dawn_sa_071015_071021.bc", - kernels .. "/dawn_sa_071022_071028_v2.bc", - kernels .. "/dawn_sa_071029_071104.bc", - kernels .. "/dawn_sa_071105_071111.bc", - kernels .. "/dawn_sa_071112_071118.bc", - kernels .. "/dawn_sa_071119_071125.bc", - kernels .. "/dawn_sa_071126_071202.bc", - kernels .. "/dawn_sa_071203_071209.bc", - kernels .. "/dawn_sa_071210_071216.bc", - kernels .. "/dawn_sa_071217_071223.bc", - kernels .. "/dawn_sa_071224_071230.bc", - kernels .. "/dawn_sa_071231_080106.bc", - kernels .. "/dawn_sa_080107_080113.bc", - kernels .. "/dawn_sa_080114_080120.bc", - kernels .. "/dawn_sa_080121_080127.bc", - kernels .. "/dawn_sa_080128_080203.bc", - kernels .. "/dawn_sa_080204_080210.bc", - kernels .. "/dawn_sa_080211_080217.bc", - kernels .. "/dawn_sa_080218_080224.bc", - kernels .. "/dawn_sa_080225_080302.bc", - kernels .. "/dawn_sa_080303_080309.bc", - kernels .. "/dawn_sa_080310_080316.bc", - kernels .. "/dawn_sa_080317_080323.bc", - kernels .. "/dawn_sa_080324_080330.bc", - kernels .. "/dawn_sa_080331_080406.bc", - kernels .. "/dawn_sa_080407_080413.bc", - kernels .. "/dawn_sa_080414_080420.bc", - kernels .. "/dawn_sa_080421_080427.bc", - kernels .. "/dawn_sa_080428_080504.bc", - kernels .. "/dawn_sa_080505_080511.bc", - kernels .. "/dawn_sa_080512_080518.bc", - kernels .. "/dawn_sa_080519_080525.bc", - kernels .. "/dawn_sa_080526_080601.bc", - kernels .. "/dawn_sa_080602_080608.bc", - kernels .. "/dawn_sa_080609_080615.bc", - kernels .. "/dawn_sa_080616_080622.bc", - kernels .. "/dawn_sa_080623_080629.bc", - kernels .. "/dawn_sa_080630_080706.bc", - kernels .. "/dawn_sa_080707_080713.bc", - kernels .. "/dawn_sa_080714_080720.bc", - kernels .. "/dawn_sa_080721_080727.bc", - kernels .. "/dawn_sa_080728_080803.bc", - kernels .. "/dawn_sa_080804_080810.bc", - kernels .. "/dawn_sa_080811_080817.bc", - kernels .. "/dawn_sa_080818_080824.bc", - kernels .. "/dawn_sa_080825_080831.bc", - kernels .. "/dawn_sa_080901_080907.bc", - kernels .. "/dawn_sa_080908_080914.bc", - kernels .. "/dawn_sa_080915_080921.bc", - kernels .. "/dawn_sa_080922_080928.bc", - kernels .. "/dawn_sa_080929_081005.bc", - kernels .. "/dawn_sa_081006_081012.bc", - kernels .. "/dawn_sa_081013_081019.bc", - kernels .. "/dawn_sa_081020_081026.bc", - kernels .. "/dawn_sa_081027_081102.bc", - kernels .. "/dawn_sa_081103_081109.bc", - kernels .. "/dawn_sa_081110_081116.bc", - kernels .. "/dawn_sa_081117_081123.bc", - kernels .. "/dawn_sa_081124_081130.bc", - kernels .. "/dawn_sa_081201_081207.bc", - kernels .. "/dawn_sa_081208_081214.bc", - kernels .. "/dawn_sa_081215_081221.bc", - kernels .. "/dawn_sa_081222_081228.bc", - kernels .. "/dawn_sa_081229_090104.bc", - kernels .. "/dawn_sa_090105_090111.bc", - kernels .. "/dawn_sa_090112_090118.bc", - kernels .. "/dawn_sa_090119_090125.bc", - kernels .. "/dawn_sa_090126_090201.bc", - kernels .. "/dawn_sa_090202_090208.bc", - kernels .. "/dawn_sa_090209_090215.bc", - kernels .. "/dawn_sa_090216_090222.bc", - kernels .. "/dawn_sa_090223_090301.bc", - kernels .. "/dawn_sa_090302_090308.bc", - kernels .. "/dawn_sa_090309_090315.bc", - kernels .. "/dawn_sa_090316_090322.bc", - kernels .. "/dawn_sa_090323_090329.bc", - kernels .. "/dawn_sa_090330_090405.bc", - kernels .. "/dawn_sa_090406_090412.bc", - kernels .. "/dawn_sa_090413_090419.bc", - kernels .. "/dawn_sa_090420_090426.bc", - kernels .. "/dawn_sa_090427_090503.bc", - kernels .. "/dawn_sa_090504_090510.bc", - kernels .. "/dawn_sa_090511_090517.bc", - kernels .. "/dawn_sa_090518_090524.bc", - kernels .. "/dawn_sa_090525_090531.bc", - kernels .. "/dawn_sa_090601_090607.bc", - kernels .. "/dawn_sa_090608_090614.bc", - kernels .. "/dawn_sa_090615_090621.bc", - kernels .. "/dawn_sa_090622_090628.bc", - kernels .. "/dawn_sa_090629_090705.bc", - kernels .. "/dawn_sa_090706_090712.bc", - kernels .. "/dawn_sa_090713_090719.bc", - kernels .. "/dawn_sa_090720_090726.bc", - kernels .. "/dawn_sa_090727_090802.bc", - kernels .. "/dawn_sa_090803_090809.bc", - kernels .. "/dawn_sa_090810_090816.bc", - kernels .. "/dawn_sa_090817_090823.bc", - kernels .. "/dawn_sa_090824_090830.bc", - kernels .. "/dawn_sa_090831_090906.bc", - kernels .. "/dawn_sa_090907_090913.bc", - kernels .. "/dawn_sa_090914_090920.bc", - kernels .. "/dawn_sa_090921_090927.bc", - kernels .. "/dawn_sa_090928_091004.bc", - kernels .. "/dawn_sa_091005_091011.bc", - kernels .. "/dawn_sa_091012_091018.bc", - kernels .. "/dawn_sa_091019_091025.bc", - kernels .. "/dawn_sa_091026_091101.bc", - kernels .. "/dawn_sa_091102_091108.bc", - kernels .. "/dawn_sa_091109_091115.bc", - kernels .. "/dawn_sa_091116_091122.bc", - kernels .. "/dawn_sa_091123_091129.bc", - kernels .. "/dawn_sa_091130_091206.bc", - kernels .. "/dawn_sa_091207_091213.bc", - kernels .. "/dawn_sa_091214_091220.bc", - kernels .. "/dawn_sa_091221_091227.bc", - kernels .. "/dawn_sa_091228_100103.bc", - kernels .. "/dawn_sa_100104_100110_v2.bc", - kernels .. "/dawn_sa_100111_100117_v2.bc", - kernels .. "/dawn_sa_100118_100124.bc", - kernels .. "/dawn_sa_100125_100131.bc", - kernels .. "/dawn_sa_100201_100207.bc", - kernels .. "/dawn_sa_100208_100214.bc", - kernels .. "/dawn_sa_100215_100221.bc", - kernels .. "/dawn_sa_100222_100228.bc", - kernels .. "/dawn_sa_100301_100307.bc", - kernels .. "/dawn_sa_100308_100314.bc", - kernels .. "/dawn_sa_100315_100321.bc", - kernels .. "/dawn_sa_100322_100328.bc", - kernels .. "/dawn_sa_100329_100404.bc", - kernels .. "/dawn_sa_100405_100411.bc", - kernels .. "/dawn_sa_100412_100418.bc", - kernels .. "/dawn_sa_100419_100425.bc", - kernels .. "/dawn_sa_100426_100502.bc", - kernels .. "/dawn_sa_100503_100509.bc", - kernels .. "/dawn_sa_100510_100516.bc", - kernels .. "/dawn_sa_100517_100523.bc", - kernels .. "/dawn_sa_100524_100530.bc", - kernels .. "/dawn_sa_100531_100606.bc", - kernels .. "/dawn_sa_100607_100613.bc", - kernels .. "/dawn_sa_100614_100620.bc", - kernels .. "/dawn_sa_100621_100627.bc", - kernels .. "/dawn_sa_100628_100704.bc", - kernels .. "/dawn_sa_100705_100711.bc", - kernels .. "/dawn_sa_100712_100718.bc", - kernels .. "/dawn_sa_100719_100725.bc", - kernels .. "/dawn_sa_100726_100801.bc", - kernels .. "/dawn_sa_100802_100808.bc", - kernels .. "/dawn_sa_100809_100815.bc", - kernels .. "/dawn_sa_100816_100822.bc", - kernels .. "/dawn_sa_100823_100829.bc", - kernels .. "/dawn_sa_100830_100905.bc", - kernels .. "/dawn_sa_100906_100912.bc", - kernels .. "/dawn_sa_100913_100919.bc", - kernels .. "/dawn_sa_100920_100926.bc", - kernels .. "/dawn_sa_100927_101003.bc", - kernels .. "/dawn_sa_101004_101010.bc", - kernels .. "/dawn_sa_101011_101017.bc", --]] - -- kernels .. "/dawn_sa_101018_101024.bc", - -- kernels .. "/dawn_sa_101025_101031.bc", - -- kernels .. "/dawn_sa_101101_101107.bc", - -- kernels .. "/dawn_sa_101108_101114.bc", - -- kernels .. "/dawn_sa_101115_101121.bc", - -- kernels .. "/dawn_sa_101122_101128.bc", - -- kernels .. "/dawn_sa_101129_101205.bc", - -- kernels .. "/dawn_sa_101206_101212.bc", - -- kernels .. "/dawn_sa_101213_101219.bc", - -- kernels .. "/dawn_sa_101220_101226.bc", - -- kernels .. "/dawn_sa_101227_110102.bc", - -- kernels .. "/dawn_sa_110103_110109.bc", - -- kernels .. "/dawn_sa_110110_110116.bc", - -- kernels .. "/dawn_sa_110117_110123.bc", - -- kernels .. "/dawn_sa_110124_110130.bc", - -- kernels .. "/dawn_sa_110131_110206.bc", - -- kernels .. "/dawn_sa_110207_110213.bc", - -- kernels .. "/dawn_sa_110214_110220.bc", - -- kernels .. "/dawn_sa_110221_110227.bc", - -- kernels .. "/dawn_sa_110228_110306.bc", - -- kernels .. "/dawn_sa_110307_110313.bc", - -- kernels .. "/dawn_sa_110314_110320.bc", - -- kernels .. "/dawn_sa_110321_110327.bc", - -- kernels .. "/dawn_sa_110328_110403.bc", - -- kernels .. "/dawn_sa_110404_110410.bc", - -- kernels .. "/dawn_sa_110411_110417.bc", - -- kernels .. "/dawn_sa_110418_110424.bc", - -- kernels .. "/dawn_sa_110425_110501.bc", - -- kernels .. "/dawn_sa_110502_110508.bc", - -- kernels .. "/dawn_sa_110509_110515.bc", - -- kernels .. "/dawn_sa_110516_110522.bc", - -- kernels .. "/dawn_sa_110523_110529.bc", - -- kernels .. "/dawn_sa_110530_110605.bc", - -- kernels .. "/dawn_sa_110606_110612.bc", - -- kernels .. "/dawn_sa_110613_110619.bc", - -- kernels .. "/dawn_sa_110620_110626.bc", - -- kernels .. "/dawn_sa_110627_110703.bc", - -- kernels .. "/dawn_sa_110704_110710.bc", - -- kernels .. "/dawn_sa_110711_110717.bc", - -- kernels .. "/dawn_sa_110718_110724.bc", - -- kernels .. "/dawn_sa_110725_110731.bc", - -- kernels .. "/dawn_sa_110801_110807.bc", - -- kernels .. "/dawn_sa_110808_110814.bc", - -- kernels .. "/dawn_sa_110815_110821.bc", - -- kernels .. "/dawn_sa_110822_110828.bc", - -- kernels .. "/dawn_sa_110829_110904.bc", - -- kernels .. "/dawn_sa_110905_110911.bc", - -- kernels .. "/dawn_sa_110912_110918.bc", - -- kernels .. "/dawn_sa_110919_110925.bc", - -- kernels .. "/dawn_sa_110926_111002.bc", - -- kernels .. "/dawn_sa_111003_111009.bc", - -- kernels .. "/dawn_sa_111010_111016.bc", - -- kernels .. "/dawn_sa_111017_111023.bc", - -- kernels .. "/dawn_sa_111024_111030.bc", - -- kernels .. "/dawn_sa_111031_111106.bc", - -- kernels .. "/dawn_sa_111107_111113.bc", - -- kernels .. "/dawn_sa_111114_111120.bc", - -- kernels .. "/dawn_sa_111121_111127.bc", - -- kernels .. "/dawn_sa_111128_111204.bc", - -- kernels .. "/dawn_sa_111205_111211.bc", - -- kernels .. "/dawn_sa_111212_111218.bc", - -- kernels .. "/dawn_sa_111219_111225.bc", - -- kernels .. "/dawn_sa_111226_120101.bc", - -- kernels .. "/dawn_sa_120102_120108.bc", - -- kernels .. "/dawn_sa_120109_120115.bc", - -- kernels .. "/dawn_sa_120116_120122.bc", - -- kernels .. "/dawn_sa_120123_120129.bc", - -- kernels .. "/dawn_sa_120130_120205.bc", - -- kernels .. "/dawn_sa_120206_120212.bc", - -- kernels .. "/dawn_sa_120213_120219.bc", - -- kernels .. "/dawn_sa_120220_120226.bc", - -- kernels .. "/dawn_sa_120227_120304.bc", - -- kernels .. "/dawn_sa_120305_120311.bc", - -- kernels .. "/dawn_sa_120312_120318.bc", - -- kernels .. "/dawn_sa_120319_120325.bc", - -- kernels .. "/dawn_sa_120326_120401.bc", - -- kernels .. "/dawn_sa_120402_120408.bc", - -- kernels .. "/dawn_sa_120409_120415.bc", - -- kernels .. "/dawn_sa_120416_120422.bc", - -- kernels .. "/dawn_sa_120423_120429.bc", - -- kernels .. "/dawn_sa_120430_120506.bc", - -- kernels .. "/dawn_sa_120507_120513.bc", - -- kernels .. "/dawn_sa_120514_120520.bc", - -- kernels .. "/dawn_sa_120521_120527.bc", - -- kernels .. "/dawn_sa_120528_120603.bc", - -- kernels .. "/dawn_sa_120604_120610.bc", - -- kernels .. "/dawn_sa_120611_120617.bc", - -- kernels .. "/dawn_sa_120618_120624.bc", - -- kernels .. "/dawn_sa_120625_120701.bc", - -- kernels .. "/dawn_sa_120702_120708.bc", - -- kernels .. "/dawn_sa_120709_120715.bc", - -- kernels .. "/dawn_sa_120716_120722.bc", - -- kernels .. "/dawn_sa_120723_120729.bc", - -- kernels .. "/dawn_sa_120730_120805.bc", - -- kernels .. "/dawn_sa_120806_120812.bc", - -- kernels .. "/dawn_sa_120813_120819.bc", - -- kernels .. "/dawn_sa_120820_120826.bc", - -- kernels .. "/dawn_sa_120827_120902.bc", - -- kernels .. "/dawn_sa_120903_120909.bc", - -- kernels .. "/dawn_sa_120910_120916.bc", + kernels .. "dawn_sa_070927_070930.bc", + --[[kernels .. "ck/dawn_sa_071001_071007.bc", + kernels .. "dawn_sa_071008_071014.bc", + kernels .. "dawn_sa_071015_071021.bc", + kernels .. "dawn_sa_071022_071028_v2.bc", + kernels .. "dawn_sa_071029_071104.bc", + kernels .. "dawn_sa_071105_071111.bc", + kernels .. "dawn_sa_071112_071118.bc", + kernels .. "dawn_sa_071119_071125.bc", + kernels .. "dawn_sa_071126_071202.bc", + kernels .. "dawn_sa_071203_071209.bc", + kernels .. "dawn_sa_071210_071216.bc", + kernels .. "dawn_sa_071217_071223.bc", + kernels .. "dawn_sa_071224_071230.bc", + kernels .. "dawn_sa_071231_080106.bc", + kernels .. "dawn_sa_080107_080113.bc", + kernels .. "dawn_sa_080114_080120.bc", + kernels .. "dawn_sa_080121_080127.bc", + kernels .. "dawn_sa_080128_080203.bc", + kernels .. "dawn_sa_080204_080210.bc", + kernels .. "dawn_sa_080211_080217.bc", + kernels .. "dawn_sa_080218_080224.bc", + kernels .. "dawn_sa_080225_080302.bc", + kernels .. "dawn_sa_080303_080309.bc", + kernels .. "dawn_sa_080310_080316.bc", + kernels .. "dawn_sa_080317_080323.bc", + kernels .. "dawn_sa_080324_080330.bc", + kernels .. "dawn_sa_080331_080406.bc", + kernels .. "dawn_sa_080407_080413.bc", + kernels .. "dawn_sa_080414_080420.bc", + kernels .. "dawn_sa_080421_080427.bc", + kernels .. "dawn_sa_080428_080504.bc", + kernels .. "dawn_sa_080505_080511.bc", + kernels .. "dawn_sa_080512_080518.bc", + kernels .. "dawn_sa_080519_080525.bc", + kernels .. "dawn_sa_080526_080601.bc", + kernels .. "dawn_sa_080602_080608.bc", + kernels .. "dawn_sa_080609_080615.bc", + kernels .. "dawn_sa_080616_080622.bc", + kernels .. "dawn_sa_080623_080629.bc", + kernels .. "dawn_sa_080630_080706.bc", + kernels .. "dawn_sa_080707_080713.bc", + kernels .. "dawn_sa_080714_080720.bc", + kernels .. "dawn_sa_080721_080727.bc", + kernels .. "dawn_sa_080728_080803.bc", + kernels .. "dawn_sa_080804_080810.bc", + kernels .. "dawn_sa_080811_080817.bc", + kernels .. "dawn_sa_080818_080824.bc", + kernels .. "dawn_sa_080825_080831.bc", + kernels .. "dawn_sa_080901_080907.bc", + kernels .. "dawn_sa_080908_080914.bc", + kernels .. "dawn_sa_080915_080921.bc", + kernels .. "dawn_sa_080922_080928.bc", + kernels .. "dawn_sa_080929_081005.bc", + kernels .. "dawn_sa_081006_081012.bc", + kernels .. "dawn_sa_081013_081019.bc", + kernels .. "dawn_sa_081020_081026.bc", + kernels .. "dawn_sa_081027_081102.bc", + kernels .. "dawn_sa_081103_081109.bc", + kernels .. "dawn_sa_081110_081116.bc", + kernels .. "dawn_sa_081117_081123.bc", + kernels .. "dawn_sa_081124_081130.bc", + kernels .. "dawn_sa_081201_081207.bc", + kernels .. "dawn_sa_081208_081214.bc", + kernels .. "dawn_sa_081215_081221.bc", + kernels .. "dawn_sa_081222_081228.bc", + kernels .. "dawn_sa_081229_090104.bc", + kernels .. "dawn_sa_090105_090111.bc", + kernels .. "dawn_sa_090112_090118.bc", + kernels .. "dawn_sa_090119_090125.bc", + kernels .. "dawn_sa_090126_090201.bc", + kernels .. "dawn_sa_090202_090208.bc", + kernels .. "dawn_sa_090209_090215.bc", + kernels .. "dawn_sa_090216_090222.bc", + kernels .. "dawn_sa_090223_090301.bc", + kernels .. "dawn_sa_090302_090308.bc", + kernels .. "dawn_sa_090309_090315.bc", + kernels .. "dawn_sa_090316_090322.bc", + kernels .. "dawn_sa_090323_090329.bc", + kernels .. "dawn_sa_090330_090405.bc", + kernels .. "dawn_sa_090406_090412.bc", + kernels .. "dawn_sa_090413_090419.bc", + kernels .. "dawn_sa_090420_090426.bc", + kernels .. "dawn_sa_090427_090503.bc", + kernels .. "dawn_sa_090504_090510.bc", + kernels .. "dawn_sa_090511_090517.bc", + kernels .. "dawn_sa_090518_090524.bc", + kernels .. "dawn_sa_090525_090531.bc", + kernels .. "dawn_sa_090601_090607.bc", + kernels .. "dawn_sa_090608_090614.bc", + kernels .. "dawn_sa_090615_090621.bc", + kernels .. "dawn_sa_090622_090628.bc", + kernels .. "dawn_sa_090629_090705.bc", + kernels .. "dawn_sa_090706_090712.bc", + kernels .. "dawn_sa_090713_090719.bc", + kernels .. "dawn_sa_090720_090726.bc", + kernels .. "dawn_sa_090727_090802.bc", + kernels .. "dawn_sa_090803_090809.bc", + kernels .. "dawn_sa_090810_090816.bc", + kernels .. "dawn_sa_090817_090823.bc", + kernels .. "dawn_sa_090824_090830.bc", + kernels .. "dawn_sa_090831_090906.bc", + kernels .. "dawn_sa_090907_090913.bc", + kernels .. "dawn_sa_090914_090920.bc", + kernels .. "dawn_sa_090921_090927.bc", + kernels .. "dawn_sa_090928_091004.bc", + kernels .. "dawn_sa_091005_091011.bc", + kernels .. "dawn_sa_091012_091018.bc", + kernels .. "dawn_sa_091019_091025.bc", + kernels .. "dawn_sa_091026_091101.bc", + kernels .. "dawn_sa_091102_091108.bc", + kernels .. "dawn_sa_091109_091115.bc", + kernels .. "dawn_sa_091116_091122.bc", + kernels .. "dawn_sa_091123_091129.bc", + kernels .. "dawn_sa_091130_091206.bc", + kernels .. "dawn_sa_091207_091213.bc", + kernels .. "dawn_sa_091214_091220.bc", + kernels .. "dawn_sa_091221_091227.bc", + kernels .. "dawn_sa_091228_100103.bc", + kernels .. "dawn_sa_100104_100110_v2.bc", + kernels .. "dawn_sa_100111_100117_v2.bc", + kernels .. "dawn_sa_100118_100124.bc", + kernels .. "dawn_sa_100125_100131.bc", + kernels .. "dawn_sa_100201_100207.bc", + kernels .. "dawn_sa_100208_100214.bc", + kernels .. "dawn_sa_100215_100221.bc", + kernels .. "dawn_sa_100222_100228.bc", + kernels .. "dawn_sa_100301_100307.bc", + kernels .. "dawn_sa_100308_100314.bc", + kernels .. "dawn_sa_100315_100321.bc", + kernels .. "dawn_sa_100322_100328.bc", + kernels .. "dawn_sa_100329_100404.bc", + kernels .. "dawn_sa_100405_100411.bc", + kernels .. "dawn_sa_100412_100418.bc", + kernels .. "dawn_sa_100419_100425.bc", + kernels .. "dawn_sa_100426_100502.bc", + kernels .. "dawn_sa_100503_100509.bc", + kernels .. "dawn_sa_100510_100516.bc", + kernels .. "dawn_sa_100517_100523.bc", + kernels .. "dawn_sa_100524_100530.bc", + kernels .. "dawn_sa_100531_100606.bc", + kernels .. "dawn_sa_100607_100613.bc", + kernels .. "dawn_sa_100614_100620.bc", + kernels .. "dawn_sa_100621_100627.bc", + kernels .. "dawn_sa_100628_100704.bc", + kernels .. "dawn_sa_100705_100711.bc", + kernels .. "dawn_sa_100712_100718.bc", + kernels .. "dawn_sa_100719_100725.bc", + kernels .. "dawn_sa_100726_100801.bc", + kernels .. "dawn_sa_100802_100808.bc", + kernels .. "dawn_sa_100809_100815.bc", + kernels .. "dawn_sa_100816_100822.bc", + kernels .. "dawn_sa_100823_100829.bc", + kernels .. "dawn_sa_100830_100905.bc", + kernels .. "dawn_sa_100906_100912.bc", + kernels .. "dawn_sa_100913_100919.bc", + kernels .. "dawn_sa_100920_100926.bc", + kernels .. "dawn_sa_100927_101003.bc", + kernels .. "dawn_sa_101004_101010.bc", + kernels .. "dawn_sa_101011_101017.bc", --]] + -- kernels .. "dawn_sa_101018_101024.bc", + -- kernels .. "dawn_sa_101025_101031.bc", + -- kernels .. "dawn_sa_101101_101107.bc", + -- kernels .. "dawn_sa_101108_101114.bc", + -- kernels .. "dawn_sa_101115_101121.bc", + -- kernels .. "dawn_sa_101122_101128.bc", + -- kernels .. "dawn_sa_101129_101205.bc", + -- kernels .. "dawn_sa_101206_101212.bc", + -- kernels .. "dawn_sa_101213_101219.bc", + -- kernels .. "dawn_sa_101220_101226.bc", + -- kernels .. "dawn_sa_101227_110102.bc", + -- kernels .. "dawn_sa_110103_110109.bc", + -- kernels .. "dawn_sa_110110_110116.bc", + -- kernels .. "dawn_sa_110117_110123.bc", + -- kernels .. "dawn_sa_110124_110130.bc", + -- kernels .. "dawn_sa_110131_110206.bc", + -- kernels .. "dawn_sa_110207_110213.bc", + -- kernels .. "dawn_sa_110214_110220.bc", + -- kernels .. "dawn_sa_110221_110227.bc", + -- kernels .. "dawn_sa_110228_110306.bc", + -- kernels .. "dawn_sa_110307_110313.bc", + -- kernels .. "dawn_sa_110314_110320.bc", + -- kernels .. "dawn_sa_110321_110327.bc", + -- kernels .. "dawn_sa_110328_110403.bc", + -- kernels .. "dawn_sa_110404_110410.bc", + -- kernels .. "dawn_sa_110411_110417.bc", + -- kernels .. "dawn_sa_110418_110424.bc", + -- kernels .. "dawn_sa_110425_110501.bc", + -- kernels .. "dawn_sa_110502_110508.bc", + -- kernels .. "dawn_sa_110509_110515.bc", + -- kernels .. "dawn_sa_110516_110522.bc", + -- kernels .. "dawn_sa_110523_110529.bc", + -- kernels .. "dawn_sa_110530_110605.bc", + -- kernels .. "dawn_sa_110606_110612.bc", + -- kernels .. "dawn_sa_110613_110619.bc", + -- kernels .. "dawn_sa_110620_110626.bc", + -- kernels .. "dawn_sa_110627_110703.bc", + -- kernels .. "dawn_sa_110704_110710.bc", + -- kernels .. "dawn_sa_110711_110717.bc", + -- kernels .. "dawn_sa_110718_110724.bc", + -- kernels .. "dawn_sa_110725_110731.bc", + -- kernels .. "dawn_sa_110801_110807.bc", + -- kernels .. "dawn_sa_110808_110814.bc", + -- kernels .. "dawn_sa_110815_110821.bc", + -- kernels .. "dawn_sa_110822_110828.bc", + -- kernels .. "dawn_sa_110829_110904.bc", + -- kernels .. "dawn_sa_110905_110911.bc", + -- kernels .. "dawn_sa_110912_110918.bc", + -- kernels .. "dawn_sa_110919_110925.bc", + -- kernels .. "dawn_sa_110926_111002.bc", + -- kernels .. "dawn_sa_111003_111009.bc", + -- kernels .. "dawn_sa_111010_111016.bc", + -- kernels .. "dawn_sa_111017_111023.bc", + -- kernels .. "dawn_sa_111024_111030.bc", + -- kernels .. "dawn_sa_111031_111106.bc", + -- kernels .. "dawn_sa_111107_111113.bc", + -- kernels .. "dawn_sa_111114_111120.bc", + -- kernels .. "dawn_sa_111121_111127.bc", + -- kernels .. "dawn_sa_111128_111204.bc", + -- kernels .. "dawn_sa_111205_111211.bc", + -- kernels .. "dawn_sa_111212_111218.bc", + -- kernels .. "dawn_sa_111219_111225.bc", + -- kernels .. "dawn_sa_111226_120101.bc", + -- kernels .. "dawn_sa_120102_120108.bc", + -- kernels .. "dawn_sa_120109_120115.bc", + -- kernels .. "dawn_sa_120116_120122.bc", + -- kernels .. "dawn_sa_120123_120129.bc", + -- kernels .. "dawn_sa_120130_120205.bc", + -- kernels .. "dawn_sa_120206_120212.bc", + -- kernels .. "dawn_sa_120213_120219.bc", + -- kernels .. "dawn_sa_120220_120226.bc", + -- kernels .. "dawn_sa_120227_120304.bc", + -- kernels .. "dawn_sa_120305_120311.bc", + -- kernels .. "dawn_sa_120312_120318.bc", + -- kernels .. "dawn_sa_120319_120325.bc", + -- kernels .. "dawn_sa_120326_120401.bc", + -- kernels .. "dawn_sa_120402_120408.bc", + -- kernels .. "dawn_sa_120409_120415.bc", + -- kernels .. "dawn_sa_120416_120422.bc", + -- kernels .. "dawn_sa_120423_120429.bc", + -- kernels .. "dawn_sa_120430_120506.bc", + -- kernels .. "dawn_sa_120507_120513.bc", + -- kernels .. "dawn_sa_120514_120520.bc", + -- kernels .. "dawn_sa_120521_120527.bc", + -- kernels .. "dawn_sa_120528_120603.bc", + -- kernels .. "dawn_sa_120604_120610.bc", + -- kernels .. "dawn_sa_120611_120617.bc", + -- kernels .. "dawn_sa_120618_120624.bc", + -- kernels .. "dawn_sa_120625_120701.bc", + -- kernels .. "dawn_sa_120702_120708.bc", + -- kernels .. "dawn_sa_120709_120715.bc", + -- kernels .. "dawn_sa_120716_120722.bc", + -- kernels .. "dawn_sa_120723_120729.bc", + -- kernels .. "dawn_sa_120730_120805.bc", + -- kernels .. "dawn_sa_120806_120812.bc", + -- kernels .. "dawn_sa_120813_120819.bc", + -- kernels .. "dawn_sa_120820_120826.bc", + -- kernels .. "dawn_sa_120827_120902.bc", + -- kernels .. "dawn_sa_120903_120909.bc", + -- kernels .. "dawn_sa_120910_120916.bc", } local LightSources = { @@ -650,7 +655,7 @@ local Dawn = { Renderable = { Type = "RenderableModel", Body = "DAWN", - GeometryFile = models .. "/mainbodydawn.obj", + GeometryFile = models .. "mainbodydawn.obj", LightSources = LightSources }, GUI = { @@ -672,13 +677,13 @@ local DawnSolarArray1 = { -- } Rotation = { Type = "StaticRotation", - Rotation = {0.0, 4.71225, 0.0} + Rotation = { 0.0, 4.71225, 0.0 } } }, Renderable = { Type = "RenderableModel", Body = "DAWN", - GeometryFile = models .. "/solarpanelleft.obj", + GeometryFile = models .. "solarpanelleft.obj", LightSources = LightSources }, GUI = { @@ -699,13 +704,13 @@ local DawnSolarArray2 = { -- } Rotation = { Type = "StaticRotation", - Rotation = {3.1415, 1.57075, 0.0} + Rotation = { math.pi, math.pi/2, 0.0 } } }, Renderable = { Type = "RenderableModel", Body = "DAWN", - GeometryFile = models .. "/solarpanelright.obj", + GeometryFile = models .. "solarpanelright.obj", LightSources = LightSources }, GUI = { @@ -783,11 +788,28 @@ local DawnFramingCamera2 = { } } -assetHelper.registerSceneGraphNodesAndExport(asset, { +local nodes = { Dawn, DawnSolarArray1, DawnSolarArray2, DawnTrail, DawnFramingCamera1, DawnFramingCamera2 -}) +} + +asset.onInitialize(function() + for i, node in ipairs(nodes) do + openspace.addSceneGraphNode(node) + end +end) + +asset.onDeinitialize(function() + for i = #nodes, 1, -1 do + local node = nodes[i] + openspace.removeSceneGraphNode(node) + end +end) + +for i, node in ipairs(nodes) do + asset.export(node) +end diff --git a/data/assets/scene/solarsystem/missions/dawn/dawn_kernels.asset b/data/assets/scene/solarsystem/missions/dawn/dawn_kernels.asset deleted file mode 100644 index ab4e5d4c2e..0000000000 --- a/data/assets/scene/solarsystem/missions/dawn/dawn_kernels.asset +++ /dev/null @@ -1,8 +0,0 @@ -local Kernels = asset.syncedResource({ - Name = "Dawn Kernels", - Type = "HttpSynchronization", - Identifier = "dawn_kernels", - Version = 2 -}) - -asset.export("Kernels", Kernels) diff --git a/data/assets/scene/solarsystem/missions/dawn/vesta.asset b/data/assets/scene/solarsystem/missions/dawn/vesta.asset index 247e009502..4c7cf140a2 100644 --- a/data/assets/scene/solarsystem/missions/dawn/vesta.asset +++ b/data/assets/scene/solarsystem/missions/dawn/vesta.asset @@ -1,8 +1,13 @@ -local assetHelper = asset.require('util/asset_helper') -local transforms = asset.require('scene/solarsystem/sun/transforms') -local kernels = asset.require('./dawn_kernels').Kernels +local transforms = asset.require("scene/solarsystem/sun/transforms") +local kernels = asset.syncedResource({ + Name = "Dawn Kernels", + Type = "HttpSynchronization", + Identifier = "dawn_kernels", + Version = 2 +}) + local textures = asset.syncedResource({ Name = "Vesta Textures", Type = "HttpSynchronization", @@ -33,8 +38,8 @@ local Vesta = { Target = "VESTA", Observer = "SSB", Kernels = { - --kernels .. "/dawn_vesta_v06.tpc", - kernels .. "/sb_vesta_071107.bsp" + --kernels .. "dawn_vesta_v06.tpc", + kernels .. "sb_vesta_071107.bsp" } }, Rotation = { @@ -45,7 +50,7 @@ local Vesta = { }, Renderable = { Type = "RenderableModelProjection", - GeometryFile = models .. "/VestaComet_5000.obj", + GeometryFile = models .. "VestaComet_5000.obj", BoundingSphereRadius = 10.0, Projection = { Sequence = images, @@ -132,4 +137,15 @@ local VestaTrail = { } } -assetHelper.registerSceneGraphNodesAndExport(asset, { Vesta, VestaTrail }) +asset.onInitialize(function() + openspace.addSceneGraphNode(Vesta) + openspace.addSceneGraphNode(VestaTrail) +end) + +asset.onDeinitialize(function() + openspace.removeSceneGraphNode(VestaTrail.Identifier) + openspace.removeSceneGraphNode(Vesta.Identifier) +end) + +asset.export(Vesta) +asset.export(VestaTrail) diff --git a/data/assets/scene/solarsystem/missions/gaia/dashboard.asset b/data/assets/scene/solarsystem/missions/gaia/dashboard.asset index 73f1c54413..0097a82b26 100644 --- a/data/assets/scene/solarsystem/missions/gaia/dashboard.asset +++ b/data/assets/scene/solarsystem/missions/gaia/dashboard.asset @@ -1,12 +1,17 @@ -local assetHelper = asset.require('util/asset_helper') -assetHelper.registerDashboardItems(asset, { - { - Type = "DashboardItemDistance", - Identifier = "GaiaEarthDistance", - GuiName = "Gaia Earth Distance", - SourceType = "Node", - SourceNodeName = "Gaia", - DestinationType = "Node Surface", - DestinationNodeName = "Earth" - } -}) +local distance = { + Type = "DashboardItemDistance", + Identifier = "GaiaEarthDistance", + GuiName = "Gaia Earth Distance", + SourceType = "Node", + SourceNodeName = "Gaia", + DestinationType = "Node Surface", + DestinationNodeName = "Earth" +} + +asset.onInitialize(function () + openspace.dashboard.addDashboardItem(distance) +end) + +asset.onDeinitialize(function () + openspace.dashboard.removeDashboardItem(distance) +end) diff --git a/data/assets/scene/solarsystem/missions/gaia/gaia.asset b/data/assets/scene/solarsystem/missions/gaia/gaia.asset index 638ad5833f..8ca3f82004 100644 --- a/data/assets/scene/solarsystem/missions/gaia/gaia.asset +++ b/data/assets/scene/solarsystem/missions/gaia/gaia.asset @@ -1,6 +1,5 @@ -local assetHelper = asset.require('util/asset_helper') -local transforms = asset.require('./transforms') -local sunTransforms = asset.require('scene/solarsystem/sun/transforms') +local transforms = asset.require("./transforms") +local sunTransforms = asset.require("scene/solarsystem/sun/transforms") local model = asset.syncedResource({ Name = "Gaia Model", @@ -31,7 +30,7 @@ local Gaia = { Renderable = { Type = "RenderableModel", Body = "GAIA", - GeometryFile = model .. "/gaia.obj", + GeometryFile = model .. "gaia.obj", LightSources = { { Type = "SceneGraphLightSource", @@ -52,4 +51,12 @@ local Gaia = { } } -assetHelper.registerSceneGraphNodesAndExport(asset, { Gaia }) +asset.onInitialize(function() + openspace.addSceneGraphNode(Gaia) +end) + +asset.onDeinitialize(function() + openspace.removeSceneGraphNode(Gaia) +end) + +asset.export(Gaia) diff --git a/data/assets/scene/solarsystem/missions/gaia/trail.asset b/data/assets/scene/solarsystem/missions/gaia/trail.asset index 64b8dfd8de..8f55d68768 100644 --- a/data/assets/scene/solarsystem/missions/gaia/trail.asset +++ b/data/assets/scene/solarsystem/missions/gaia/trail.asset @@ -1,6 +1,5 @@ -local assetHelper = asset.require('util/asset_helper') -local earthTransforms = asset.require('scene/solarsystem/planets/earth/transforms') -local sunTransforms = asset.require('scene/solarsystem/sun/transforms') +local earthTransforms = asset.require("scene/solarsystem/planets/earth/transforms") +local sunTransforms = asset.require("scene/solarsystem/sun/transforms") local trail = asset.syncedResource({ Name = "Gaia Trail", @@ -16,7 +15,7 @@ local GaiaTrail = { Type = "RenderableTrailTrajectory", Translation = { Type = "HorizonsTranslation", - HorizonsTextFile = trail .. "/gaia_orbit_horizons.dat" + HorizonsTextFile = trail .. "gaia_orbit_horizons.dat" }, Color = { 0.0, 0.8, 0.7 }, ShowFullTrail = false, @@ -42,7 +41,7 @@ local GaiaTrailEclip = { Enabled = false, Translation = { Type = "HorizonsTranslation", - HorizonsTextFile = trail .. "/gaia_orbit_horizons_sun.dat" + HorizonsTextFile = trail .. "gaia_orbit_horizons_sun.dat" }, Color = { 1.0, 0.0, 0.0 }, ShowFullTrail = false, @@ -60,4 +59,15 @@ local GaiaTrailEclip = { } } -assetHelper.registerSceneGraphNodesAndExport(asset, { GaiaTrail, GaiaTrailEclip } ) +asset.onInitialize(function() + openspace.addSceneGraphNode(GaiaTrail) + openspace.addSceneGraphNode(GaiaTrailEclip) +end) + +asset.onDeinitialize(function() + openspace.removeSceneGraphNode(GaiaTrailEclip) + openspace.removeSceneGraphNode(GaiaTrail) +end) + +asset.export(GaiaTrail) +asset.export(GaiaTrailEclip) diff --git a/data/assets/scene/solarsystem/missions/gaia/transforms.asset b/data/assets/scene/solarsystem/missions/gaia/transforms.asset index 83441604d5..41531abbc3 100644 --- a/data/assets/scene/solarsystem/missions/gaia/transforms.asset +++ b/data/assets/scene/solarsystem/missions/gaia/transforms.asset @@ -1,5 +1,4 @@ -local assetHelper = asset.require('util/asset_helper') -local earthTransforms = asset.require('scene/solarsystem/planets/earth/transforms') +local earthTransforms = asset.require("scene/solarsystem/planets/earth/transforms") local trail = asset.syncedResource({ @@ -15,7 +14,7 @@ local GaiaPosition = { Transform = { Translation = { Type = "HorizonsTranslation", - HorizonsTextFile = trail .. "/gaia_orbit_horizons.dat" + HorizonsTextFile = trail .. "gaia_orbit_horizons.dat" }, }, GUI = { @@ -24,4 +23,12 @@ local GaiaPosition = { } } -assetHelper.registerSceneGraphNodesAndExport(asset, { GaiaPosition }) +asset.onInitialize(function() + openspace.addSceneGraphNode(GaiaPosition) +end) + +asset.onDeinitialize(function() + openspace.removeSceneGraphNode(GaiaPosition) +end) + +asset.export(GaiaPosition) diff --git a/data/assets/scene/solarsystem/missions/insight/edl.asset b/data/assets/scene/solarsystem/missions/insight/edl.asset index 8231084142..94ce725f7c 100644 --- a/data/assets/scene/solarsystem/missions/insight/edl.asset +++ b/data/assets/scene/solarsystem/missions/insight/edl.asset @@ -1,6 +1,6 @@ -asset.require('spice/base') -local sunTransforms = asset.require('scene/solarsystem/sun/transforms') -local assetHelper = asset.require('util/asset_helper') +asset.require("spice/base") +local sunTransforms = asset.require("scene/solarsystem/sun/transforms") +local mars = asset.require("scene/solarsystem/planets/mars/mars") local models = asset.syncedResource({ Name = "Insight Models Chutes", @@ -17,11 +17,11 @@ local ikernels = asset.syncedResource({ }) local iKernels = { - ikernels .. '/nsyt_spk_cruise_od063_v1_approach2surface_SC_Lander.tsc', - ikernels .. '/insight_v02.tfr', - ikernels .. '/mar085s.bsp', - ikernels .. '/nsyt_spk_cruise_POST_approach2surface_SC_Lander.bsp', - ikernels .. '/nsyt_spk_cruise_POST_approach2surface_SC_Lander.bck', + ikernels .. "nsyt_spk_cruise_od063_v1_approach2surface_SC_Lander.tsc", + ikernels .. "insight_v02.tfr", + ikernels .. "mar085s.bsp", + ikernels .. "nsyt_spk_cruise_POST_approach2surface_SC_Lander.bsp", + ikernels .. "nsyt_spk_cruise_POST_approach2surface_SC_Lander.bck", } local RotationMatrix = { @@ -65,98 +65,98 @@ local kernelTouchdownTime = "2018 NOV 26 19:45:32.3" local spiceRotationEndTime = "2018 NOV 26 19:51:39" local TranslationKeyframes = { - ['1850 JAN 01 00:00:00'] = { + ["1850 JAN 01 00:00:00"] = { Type = "SpiceTranslation", Target = "INSIGHT", Observer = "MARS", Frame = "IAU_MARS", Kernels = iKernels, - FixedDate = '2018 NOV 26 19:39:03' + FixedDate = "2018 NOV 26 19:39:03" }, - ['2018 NOV 26 19:39:02'] = { + ["2018 NOV 26 19:39:02"] = { Type = "SpiceTranslation", Target = "INSIGHT", Observer = "MARS", Frame = "IAU_MARS", Kernels = iKernels, - FixedDate = '2018 NOV 26 19:39:03' + FixedDate = "2018 NOV 26 19:39:03" }, - ['2018 NOV 26 19:39:03'] = { + ["2018 NOV 26 19:39:03"] = { Type = "SpiceTranslation", Target = "INSIGHT", Observer = "MARS", Frame = "IAU_MARS", Kernels = iKernels }, - ['2018 NOV 26 19:39:04'] = { + ["2018 NOV 26 19:39:04"] = { Type = "SpiceTranslation", Target = "INSIGHT", Observer = "MARS", Frame = "IAU_MARS", Kernels = iKernels }, - ['2018 NOV 26 19:45:34'] = { + ["2018 NOV 26 19:45:34"] = { Type = "SpiceTranslation", Target = "INSIGHT", Observer = "MARS", Frame = "IAU_MARS", Kernels = iKernels }, - ['2018 NOV 26 19:45:35'] = { + ["2018 NOV 26 19:45:35"] = { Type = "SpiceTranslation", Target = "INSIGHT", Observer = "MARS", Frame = "IAU_MARS", Kernels = iKernels, - FixedDate = '2018 NOV 26 19:45:34' + FixedDate = "2018 NOV 26 19:45:34" }, } local RotationKeyframes = { - ['1850 JAN 01 00:00:00'] = { + ["1850 JAN 01 00:00:00"] = { Type = "SpiceRotation", SourceFrame = "INSIGHT_LANDER_CRUISE", DestinationFrame = "IAU_MARS", - FixedDate = '2018 NOV 26 19:39:02', + FixedDate = "2018 NOV 26 19:39:02", Kernels = iKernels }, - ['2018 NOV 26 19:39:02'] = { + ["2018 NOV 26 19:39:02"] = { Type = "SpiceRotation", SourceFrame = "INSIGHT_LANDER_CRUISE", DestinationFrame = "IAU_MARS", - FixedDate = '2018 NOV 26 19:39:02', + FixedDate = "2018 NOV 26 19:39:02", Kernels = iKernels }, - ['2018 NOV 26 19:39:03'] = { + ["2018 NOV 26 19:39:03"] = { Type = "SpiceRotation", SourceFrame = "INSIGHT_LANDER_CRUISE", DestinationFrame = "IAU_MARS", Kernels = iKernels }, - ['2018 NOV 26 19:39:04'] = { + ["2018 NOV 26 19:39:04"] = { Type = "SpiceRotation", SourceFrame = "INSIGHT_LANDER_CRUISE", DestinationFrame = "IAU_MARS", Kernels = iKernels }, - ['2018 NOV 26 19:45:34'] = { + ["2018 NOV 26 19:45:34"] = { Type = "SpiceRotation", SourceFrame = "INSIGHT_LANDER_CRUISE", DestinationFrame = "IAU_MARS", Kernels = iKernels }, - ['2018 NOV 26 19:45:35'] = { + ["2018 NOV 26 19:45:35"] = { Type = "SpiceRotation", SourceFrame = "INSIGHT_LANDER_CRUISE", DestinationFrame = "IAU_MARS", - FixedDate = '2018 NOV 26 19:45:34' + FixedDate = "2018 NOV 26 19:45:34" }, } local InsightParent = { Identifier = "InsightParent", - Parent = "Mars", + Parent = mars.Identifier, Transform = { Translation ={ Type = "TimelineTranslation", @@ -186,7 +186,7 @@ local Insight = { Transform = { Rotation = { Type = "StaticRotation", - Rotation = {0.0, 0.0, -3.1415} + Rotation = { 0.0, 0.0, -math.pi } } }, GUI = { @@ -200,7 +200,7 @@ local Insight_Entry_CapsuleA = { Parent = Insight.Identifier, Renderable = { Type = "RenderableModel", - GeometryFile = models .. "/cruise_insight_doubleside2_newcapsule_diffuse.obj", + GeometryFile = models .. "cruise_insight_doubleside2_newcapsule_diffuse.obj", ModelTransform = RotationMatrix, LightSources = LightSources, }, @@ -220,7 +220,7 @@ local Insight_Entry_Capsule_Ring = { Parent = Insight.Identifier, Renderable = { Type = "RenderableModel", - GeometryFile = models .. "/insight_cruise_cone_ring_foil_gold.obj", + GeometryFile = models .. "insight_cruise_cone_ring_foil_gold.obj", ModelTransform = RotationMatrix, LightSources = LightSources, }, @@ -240,7 +240,7 @@ local Insight_Entry_Capsule_Plugs = { Parent = Insight.Identifier, Renderable = { Type = "RenderableModel", - GeometryFile = models .. "/insight_cruise_cone_capsule_diffuse.obj", + GeometryFile = models .. "insight_cruise_cone_capsule_diffuse.obj", ModelTransform = RotationMatrix, LightSources = LightSources, }, @@ -260,7 +260,7 @@ local Insight_Entry_Heatshield = { Parent = Insight.Identifier, Renderable = { Type = "RenderableModel", - GeometryFile = models .. "/insight_cruise_heatshield_foil_gold.obj", + GeometryFile = models .. "insight_cruise_heatshield_foil_gold.obj", ModelTransform = RotationMatrix, LightSources = LightSources, }, @@ -280,7 +280,7 @@ local Insight_Parachute_0 = { Parent = Insight.Identifier, Renderable = { Type = "RenderableModel", - GeometryFile = models .. "/insight_chute_frame01_diff1.obj", + GeometryFile = models .. "insight_chute_frame01_diff1.obj", ModelTransform = RotationMatrix, LightSources = LightSources, }, @@ -301,7 +301,7 @@ local Insight_Parachute_Cords_0 = { Parent = Insight.Identifier, Renderable = { Type = "RenderableModel", - GeometryFile = models .. "/insight_chute_frame01_cords1.obj", + GeometryFile = models .. "insight_chute_frame01_cords1.obj", ModelTransform = RotationMatrix, LightSources = LightSources, }, @@ -322,7 +322,7 @@ local Insight_Parachute_20 = { Parent = Insight.Identifier, Renderable = { Type = "RenderableModel", - GeometryFile = models .. "/insight_chute_frame20_diff1.obj", + GeometryFile = models .. "insight_chute_frame20_diff1.obj", ModelTransform = RotationMatrix, LightSources = LightSources, }, @@ -343,7 +343,7 @@ local Insight_Parachute_Cords_20 = { Parent = Insight.Identifier, Renderable = { Type = "RenderableModel", - GeometryFile = models .. "/insight_chute_frame20_cords1.obj", + GeometryFile = models .. "insight_chute_frame20_cords1.obj", ModelTransform = RotationMatrix, LightSources = LightSources, }, @@ -364,7 +364,7 @@ local Insight_Parachute_40 = { Parent = Insight.Identifier, Renderable = { Type = "RenderableModel", - GeometryFile = models .. "/chute_doubleside_frame40_diff.obj", + GeometryFile = models .. "chute_doubleside_frame40_diff.obj", ModelTransform = RotationMatrix, LightSources = LightSources, }, @@ -385,7 +385,7 @@ local Insight_Parachute_Cords_40 = { Parent = Insight.Identifier, Renderable = { Type = "RenderableModel", - GeometryFile = models .. "/insight_chute_frame40_cords1.obj", + GeometryFile = models .. "insight_chute_frame40_cords1.obj", ModelTransform = RotationMatrix, LightSources = LightSources, }, @@ -406,7 +406,7 @@ local Insight_Lander_A001 = { Parent = Insight.Identifier, Renderable = { Type = "RenderableModel", - GeometryFile = models .. "/insight_lander_deck_AO01.obj", + GeometryFile = models .. "insight_lander_deck_AO01.obj", ModelTransform = RotationMatrix, LightSources = LightSources, }, @@ -422,7 +422,7 @@ local Insight_Lander_A002 = { Parent = Insight.Identifier, Renderable = { Type = "RenderableModel", - GeometryFile = models .. "/insight_lander_deck_AO02.obj", + GeometryFile = models .. "insight_lander_deck_AO02.obj", ModelTransform = RotationMatrix, LightSources = LightSources, }, @@ -438,7 +438,7 @@ local Insight_Lander_A003 = { Parent = Insight.Identifier, Renderable = { Type = "RenderableModel", - GeometryFile = models .. "/insight_lander_deck_AO03.obj", + GeometryFile = models .. "insight_lander_deck_AO03.obj", ModelTransform = RotationMatrix, LightSources = LightSources, }, @@ -454,7 +454,7 @@ local Insight_Lander_A004 = { Parent = Insight.Identifier, Renderable = { Type = "RenderableModel", - GeometryFile = models .. "/insight_lander_deck_AO04.obj", + GeometryFile = models .. "insight_lander_deck_AO04.obj", ModelTransform = RotationMatrix, LightSources = LightSources, }, @@ -470,7 +470,7 @@ local Insight_Lander_A005 = { Parent = Insight.Identifier, Renderable = { Type = "RenderableModel", - GeometryFile = models .. "/insight_lander_deck_AO05.obj", + GeometryFile = models .. "insight_lander_deck_AO05.obj", ModelTransform = RotationMatrix, LightSources = LightSources, }, @@ -486,7 +486,7 @@ local Insight_Lander_A006 = { Parent = Insight.Identifier, Renderable = { Type = "RenderableModel", - GeometryFile = models .. "/insight_lander_deck_AO06.obj", + GeometryFile = models .. "insight_lander_deck_AO06.obj", ModelTransform = RotationMatrix, LightSources = LightSources, }, @@ -502,7 +502,7 @@ local Insight_Lander_A007 = { Parent = Insight.Identifier, Renderable = { Type = "RenderableModel", - GeometryFile = models .. "/insight_lander_deck_AO07.obj", + GeometryFile = models .. "insight_lander_deck_AO07.obj", ModelTransform = RotationMatrix, LightSources = LightSources, }, @@ -518,7 +518,7 @@ local Insight_Lander_A008 = { Parent = Insight.Identifier, Renderable = { Type = "RenderableModel", - GeometryFile = models .. "/insight_lander_deck_AO08.obj", + GeometryFile = models .. "insight_lander_deck_AO08.obj", ModelTransform = RotationMatrix, LightSources = LightSources, }, @@ -534,7 +534,7 @@ local Insight_Lander_foil1 = { Parent = Insight.Identifier, Renderable = { Type = "RenderableModel", - GeometryFile = models .. "/insight_lander_deck_foil1.obj", + GeometryFile = models .. "insight_lander_deck_foil1.obj", ModelTransform = RotationMatrix, LightSources = LightSources, }, @@ -550,7 +550,7 @@ local Insight_Lander_Tex01 = { Parent = Insight.Identifier, Renderable = { Type = "RenderableModel", - GeometryFile = models .. "/insight_lander_deck_tex01.obj", + GeometryFile = models .. "insight_lander_deck_tex01.obj", ModelTransform = RotationMatrix, LightSources = LightSources, }, @@ -566,7 +566,7 @@ local Insight_Lander_Tex02 = { Parent = Insight.Identifier, Renderable = { Type = "RenderableModel", - GeometryFile = models .. "/insight_lander_deck_tex02.obj", + GeometryFile = models .. "insight_lander_deck_tex02.obj", ModelTransform = RotationMatrix, LightSources = LightSources, }, @@ -582,7 +582,7 @@ local Insight_Legs_Stowed_tex = { Parent = Insight.Identifier, Renderable = { Type = "RenderableModel", - GeometryFile = models .. "/insight_lander_legs_stow_tex01.obj", + GeometryFile = models .. "insight_lander_legs_stow_tex01.obj", ModelTransform = RotationMatrix, LightSources = LightSources, }, @@ -603,7 +603,7 @@ local Insight_Legs_Stowed_AO06 = { Parent = Insight.Identifier, Renderable = { Type = "RenderableModel", - GeometryFile = models .. "/insight_lander_legs_stow_AO06.obj", + GeometryFile = models .. "insight_lander_legs_stow_AO06.obj", ModelTransform = RotationMatrix, LightSources = LightSources, }, @@ -624,7 +624,7 @@ local Insight_Legs_Deployed_tex = { Parent = Insight.Identifier, Renderable = { Type = "RenderableModel", - GeometryFile = models .. "/insight_lander_legs_deploy_tex01.obj", + GeometryFile = models .. "insight_lander_legs_deploy_tex01.obj", ModelTransform = RotationMatrix, LightSources = LightSources, }, @@ -644,7 +644,7 @@ local Insight_Legs_Deployed_AO06 = { Parent = Insight.Identifier, Renderable = { Type = "RenderableModel", - GeometryFile = models .. "/insight_lander_legs_deploy_AO06.obj", + GeometryFile = models .. "insight_lander_legs_deploy_AO06.obj", ModelTransform = RotationMatrix, LightSources = LightSources }, @@ -664,7 +664,7 @@ local Insight_Panels_Stowed_tex = { Parent = Insight.Identifier, Renderable = { Type = "RenderableModel", - GeometryFile = models .. "/insight_lander_panels_stow_tex01.obj", + GeometryFile = models .. "insight_lander_panels_stow_tex01.obj", ModelTransform = RotationMatrix, LightSources = LightSources }, @@ -680,7 +680,7 @@ local Insight_Panels_Stowed_tex2 = { Parent = Insight.Identifier, Renderable = { Type = "RenderableModel", - GeometryFile = models .. "/insight_lander_panels_stow_tex02.obj", + GeometryFile = models .. "insight_lander_panels_stow_tex02.obj", ModelTransform = RotationMatrix, LightSources = LightSources }, @@ -696,7 +696,7 @@ local Insight_Panels_Stowed_AO01 = { Parent = Insight.Identifier, Renderable = { Type = "RenderableModel", - GeometryFile = models .. "/insight_lander_panels_stow_AO01.obj", + GeometryFile = models .. "insight_lander_panels_stow_AO01.obj", ModelTransform = RotationMatrix, LightSources = LightSources }, @@ -712,7 +712,7 @@ local Insight_Panels_Deployed_tex = { Parent = Insight.Identifier, Renderable = { Type = "RenderableModel", - GeometryFile = models .. "/insight_lander_panels_deploy_tex01.obj", + GeometryFile = models .. "insight_lander_panels_deploy_tex01.obj", ModelTransform = RotationMatrix, LightSources = LightSources }, @@ -732,7 +732,7 @@ local Insight_Panels_Deployed_tex2 = { Parent = Insight.Identifier, Renderable = { Type = "RenderableModel", - GeometryFile = models .. "/insight_lander_panels_deploy_tex02.obj", + GeometryFile = models .. "insight_lander_panels_deploy_tex02.obj", ModelTransform = RotationMatrix, LightSources = LightSources }, @@ -741,7 +741,7 @@ local Insight_Panels_Deployed_tex2 = { Start = panelDeployTime, }, GUI = { - Hidden = true, + -- Hidden = true, Name = "Insight panels_deploy_tex2", Path = "/Solar System/Missions/Insight" } @@ -752,7 +752,7 @@ local Insight_Panels_Deployed_AO06 = { Parent = Insight.Identifier, Renderable = { Type = "RenderableModel", - GeometryFile = models .. "/insight_lander_panels_deploy_AO01.obj", + GeometryFile = models .. "insight_lander_panels_deploy_AO01.obj", ModelTransform = RotationMatrix, LightSources = LightSources }, @@ -796,7 +796,7 @@ local Insight_Trail = { } } -assetHelper.registerSceneGraphNodesAndExport(asset, { +local nodes = { InsightParent, Insight, Insight_Entry_CapsuleA, Insight_Entry_Capsule_Ring, Insight_Entry_Capsule_Plugs, Insight_Entry_Heatshield, Insight_Parachute_0, Insight_Parachute_Cords_0, Insight_Parachute_20, Insight_Parachute_Cords_20, @@ -808,4 +808,20 @@ assetHelper.registerSceneGraphNodesAndExport(asset, { Insight_Panels_Stowed_tex, Insight_Panels_Stowed_tex2, Insight_Panels_Stowed_AO01, Insight_Panels_Deployed_tex, Insight_Panels_Deployed_tex2, Insight_Panels_Deployed_AO06, Insight_Trail -}) +} + +asset.onInitialize(function() + for _, node in ipairs(nodes) do + openspace.addSceneGraphNode(node) + end +end) + +asset.onDeinitialize(function() + for i = #nodes, 1, -1 do + openspace.removeSceneGraphNode(nodes[i]) + end +end) + +for _, node in ipairs(nodes) do + asset.export(node) +end diff --git a/data/assets/scene/solarsystem/missions/insight/shortcuts.asset b/data/assets/scene/solarsystem/missions/insight/shortcuts.asset index 00d5cbf3c1..0ff2f6217f 100644 --- a/data/assets/scene/solarsystem/missions/insight/shortcuts.asset +++ b/data/assets/scene/solarsystem/missions/insight/shortcuts.asset @@ -2,56 +2,67 @@ local InsightEntryTime = "2018 NOV 26 19:39:03.68" -local insightNavigationState = "{" .. - "Anchor = 'Insight'," .. - "Pitch = 0.567457E-4," .. - "Position = { 1.240506E1,-1.369270E1,-2.423553E0 }," .. - "ReferenceFrame = 'Root',".. - "Up = { 0.441211E0,0.247019E0,0.862737E0 }," .. - "Yaw = -0.446853E-4}" +local insightNavigationState = [[ +{ + Anchor = "Insight", + Pitch = 0.567457E-4, + Position = { 1.240506E1,-1.369270E1,-2.423553E0 }, + ReferenceFrame = "Root", + Up = { 0.441211E0,0.247019E0,0.862737E0 }, + Yaw = -0.446853E-4 +} +]] local Shortcuts = { { - Command = "openspace.setPropertyValueSingle('Scene.Mars.Renderable.Layers.HeightLayers.Mola_Utah.Settings.Offset', -469.300000);" .. - "openspace.setPropertyValueSingle('Scene.Mars.Renderable.Layers.HeightLayers.OnMarsHiRISELS.Settings.Offset', -470.800006);", + Command = [[ + openspace.setPropertyValueSingle("Scene.Mars.Renderable.Layers.HeightLayers.Mola_Utah.Settings.Offset", -469.300000); + openspace.setPropertyValueSingle("Scene.Mars.Renderable.Layers.HeightLayers.OnMarsHiRISELS.Settings.Offset", -470.800006); + ]], Documentation = "Enable Insight landing height layer offset", Name = "Insight Height Offset", GuiPath = "/Missions/Insight", Local = false }, { - Command = "openspace.setPropertyValueSingle('Scene.Mars.Renderable.Layers.HeightLayers.Mola_Utah.Settings.Offset', 0);" .. - "openspace.setPropertyValueSingle('Scene.Mars.Renderable.Layers.HeightLayers.OnMarsHiRISELS.Settings.Offset', 0);", + Command = [[ + openspace.setPropertyValueSingle("Scene.Mars.Renderable.Layers.HeightLayers.Mola_Utah.Settings.Offset", 0); + openspace.setPropertyValueSingle("Scene.Mars.Renderable.Layers.HeightLayers.OnMarsHiRISELS.Settings.Offset", 0); + ]], Documentation = "Disable Insight landing height layer offset", Name = "Default Height Offset", GuiPath = "/Missions/Insight", Local = false }, { - Command = "openspace.setPropertyValueSingle('Scene.Mars.Renderable.Layers.HeightLayers.OnMarsHiRISELS.Enabled', true);" .. - "openspace.setPropertyValueSingle('Scene.Mars.Renderable.Layers.ColorLayers.OnMarsHiRISELS.Enabled', true);", + Command = [[ + openspace.setPropertyValueSingle("Scene.Mars.Renderable.Layers.HeightLayers.OnMarsHiRISELS.Enabled", true); + openspace.setPropertyValueSingle("Scene.Mars.Renderable.Layers.ColorLayers.OnMarsHiRISELS.Enabled", true); + ]], Documentation = "Enables HiRISE layer for insight landing", Name = "Enable HiRISE", GuiPath = "/Missions/Insight", Local = false }, { - Command = "openspace.setPropertyValueSingle('Scene.Mars.Renderable.Layers.HeightLayers.OnMarsHiRISELS.Enabled', false);" .. - "openspace.setPropertyValueSingle('Scene.Mars.Renderable.Layers.ColorLayers.OnMarsHiRISELS.Enabled', false);", + Command = [[ + openspace.setPropertyValueSingle("Scene.Mars.Renderable.Layers.HeightLayers.OnMarsHiRISELS.Enabled", false); + openspace.setPropertyValueSingle("Scene.Mars.Renderable.Layers.ColorLayers.OnMarsHiRISELS.Enabled", false); + ]], Documentation = "Disables HiRISE layer used for insight landing", Name = "Disable HiRISE", GuiPath = "/Missions/Insight", Local = false }, { - Command = "openspace.navigation.setNavigationState(" .. insightNavigationState .. ");", + Command = [[openspace.navigation.setNavigationState(]] .. insightNavigationState .. [[);]], Documentation = "Change the camera state for the start of Insight EDL", Name = "Insight EDL NavigationState", GuiPath = "/Missions/Insight", Local = false }, { - Command = "openspace.time.setPause(true);openspace.time.setTime('" .. InsightEntryTime .. "');", + Command = [[openspace.time.setPause(true);openspace.time.setTime("]] .. InsightEntryTime .. [[");]], Documentation = "Change the time for the start of Insight EDL", Name = "Insight EDL Time", GuiPath = "/Missions/Insight", diff --git a/data/assets/scene/solarsystem/missions/juno/juno.asset b/data/assets/scene/solarsystem/missions/juno/juno.asset index dfa44f584f..6436bcaaae 100644 --- a/data/assets/scene/solarsystem/missions/juno/juno.asset +++ b/data/assets/scene/solarsystem/missions/juno/juno.asset @@ -1,6 +1,5 @@ -local assetHelper = asset.require('util/asset_helper') -local transforms = asset.require('scene/solarsystem/planets/jupiter/transforms') -local sunTransforms = asset.require('scene/solarsystem/sun/transforms') +local transforms = asset.require("scene/solarsystem/planets/jupiter/transforms") +local sunTransforms = asset.require("scene/solarsystem/sun/transforms") local model = asset.syncedResource({ @@ -19,110 +18,110 @@ local kernels = asset.syncedResource({ }) local JunoKernels = { - kernels .. "/juno_v12.tf", - kernels .. "/JNO_SCLKSCET.00039.tsc", - kernels .. "/juno_jade_v00.ti", - kernels .. "/juno_jedi_v00.ti", - kernels .. "/juno_jiram_v01.ti", - kernels .. "/juno_junocam_v00.ti", - kernels .. "/juno_mag_v00.ti", - kernels .. "/juno_mwr_v01.ti", - kernels .. "/juno_struct_v01.ti", - kernels .. "/juno_uvs_v00.ti", - kernels .. "/juno_waves_v00.ti", - kernels .. "/juno_mwr_v01.ti", - kernels .. "/spk_merge_110805_171017_130515.bsp", - kernels .. "/juno_sc_nom_110807_171016_v01.bc", - kernels .. "/juno_sc_prl_110930_111028_jc003c01_v01.bc", - kernels .. "/juno_sc_prl_111028_111125_jc004b00_v01.bc", - kernels .. "/juno_sc_prl_111125_111223_jc005b00_v01.bc", - kernels .. "/juno_sc_prl_111223_120127_jc006a02_v01.bc", - kernels .. "/juno_sc_prl_120127_120217_jc007a00_v01.bc", - kernels .. "/juno_sc_prl_120217_120316_jc008b00_v02.bc", - kernels .. "/juno_sc_prl_120316_120413_jc009a00_v01.bc", - kernels .. "/juno_sc_prl_120413_120511_jc010a04_v01.bc", - kernels .. "/juno_sc_prl_120511_120608_jc011a01_v02.bc", - kernels .. "/juno_sc_prl_120608_120706_jc012b01_v01.bc", - kernels .. "/juno_sc_prl_120706_120802_jc013a01_v01.bc", - kernels .. "/juno_sc_prl_120802_120824_jc014b01_v01.bc", - kernels .. "/juno_sc_prl_120824_120928_jc015m00_v01.bc", - kernels .. "/juno_sc_prl_120919_120928_jc015o00_v01.bc", - kernels .. "/juno_sc_prl_120928_121026_jc016c03_v01.bc", - kernels .. "/juno_sc_prl_121026_121123_jc017a01_v01.bc", - kernels .. "/juno_sc_prl_121123_121221_jc018b01_v01.bc", - kernels .. "/juno_sc_prl_121221_130118_jc019a01_v01.bc", - kernels .. "/juno_sc_prl_130118_130215_jc020b01_v01.bc", - kernels .. "/juno_sc_prl_130315_130412_jc022b01_v01.bc", - kernels .. "/juno_sc_prl_130412_130510_jc023b03_v01.bc", - kernels .. "/juno_sc_prl_130510_130607_jc024a01_v01.bc", - kernels .. "/juno_sc_prl_130607_130705_jc025a00_v01.bc", - kernels .. "/juno_sc_prl_130705_130802_jc026a01_v01.bc", - kernels .. "/juno_sc_prl_130726_131020_jx024a02_EFB_v03.bc", - kernels .. "/juno_sc_prl_130802_130830_jc027a02_v01.bc", - kernels .. "/juno_sc_prl_130830_130927_jc028a01_v01.bc", - kernels .. "/juno_sc_prl_130926_131025_jc029a00_v01.bc", - kernels .. "/juno_sc_prl_130927_131025_jc029c01_v01.bc", - kernels .. "/juno_sc_prl_131022_131025_jc029f00_v01.bc", - kernels .. "/juno_sc_prl_131025_131122_jc030b04_v01.bc", - kernels .. "/juno_sc_prl_131122_131220_jc031b01_v01.bc", - kernels .. "/juno_sc_prl_131220_140124_jc032a01_v01.bc", - kernels .. "/juno_sc_prl_140124_140214_jc033a01_v01.bc", - kernels .. "/juno_sc_prl_140214_140314_jc034b01_v01.bc", - kernels .. "/juno_sc_prl_140314_140411_jc035a01_v01.bc", - kernels .. "/juno_sc_prl_140411_140509_jc036b01_v01.bc", - kernels .. "/juno_sc_prl_140509_140606_jc037b02_v01.bc", - kernels .. "/juno_sc_prl_140606_140704_jc038a01_v01.bc", - kernels .. "/juno_sc_prl_140704_140801_jc039b01_v01.bc", - kernels .. "/juno_sc_prl_140801_140829_jc040a01_v01.bc", - kernels .. "/juno_sc_prl_140829_140926_jc041a01_v01.bc", - kernels .. "/juno_sc_prl_140926_141024_jc042a01_v01.bc", - kernels .. "/juno_sc_prl_141024_141121_jc043a01_v01.bc", - kernels .. "/juno_sc_prl_141105_141121_jc043m01_v01.bc", - kernels .. "/juno_sc_prl_141107_141121_jc043s01_v01.bc", - kernels .. "/juno_sc_prl_141121_141219_jc044a01_v01.bc", - kernels .. "/juno_sc_prl_141219_150123_jc045a01_v01.bc", - kernels .. "/juno_sc_prl_150123_150213_jc046a01_v01.bc", - kernels .. "/juno_sc_prl_150213_150313_jc047a01_v01.bc", - kernels .. "/juno_sc_prl_150312_150409_jc048a01_v01.bc", - kernels .. "/juno_sc_prl_150410_150508_jc049a01_v01.bc", - kernels .. "/juno_sc_prl_150508_150605_jc050a01_v01.bc", - kernels .. "/juno_sc_prl_150605_150703_jc051a01_v01.bc", - kernels .. "/juno_sc_prl_150703_150731_jc052a01_v01.bc", - kernels .. "/juno_sc_prl_150731_150828_jc053a01_v01.bc", - kernels .. "/juno_sc_prl_150805_150828_jc053m00_v01.bc", - kernels .. "/juno_sc_prl_150807_150828_jc053s00_v01.bc", - kernels .. "/juno_sc_prl_150828_150924_jc054a00_v01.bc", - kernels .. "/juno_sc_prl_150924_151023_jc055a00_v01.bc", - kernels .. "/juno_sc_prl_151023_151120_jc056a00_v01.bc", - kernels .. "/juno_sc_prl_151120_151218_jc057a00_v01.bc", - kernels .. "/juno_sc_prl_151218_160115_jc058a00_v01.bc", - kernels .. "/juno_sc_prl_160115_160212_jc059a00_v01.bc", - kernels .. "/juno_sc_prl_160212_160311_jc060a00_v01.bc", - kernels .. "/juno_sc_prl_160311_160408_jc061a00_v01.bc", - kernels .. "/juno_sc_prl_160408_160506_jc062a00_v01.bc", - kernels .. "/juno_sc_prl_160506_160603_jc063a00_v01.bc", - kernels .. "/juno_sc_prl_160603_160630_jc064a00_v01.bc", - kernels .. "/juno_sc_prl_160708_160729_jm0001rp_v02.bc", - kernels .. "/juno_sc_prl_160729_160826_jm0002rp_v01.bc", - kernels .. "/juno_sc_prl_160827_160920_jm0003a00_v01.bc", - kernels .. "/juno_sc_prl_160924_161019_jm0004a00_v01.bc", - kernels .. "/juno_sc_prl_161014_161115_jm0005a00_v01.bc", - kernels .. "/juno_sc_prl_161022_161115_jm0005b00_v01.bc", - kernels .. "/juno_sc_prl_161115_161213_jx0405rp_v01.bc", - kernels .. "/juno_sc_prl_161210_170115_jm0031a00_v01.bc", - kernels .. "/juno_sc_prl_170115_170201_jm0032a00_v01.bc", - kernels .. "/juno_sc_prl_170201_170309_jm0041a00_v01.bc", - kernels .. "/juno_sc_prl_170309_170326_jm0042rp_v01.bc", - kernels .. "/juno_sc_prl_170326_170427_jm0051rp_v01.bc", - kernels .. "/juno_sc_prl_170427_170518_jm0052rp_v01.bc", - kernels .. "/juno_sc_prl_170518_170615_jm0061a00_v01.bc", - kernels .. "/juno_sc_prl_170615_170710_jm0062a00_v01.bc", - kernels .. "/juno_sc_prl_170710_170805_jm0071a00_v01.bc", - kernels .. "/juno_sc_prl_170805_170831_jm0072a00_v01.bc", - kernels .. "/juno_sc_prl_170831_170927_jm0081a00_v01.bc", - kernels .. "/juno_sc_prl_170927_171023_jm0082a00_v01.bc", - kernels .. "/juno_sc_prl_171023_171030_jm0091a00_v01.bc", - kernels .. "/juno_sc_prl_171023_171030_jm0091a00_v01.bc" + kernels .. "juno_v12.tf", + kernels .. "JNO_SCLKSCET.00039.tsc", + kernels .. "juno_jade_v00.ti", + kernels .. "juno_jedi_v00.ti", + kernels .. "juno_jiram_v01.ti", + kernels .. "juno_junocam_v00.ti", + kernels .. "juno_mag_v00.ti", + kernels .. "juno_mwr_v01.ti", + kernels .. "juno_struct_v01.ti", + kernels .. "juno_uvs_v00.ti", + kernels .. "juno_waves_v00.ti", + kernels .. "juno_mwr_v01.ti", + kernels .. "spk_merge_110805_171017_130515.bsp", + kernels .. "juno_sc_nom_110807_171016_v01.bc", + kernels .. "juno_sc_prl_110930_111028_jc003c01_v01.bc", + kernels .. "juno_sc_prl_111028_111125_jc004b00_v01.bc", + kernels .. "juno_sc_prl_111125_111223_jc005b00_v01.bc", + kernels .. "juno_sc_prl_111223_120127_jc006a02_v01.bc", + kernels .. "juno_sc_prl_120127_120217_jc007a00_v01.bc", + kernels .. "juno_sc_prl_120217_120316_jc008b00_v02.bc", + kernels .. "juno_sc_prl_120316_120413_jc009a00_v01.bc", + kernels .. "juno_sc_prl_120413_120511_jc010a04_v01.bc", + kernels .. "juno_sc_prl_120511_120608_jc011a01_v02.bc", + kernels .. "juno_sc_prl_120608_120706_jc012b01_v01.bc", + kernels .. "juno_sc_prl_120706_120802_jc013a01_v01.bc", + kernels .. "juno_sc_prl_120802_120824_jc014b01_v01.bc", + kernels .. "juno_sc_prl_120824_120928_jc015m00_v01.bc", + kernels .. "juno_sc_prl_120919_120928_jc015o00_v01.bc", + kernels .. "juno_sc_prl_120928_121026_jc016c03_v01.bc", + kernels .. "juno_sc_prl_121026_121123_jc017a01_v01.bc", + kernels .. "juno_sc_prl_121123_121221_jc018b01_v01.bc", + kernels .. "juno_sc_prl_121221_130118_jc019a01_v01.bc", + kernels .. "juno_sc_prl_130118_130215_jc020b01_v01.bc", + kernels .. "juno_sc_prl_130315_130412_jc022b01_v01.bc", + kernels .. "juno_sc_prl_130412_130510_jc023b03_v01.bc", + kernels .. "juno_sc_prl_130510_130607_jc024a01_v01.bc", + kernels .. "juno_sc_prl_130607_130705_jc025a00_v01.bc", + kernels .. "juno_sc_prl_130705_130802_jc026a01_v01.bc", + kernels .. "juno_sc_prl_130726_131020_jx024a02_EFB_v03.bc", + kernels .. "juno_sc_prl_130802_130830_jc027a02_v01.bc", + kernels .. "juno_sc_prl_130830_130927_jc028a01_v01.bc", + kernels .. "juno_sc_prl_130926_131025_jc029a00_v01.bc", + kernels .. "juno_sc_prl_130927_131025_jc029c01_v01.bc", + kernels .. "juno_sc_prl_131022_131025_jc029f00_v01.bc", + kernels .. "juno_sc_prl_131025_131122_jc030b04_v01.bc", + kernels .. "juno_sc_prl_131122_131220_jc031b01_v01.bc", + kernels .. "juno_sc_prl_131220_140124_jc032a01_v01.bc", + kernels .. "juno_sc_prl_140124_140214_jc033a01_v01.bc", + kernels .. "juno_sc_prl_140214_140314_jc034b01_v01.bc", + kernels .. "juno_sc_prl_140314_140411_jc035a01_v01.bc", + kernels .. "juno_sc_prl_140411_140509_jc036b01_v01.bc", + kernels .. "juno_sc_prl_140509_140606_jc037b02_v01.bc", + kernels .. "juno_sc_prl_140606_140704_jc038a01_v01.bc", + kernels .. "juno_sc_prl_140704_140801_jc039b01_v01.bc", + kernels .. "juno_sc_prl_140801_140829_jc040a01_v01.bc", + kernels .. "juno_sc_prl_140829_140926_jc041a01_v01.bc", + kernels .. "juno_sc_prl_140926_141024_jc042a01_v01.bc", + kernels .. "juno_sc_prl_141024_141121_jc043a01_v01.bc", + kernels .. "juno_sc_prl_141105_141121_jc043m01_v01.bc", + kernels .. "juno_sc_prl_141107_141121_jc043s01_v01.bc", + kernels .. "juno_sc_prl_141121_141219_jc044a01_v01.bc", + kernels .. "juno_sc_prl_141219_150123_jc045a01_v01.bc", + kernels .. "juno_sc_prl_150123_150213_jc046a01_v01.bc", + kernels .. "juno_sc_prl_150213_150313_jc047a01_v01.bc", + kernels .. "juno_sc_prl_150312_150409_jc048a01_v01.bc", + kernels .. "juno_sc_prl_150410_150508_jc049a01_v01.bc", + kernels .. "juno_sc_prl_150508_150605_jc050a01_v01.bc", + kernels .. "juno_sc_prl_150605_150703_jc051a01_v01.bc", + kernels .. "juno_sc_prl_150703_150731_jc052a01_v01.bc", + kernels .. "juno_sc_prl_150731_150828_jc053a01_v01.bc", + kernels .. "juno_sc_prl_150805_150828_jc053m00_v01.bc", + kernels .. "juno_sc_prl_150807_150828_jc053s00_v01.bc", + kernels .. "juno_sc_prl_150828_150924_jc054a00_v01.bc", + kernels .. "juno_sc_prl_150924_151023_jc055a00_v01.bc", + kernels .. "juno_sc_prl_151023_151120_jc056a00_v01.bc", + kernels .. "juno_sc_prl_151120_151218_jc057a00_v01.bc", + kernels .. "juno_sc_prl_151218_160115_jc058a00_v01.bc", + kernels .. "juno_sc_prl_160115_160212_jc059a00_v01.bc", + kernels .. "juno_sc_prl_160212_160311_jc060a00_v01.bc", + kernels .. "juno_sc_prl_160311_160408_jc061a00_v01.bc", + kernels .. "juno_sc_prl_160408_160506_jc062a00_v01.bc", + kernels .. "juno_sc_prl_160506_160603_jc063a00_v01.bc", + kernels .. "juno_sc_prl_160603_160630_jc064a00_v01.bc", + kernels .. "juno_sc_prl_160708_160729_jm0001rp_v02.bc", + kernels .. "juno_sc_prl_160729_160826_jm0002rp_v01.bc", + kernels .. "juno_sc_prl_160827_160920_jm0003a00_v01.bc", + kernels .. "juno_sc_prl_160924_161019_jm0004a00_v01.bc", + kernels .. "juno_sc_prl_161014_161115_jm0005a00_v01.bc", + kernels .. "juno_sc_prl_161022_161115_jm0005b00_v01.bc", + kernels .. "juno_sc_prl_161115_161213_jx0405rp_v01.bc", + kernels .. "juno_sc_prl_161210_170115_jm0031a00_v01.bc", + kernels .. "juno_sc_prl_170115_170201_jm0032a00_v01.bc", + kernels .. "juno_sc_prl_170201_170309_jm0041a00_v01.bc", + kernels .. "juno_sc_prl_170309_170326_jm0042rp_v01.bc", + kernels .. "juno_sc_prl_170326_170427_jm0051rp_v01.bc", + kernels .. "juno_sc_prl_170427_170518_jm0052rp_v01.bc", + kernels .. "juno_sc_prl_170518_170615_jm0061a00_v01.bc", + kernels .. "juno_sc_prl_170615_170710_jm0062a00_v01.bc", + kernels .. "juno_sc_prl_170710_170805_jm0071a00_v01.bc", + kernels .. "juno_sc_prl_170805_170831_jm0072a00_v01.bc", + kernels .. "juno_sc_prl_170831_170927_jm0081a00_v01.bc", + kernels .. "juno_sc_prl_170927_171023_jm0082a00_v01.bc", + kernels .. "juno_sc_prl_171023_171030_jm0091a00_v01.bc", + kernels .. "juno_sc_prl_171023_171030_jm0091a00_v01.bc" } local RotationMatrix = { @@ -150,9 +149,21 @@ local Juno = { }, Renderable = { Type = "RenderableModel", - GeometryFile = model .. "/Juno.obj", + GeometryFile = model .. "Juno.obj", ModelTransform = RotationMatrix, - LightSources = assetHelper.getDefaultLightSources(sunTransforms.SolarSystemBarycenter.Identifier) + LightSources = { + { + Type = "SceneGraphLightSource", + Identifier = "Sun", + Node = sunTransforms.SolarSystemBarycenter.Identifier, + Intensity = 1.0 + }, + { + Identifier = "Camera", + Type = "CameraLightSource", + Intensity = 0.5 + } + } }, TimeFrame = { Type = "TimeFrameInterval", @@ -186,4 +197,15 @@ local JunoTrail = { } } -assetHelper.registerSceneGraphNodesAndExport(asset, { Juno, JunoTrail }) +asset.onInitialize(function() + openspace.addSceneGraphNode(Juno) + openspace.addSceneGraphNode(JunoTrail) +end) + +asset.onDeinitialize(function() + openspace.removeSceneGraphNode(JunoTrail) + openspace.removeSceneGraphNode(Juno) +end) + +asset.export(Juno) +asset.export(JunoTrail) diff --git a/data/assets/scene/solarsystem/missions/jwst/horizons.asset b/data/assets/scene/solarsystem/missions/jwst/horizons.asset deleted file mode 100644 index 937fbdd60a..0000000000 --- a/data/assets/scene/solarsystem/missions/jwst/horizons.asset +++ /dev/null @@ -1,8 +0,0 @@ -local horizons = asset.syncedResource({ - Name = "JWST Horizons", - Type = "HttpSynchronization", - Identifier = "jwst_horizons", - Version = 2 -}) - -asset.export('horizons', horizons) diff --git a/data/assets/scene/solarsystem/missions/jwst/hudf.asset b/data/assets/scene/solarsystem/missions/jwst/hudf.asset index ef8cc9b4c7..afb0edc882 100644 --- a/data/assets/scene/solarsystem/missions/jwst/hudf.asset +++ b/data/assets/scene/solarsystem/missions/jwst/hudf.asset @@ -1,8 +1,7 @@ -local assetHelper = asset.require('util/asset_helper') -local transforms = asset.require('scene/solarsystem/planets/earth/transforms') -local jwstTransforms = asset.require('./transforms') -local sunTransforms = asset.require('scene/solarsystem/sun/transforms') -local image = asset.require('./image').image +local transforms = asset.require("scene/solarsystem/planets/earth/transforms") +local jwstTransforms = asset.require("./transforms") +local sunTransforms = asset.require("scene/solarsystem/sun/transforms") +local image = asset.require("./image").image local DISTANCE = 9.2E15; @@ -42,7 +41,7 @@ local HUDFImage = { RadiusAzimuthElevation = { 200.0, 0.5, 0.1 }, UsePerspectiveProjection = false, Opacity = 1.0, - TexturePath = image .. "/Hubble_ultra_deep_field.png", + TexturePath = image .. "Hubble_ultra_deep_field.png", Tag = { "mission_jwst_hudf" }, Description = [[ Image of the Hubble Ultra Deep Field by NASA, ESA, and S. Beckwith (STScI) and @@ -76,15 +75,25 @@ local HUDFJWSTLine = { } } -assetHelper.registerSceneGraphNodesAndExport(asset, { HUDFPosition, HUDFImage, HUDFJWSTLine }) - asset.onInitialize(function() openspace.addScreenSpaceRenderable(HUDFImage) + + openspace.addSceneGraphNode(HUDFPosition) + openspace.addSceneGraphNode(HUDFImage) + openspace.addSceneGraphNode(HUDFJWSTLine) end) asset.onDeinitialize(function() - openspace.removeScreenSpaceRenderable(HUDFImage.Identifier) + openspace.removeSceneGraphNode(HUDFPosition) + openspace.removeSceneGraphNode(HUDFImage) + openspace.removeSceneGraphNode(HUDFJWSTLine) + + openspace.removeScreenSpaceRenderable(HUDFImage) end) +asset.export(HUDFJWSTLine) +asset.export(HUDFImage) +asset.export(HUDFPosition) + asset.meta = { Name = "Hubble Ultra Deep Field Image and Line", Version = "1.0", diff --git a/data/assets/scene/solarsystem/missions/jwst/image.asset b/data/assets/scene/solarsystem/missions/jwst/image.asset index 4ca58c42f2..31142954ef 100644 --- a/data/assets/scene/solarsystem/missions/jwst/image.asset +++ b/data/assets/scene/solarsystem/missions/jwst/image.asset @@ -5,7 +5,7 @@ local image = asset.syncedResource({ Version = 3 }) -asset.export('image', image) +asset.export("image", image) asset.meta = { Name = "Hubble Ultra Deep Field", diff --git a/data/assets/scene/solarsystem/missions/jwst/jwst.asset b/data/assets/scene/solarsystem/missions/jwst/jwst.asset index bd47eec1f3..f50a15b2a9 100644 --- a/data/assets/scene/solarsystem/missions/jwst/jwst.asset +++ b/data/assets/scene/solarsystem/missions/jwst/jwst.asset @@ -1,8 +1,13 @@ -local assetHelper = asset.require('util/asset_helper') -local sunTransforms = asset.require('scene/solarsystem/sun/transforms') -local transforms = asset.require('./transforms') -local models = asset.require('./model').models -asset.require('spice/base') +local sunTransforms = asset.require("scene/solarsystem/sun/transforms") +local transforms = asset.require("./transforms") +asset.require("spice/base") + +local models = asset.syncedResource({ + Name = "JWST Model", + Type = "HttpSynchronization", + Identifier = "jwst_model", + Version = 3 +}) local band = asset.syncedResource({ Name = "JWST band texture", @@ -31,13 +36,13 @@ local JWSTBand = { Renderable = { Enabled = false, Type = "RenderableSphere", - Texture = band .. "/JWST-band.png", + Texture = band .. "JWST-band.png", Size = 9.2E15, Segments = 50, DisableFadeInOut = true, Orientation = "Inside", Opacity = 0.05, - UseAdditiveBlending = true, + RenderBinMode = "PreDeferredTransparent", }, Tag = { "mission_jwst_fov" }, GUI = { @@ -59,7 +64,7 @@ local JWSTModel = { }, Renderable = { Type = "RenderableModel", - GeometryFile = models .. "/jwst_anim74_2fps_2018_nb.osmodel", + GeometryFile = models .. "jwst_anim74_2fps_2018_nb.osmodel", ModelScale = 0.0328, -- First scale down with centimeters then scale up with feet EnableAnimation = true, AnimationStartTime = "2018 10 01 14:06:03", @@ -146,12 +151,24 @@ local JWSTLabel = { } } -assetHelper.registerSceneGraphNodesAndExport(asset, { - JWSTBand, - JWSTModel, - JWSTFov, - JWSTLabel -}) +asset.onInitialize(function() + openspace.addSceneGraphNode(JWSTBand) + openspace.addSceneGraphNode(JWSTModel) + openspace.addSceneGraphNode(JWSTFov) + openspace.addSceneGraphNode(JWSTLabel) +end) + +asset.onDeinitialize(function() + openspace.removeSceneGraphNode(JWSTLabel) + openspace.removeSceneGraphNode(JWSTFov) + openspace.removeSceneGraphNode(JWSTModel) + openspace.removeSceneGraphNode(JWSTBand) +end) + +asset.export(JWSTBand) +asset.export(JWSTModel) +asset.export(JWSTFov) +asset.export(JWSTLabel) asset.meta = { Name = "James Webb Space Telescope", diff --git a/data/assets/scene/solarsystem/missions/jwst/kernels.asset b/data/assets/scene/solarsystem/missions/jwst/kernels.asset deleted file mode 100644 index 4dca85d6ec..0000000000 --- a/data/assets/scene/solarsystem/missions/jwst/kernels.asset +++ /dev/null @@ -1,8 +0,0 @@ -local kernels = asset.syncedResource({ - Name = "JWST Kernel", - Type = "HttpSynchronization", - Identifier = "jwst_kernels", - Version = 1 -}) - -asset.export('kernels', kernels) diff --git a/data/assets/scene/solarsystem/missions/jwst/model.asset b/data/assets/scene/solarsystem/missions/jwst/model.asset deleted file mode 100644 index 0e0298d916..0000000000 --- a/data/assets/scene/solarsystem/missions/jwst/model.asset +++ /dev/null @@ -1,8 +0,0 @@ -local models = asset.syncedResource({ - Name = "JWST Model", - Type = "HttpSynchronization", - Identifier = "jwst_model", - Version = 3 -}) - -asset.export('models', models) diff --git a/data/assets/scene/solarsystem/missions/jwst/timelapse.asset b/data/assets/scene/solarsystem/missions/jwst/timelapse.asset index 8ba9149688..c29ff6a383 100644 --- a/data/assets/scene/solarsystem/missions/jwst/timelapse.asset +++ b/data/assets/scene/solarsystem/missions/jwst/timelapse.asset @@ -1,5 +1,3 @@ -local assetHelper = asset.require('util/asset_helper') - -- JWST timelapse timeline local timelapse = [[ openspace.scriptScheduler.loadScheduledScript( @@ -10,309 +8,309 @@ local timelapse = [[ -- Mission start openspace.scriptScheduler.loadScheduledScript( "2018 OCT 01 14:06:04", - "openspace.setPropertyValueSingle('Scene.Earth.Renderable.Layers.NightLayers.Earth_at_Night_2012.Settings.Gamma', 0.7)" .. - "openspace.setPropertyValueSingle('Scene.EarthAtmosphere.Renderable.Enabled', false)", + "openspace.setPropertyValueSingle(\"Scene.Earth.Renderable.Layers.NightLayers.Earth_at_Night_2012.Settings.Gamma\", 0.7)" .. + "openspace.setPropertyValueSingle(\"Scene.EarthAtmosphere.Renderable.Enabled\", false)", "openspace.time.interpolateDeltaTime(-1)" .. - "openspace.setPropertyValueSingle('Dashboard.JWSTStateText.Text', '')" .. - "openspace.setPropertyValueSingle('Scene.Earth.Renderable.Layers.NightLayers.Earth_at_Night_2012.Settings.Gamma', 1.0)" .. - "openspace.setPropertyValueSingle('Scene.EarthAtmosphere.Renderable.Enabled', true)" + "openspace.setPropertyValueSingle(\"Dashboard.JWSTStateText.Text\", \"\")" .. + "openspace.setPropertyValueSingle(\"Scene.Earth.Renderable.Layers.NightLayers.Earth_at_Night_2012.Settings.Gamma\", 1.0)" .. + "openspace.setPropertyValueSingle(\"Scene.EarthAtmosphere.Renderable.Enabled\", true)" ) openspace.scriptScheduler.loadScheduledScript( "2018 OCT 01 14:06:05", -- 2 sec delay "openspace.time.interpolateDeltaTime(120)" .. - "openspace.setPropertyValueSingle('Dashboard.JWSTStateText.Text', 'Time speed: 2 minutes/second')", + "openspace.setPropertyValueSingle(\"Dashboard.JWSTStateText.Text\", \"Time speed: 2 minutes/second\")", "openspace.time.interpolateDeltaTime(-1)" .. - "openspace.setPropertyValueSingle('Dashboard.JWSTStateText.Text', '')" + "openspace.setPropertyValueSingle(\"Dashboard.JWSTStateText.Text\", \"\")" ) openspace.scriptScheduler.loadScheduledScript( "2018 OCT 01 14:10:03", -- 4 min pre delay "", "openspace.time.interpolateDeltaTime(-1)" .. - "openspace.setPropertyValueSingle('Dashboard.JWSTStateText.Text', '')" + "openspace.setPropertyValueSingle(\"Dashboard.JWSTStateText.Text\", \"\")" ) -- array deploy, forwards openspace.scriptScheduler.loadScheduledScript( "2018 OCT 01 14:35:23", -- 1 min pre delay so time to interpolate "openspace.time.interpolateDeltaTime(1)" .. - "openspace.setPropertyValueSingle('Dashboard.JWSTStateText.Text', 'Time speed: 1 second/second')" + "openspace.setPropertyValueSingle(\"Dashboard.JWSTStateText.Text\", \"Time speed: 1 second/second\")" ) -- array deploy, backwards openspace.scriptScheduler.loadScheduledScript( "2018 OCT 01 14:36:23", "", "openspace.time.interpolateDeltaTime(-120)" .. - "openspace.setPropertyValueSingle('Dashboard.JWSTStateText.Text', 'Time speed: -2 minutes/second')" + "openspace.setPropertyValueSingle(\"Dashboard.JWSTStateText.Text\", \"Time speed: -2 minutes/second\")" ) -- array complete, forwards openspace.scriptScheduler.loadScheduledScript( "2018 OCT 01 14:36:45", "openspace.time.interpolateDeltaTime(7200)" .. - "openspace.setPropertyValueSingle('Dashboard.JWSTStateText.Text', 'Time speed: 2 hours/second')" + "openspace.setPropertyValueSingle(\"Dashboard.JWSTStateText.Text\", \"Time speed: 2 hours/second\")" ) -- array complete, backwards openspace.scriptScheduler.loadScheduledScript( "2018 OCT 01 14:37:55", -- 1 min 10 sec pre delay so time to interpolate "", "openspace.time.interpolateDeltaTime(-1)" .. - "openspace.setPropertyValueSingle('Dashboard.JWSTStateText.Text', 'Time speed: -1 second/second')" + "openspace.setPropertyValueSingle(\"Dashboard.JWSTStateText.Text\", \"Time speed: -1 second/second\")" ) -- array complete, backwards prepare openspace.scriptScheduler.loadScheduledScript( "2018 OCT 01 15:46:45", -- 1h 10 min delay for interpolation "", "openspace.time.interpolateDeltaTime(-120)" .. - "openspace.setPropertyValueSingle('Dashboard.JWSTStateText.Text', 'Time speed: -2 minutes/second')" + "openspace.setPropertyValueSingle(\"Dashboard.JWSTStateText.Text\", \"Time speed: -2 minutes/second\")" ) -- antenna deploy openspace.scriptScheduler.loadScheduledScript( "2018 OCT 02 08:06:03", "openspace.time.interpolateDeltaTime(1800)" .. - "openspace.setPropertyValueSingle('Dashboard.JWSTStateText.Text', 'Time speed: 30 minutes/second')", + "openspace.setPropertyValueSingle(\"Dashboard.JWSTStateText.Text\", \"Time speed: 30 minutes/second\")", "openspace.time.interpolateDeltaTime(-7200)" .. - "openspace.setPropertyValueSingle('Dashboard.JWSTStateText.Text', 'Time speed: -2 hours/second')" + "openspace.setPropertyValueSingle(\"Dashboard.JWSTStateText.Text\", \"Time speed: -2 hours/second\")" ) -- antenna complete, forwards openspace.scriptScheduler.loadScheduledScript( "2018 OCT 02 13:45:03", "openspace.time.interpolateDeltaTime(18000)" .. - "openspace.setPropertyValueSingle('Dashboard.JWSTStateText.Text', 'Time speed: 5 hours/second')" + "openspace.setPropertyValueSingle(\"Dashboard.JWSTStateText.Text\", \"Time speed: 5 hours/second\")" ) -- antenna complete, backwards openspace.scriptScheduler.loadScheduledScript( "2018 OCT 02 14:45:03", -- 1h pre delay so time to interpolate "", "openspace.time.interpolateDeltaTime(-1800)" .. - "openspace.setPropertyValueSingle('Dashboard.JWSTStateText.Text', 'Time speed: -30 minutes/second')" + "openspace.setPropertyValueSingle(\"Dashboard.JWSTStateText.Text\", \"Time speed: -30 minutes/second\")" ) -- fw palette deploy, forwards openspace.scriptScheduler.loadScheduledScript( "2018 OCT 04 06:26:38", -- 2h pre delay so time to interpolate "openspace.time.interpolateDeltaTime(3600)" .. - "openspace.setPropertyValueSingle('Dashboard.JWSTStateText.Text', 'Time speed: 1 hour/second')" + "openspace.setPropertyValueSingle(\"Dashboard.JWSTStateText.Text\", \"Time speed: 1 hour/second\")" ) -- fw palette deploy, backwards openspace.scriptScheduler.loadScheduledScript( "2018 OCT 04 08:26:38", "", "openspace.time.interpolateDeltaTime(-18000)" .. - "openspace.setPropertyValueSingle('Dashboard.JWSTStateText.Text', 'Time speed: -5 hours/second')" + "openspace.setPropertyValueSingle(\"Dashboard.JWSTStateText.Text\", \"Time speed: -5 hours/second\")" ) -- fw palette complete openspace.scriptScheduler.loadScheduledScript( "2018 OCT 04 20:06:03", "openspace.time.interpolateDeltaTime(1800)" .. - "openspace.setPropertyValueSingle('Dashboard.JWSTStateText.Text', 'Time speed: 30 minutes/second')", + "openspace.setPropertyValueSingle(\"Dashboard.JWSTStateText.Text\", \"Time speed: 30 minutes/second\")", "openspace.time.interpolateDeltaTime(-3600)" .. - "openspace.setPropertyValueSingle('Dashboard.JWSTStateText.Text', 'Time speed: -1 hour/second')" + "openspace.setPropertyValueSingle(\"Dashboard.JWSTStateText.Text\", \"Time speed: -1 hour/second\")" ) -- r palette deploy openspace.scriptScheduler.loadScheduledScript( "2018 OCT 04 22:57:03", "openspace.time.interpolateDeltaTime(1800)" .. - "openspace.setPropertyValueSingle('Dashboard.JWSTStateText.Text', 'Time speed: 30 minutes/second')", + "openspace.setPropertyValueSingle(\"Dashboard.JWSTStateText.Text\", \"Time speed: 30 minutes/second\")", "openspace.time.interpolateDeltaTime(-1800)" .. - "openspace.setPropertyValueSingle('Dashboard.JWSTStateText.Text', 'Time speed: -30 minutes/second')" + "openspace.setPropertyValueSingle(\"Dashboard.JWSTStateText.Text\", \"Time speed: -30 minutes/second\")" ) -- r palette complete openspace.scriptScheduler.loadScheduledScript( "2018 OCT 05 02:06:03", "openspace.time.interpolateDeltaTime(120)" .. - "openspace.setPropertyValueSingle('Dashboard.JWSTStateText.Text', 'Time speed: 2 minutes/second')", + "openspace.setPropertyValueSingle(\"Dashboard.JWSTStateText.Text\", \"Time speed: 2 minutes/second\")", "openspace.time.interpolateDeltaTime(-1800)" .. - "openspace.setPropertyValueSingle('Dashboard.JWSTStateText.Text', 'Time speed: -30 minutes/second')" + "openspace.setPropertyValueSingle(\"Dashboard.JWSTStateText.Text\", \"Time speed: -30 minutes/second\")" ) -- base rise deploy openspace.scriptScheduler.loadScheduledScript( "2018 OCT 05 02:28:03", "openspace.time.interpolateDeltaTime(7200)" .. - "openspace.setPropertyValueSingle('Dashboard.JWSTStateText.Text', 'Time speed: 2 hours/second')", + "openspace.setPropertyValueSingle(\"Dashboard.JWSTStateText.Text\", \"Time speed: 2 hours/second\")", "openspace.time.interpolateDeltaTime(-120)" .. - "openspace.setPropertyValueSingle('Dashboard.JWSTStateText.Text', 'Time speed: -2 minutes/second')" + "openspace.setPropertyValueSingle(\"Dashboard.JWSTStateText.Text\", \"Time speed: -2 minutes/second\")" ) -- base rise complete openspace.scriptScheduler.loadScheduledScript( "2018 OCT 06 07:41:03", "openspace.time.interpolateDeltaTime(1800)" .. - "openspace.setPropertyValueSingle('Dashboard.JWSTStateText.Text', 'Time speed: 30 minutes/second')", + "openspace.setPropertyValueSingle(\"Dashboard.JWSTStateText.Text\", \"Time speed: 30 minutes/second\")", "openspace.time.interpolateDeltaTime(-7200)" .. - "openspace.setPropertyValueSingle('Dashboard.JWSTStateText.Text', 'Time speed: -2 hours/second')" + "openspace.setPropertyValueSingle(\"Dashboard.JWSTStateText.Text\", \"Time speed: -2 hours/second\")" ) -- aft flap deploy openspace.scriptScheduler.loadScheduledScript( "2018 OCT 06 11:06:03", "openspace.time.interpolateDeltaTime(600)" .. - "openspace.setPropertyValueSingle('Dashboard.JWSTStateText.Text', 'Time speed: 10 minutes/second')", + "openspace.setPropertyValueSingle(\"Dashboard.JWSTStateText.Text\", \"Time speed: 10 minutes/second\")", "openspace.time.interpolateDeltaTime(-1800)" .. - "openspace.setPropertyValueSingle('Dashboard.JWSTStateText.Text', 'Time speed: -30 minutes/second')" + "openspace.setPropertyValueSingle(\"Dashboard.JWSTStateText.Text\", \"Time speed: -30 minutes/second\")" ) -- aft flap complete, forwards openspace.scriptScheduler.loadScheduledScript( "2018 OCT 06 15:43:03", "openspace.time.interpolateDeltaTime(3600)" .. - "openspace.setPropertyValueSingle('Dashboard.JWSTStateText.Text', 'Time speed: 1 hour/second')" + "openspace.setPropertyValueSingle(\"Dashboard.JWSTStateText.Text\", \"Time speed: 1 hour/second\")" ) -- aft flap complete, backwards openspace.scriptScheduler.loadScheduledScript( "2018 OCT 06 16:13:03", -- 30 min pre delay so time to interpolate "", "openspace.time.interpolateDeltaTime(-600)" .. - "openspace.setPropertyValueSingle('Dashboard.JWSTStateText.Text', 'Time speed: -10 minutes/second')" + "openspace.setPropertyValueSingle(\"Dashboard.JWSTStateText.Text\", \"Time speed: -10 minutes/second\")" ) -- mid booms extend openspace.scriptScheduler.loadScheduledScript( "2018 OCT 07 01:35:46", "openspace.time.interpolateDeltaTime(1800)" .. - "openspace.setPropertyValueSingle('Dashboard.JWSTStateText.Text', 'Time speed: 30 minutes/second')", + "openspace.setPropertyValueSingle(\"Dashboard.JWSTStateText.Text\", \"Time speed: 30 minutes/second\")", "openspace.time.interpolateDeltaTime(-3600)" .. - "openspace.setPropertyValueSingle('Dashboard.JWSTStateText.Text', 'Time speed: -1 hour/second')" + "openspace.setPropertyValueSingle(\"Dashboard.JWSTStateText.Text\", \"Time speed: -1 hour/second\")" ) -- first boom stop openspace.scriptScheduler.loadScheduledScript( "2018 OCT 07 02:22:19", "openspace.time.interpolateDeltaTime(1800)" .. - "openspace.setPropertyValueSingle('Dashboard.JWSTStateText.Text', 'Time speed: 30 minutes/second')", + "openspace.setPropertyValueSingle(\"Dashboard.JWSTStateText.Text\", \"Time speed: 30 minutes/second\")", "openspace.time.interpolateDeltaTime(-1800)" .. - "openspace.setPropertyValueSingle('Dashboard.JWSTStateText.Text', 'Time speed: -30 minutes/second')" + "openspace.setPropertyValueSingle(\"Dashboard.JWSTStateText.Text\", \"Time speed: -30 minutes/second\")" ) -- right boom complete openspace.scriptScheduler.loadScheduledScript( "2018 OCT 07 07:48:08", "openspace.time.interpolateDeltaTime(1800)" .. - "openspace.setPropertyValueSingle('Dashboard.JWSTStateText.Text', 'Time speed: 30 minutes/second')", + "openspace.setPropertyValueSingle(\"Dashboard.JWSTStateText.Text\", \"Time speed: 30 minutes/second\")", "openspace.time.interpolateDeltaTime(-1800)" .. - "openspace.setPropertyValueSingle('Dashboard.JWSTStateText.Text', 'Time speed: -30 minutes/second')" + "openspace.setPropertyValueSingle(\"Dashboard.JWSTStateText.Text\", \"Time speed: -30 minutes/second\")" ) -- left booms complete openspace.scriptScheduler.loadScheduledScript( "2018 OCT 07 12:12:03", "openspace.time.interpolateDeltaTime(30)" .. - "openspace.setPropertyValueSingle('Dashboard.JWSTStateText.Text', 'Time speed: 30 seconds/second')", + "openspace.setPropertyValueSingle(\"Dashboard.JWSTStateText.Text\", \"Time speed: 30 seconds/second\")", "openspace.time.interpolateDeltaTime(-1800)" .. - "openspace.setPropertyValueSingle('Dashboard.JWSTStateText.Text', 'Time speed: -30 minutes/second')" + "openspace.setPropertyValueSingle(\"Dashboard.JWSTStateText.Text\", \"Time speed: -30 minutes/second\")" ) -- tension sun shield membranes openspace.scriptScheduler.loadScheduledScript( "2018 OCT 07 12:15:17", "openspace.time.interpolateDeltaTime(60)" .. - "openspace.setPropertyValueSingle('Dashboard.JWSTStateText.Text', 'Time speed: 1 minute/second')", + "openspace.setPropertyValueSingle(\"Dashboard.JWSTStateText.Text\", \"Time speed: 1 minute/second\")", "openspace.time.interpolateDeltaTime(-30)" .. - "openspace.setPropertyValueSingle('Dashboard.JWSTStateText.Text', 'Time speed: -30 seconds/second')" + "openspace.setPropertyValueSingle(\"Dashboard.JWSTStateText.Text\", \"Time speed: -30 seconds/second\")" ) -- membrane tension complete openspace.scriptScheduler.loadScheduledScript( "2018 OCT 07 12:26:03", "openspace.time.interpolateDeltaTime(7200)" .. - "openspace.setPropertyValueSingle('Dashboard.JWSTStateText.Text', 'Time speed: 2 hours/second')", + "openspace.setPropertyValueSingle(\"Dashboard.JWSTStateText.Text\", \"Time speed: 2 hours/second\")", "openspace.time.interpolateDeltaTime(-60)" .. - "openspace.setPropertyValueSingle('Dashboard.JWSTStateText.Text', 'Time speed: -1 minute/second')" + "openspace.setPropertyValueSingle(\"Dashboard.JWSTStateText.Text\", \"Time speed: -1 minute/second\")" ) -- membranes separate openspace.scriptScheduler.loadScheduledScript( "2018 OCT 08 02:42:52", "openspace.time.interpolateDeltaTime(3600)" .. - "openspace.setPropertyValueSingle('Dashboard.JWSTStateText.Text', 'Time speed: 1 hour/second')", + "openspace.setPropertyValueSingle(\"Dashboard.JWSTStateText.Text\", \"Time speed: 1 hour/second\")", "openspace.time.interpolateDeltaTime(-7200)" .. - "openspace.setPropertyValueSingle('Dashboard.JWSTStateText.Text', 'Time speed: -2 hours/second')" + "openspace.setPropertyValueSingle(\"Dashboard.JWSTStateText.Text\", \"Time speed: -2 hours/second\")" ) -- secondary mirror deploy openspace.scriptScheduler.loadScheduledScript( "2018 OCT 08 14:06:03", "openspace.time.interpolateDeltaTime(18000)" .. - "openspace.setPropertyValueSingle('Dashboard.JWSTStateText.Text', 'Time speed: 5 hours/second')", + "openspace.setPropertyValueSingle(\"Dashboard.JWSTStateText.Text\", \"Time speed: 5 hours/second\")", "openspace.time.interpolateDeltaTime(-3600)" .. - "openspace.setPropertyValueSingle('Dashboard.JWSTStateText.Text', 'Time speed: -1 hour/second')" + "openspace.setPropertyValueSingle(\"Dashboard.JWSTStateText.Text\", \"Time speed: -1 hour/second\")" ) -- secondary mirror complete openspace.scriptScheduler.loadScheduledScript( "2018 OCT 13 00:39:03", "openspace.time.interpolateDeltaTime(1200)" .. - "openspace.setPropertyValueSingle('Dashboard.JWSTStateText.Text', 'Time speed: 20 minutes/second')", + "openspace.setPropertyValueSingle(\"Dashboard.JWSTStateText.Text\", \"Time speed: 20 minutes/second\")", "openspace.time.interpolateDeltaTime(-18000)" .. - "openspace.setPropertyValueSingle('Dashboard.JWSTStateText.Text', 'Time speed: -5 hours/second')" + "openspace.setPropertyValueSingle(\"Dashboard.JWSTStateText.Text\", \"Time speed: -5 hours/second\")" ) -- aft radiator deploy openspace.scriptScheduler.loadScheduledScript( "2018 OCT 13 02:26:51", "openspace.time.interpolateDeltaTime(1800)" .. - "openspace.setPropertyValueSingle('Dashboard.JWSTStateText.Text', 'Time speed: 30 minutes/second')", + "openspace.setPropertyValueSingle(\"Dashboard.JWSTStateText.Text\", \"Time speed: 30 minutes/second\")", "openspace.time.interpolateDeltaTime(-1200)" .. - "openspace.setPropertyValueSingle('Dashboard.JWSTStateText.Text', 'Time speed: -20 minutes/second')" + "openspace.setPropertyValueSingle(\"Dashboard.JWSTStateText.Text\", \"Time speed: -20 minutes/second\")" ) -- aft radiator complete, forward openspace.scriptScheduler.loadScheduledScript( "2018 OCT 13 06:11:03", "openspace.time.interpolateDeltaTime(7200)" .. - "openspace.setPropertyValueSingle('Dashboard.JWSTStateText.Text', 'Time speed: 2 hours/second')" + "openspace.setPropertyValueSingle(\"Dashboard.JWSTStateText.Text\", \"Time speed: 2 hours/second\")" ) -- aft radiator complete, backward openspace.scriptScheduler.loadScheduledScript( "2018 OCT 13 07:11:03", -- 1h pre delay so time to interpolate "", "openspace.time.interpolateDeltaTime(-1800)" .. - "openspace.setPropertyValueSingle('Dashboard.JWSTStateText.Text', 'Time speed: -30 minutes/second')" + "openspace.setPropertyValueSingle(\"Dashboard.JWSTStateText.Text\", \"Time speed: -30 minutes/second\")" ) -- rt cord fold wings deploy openspace.scriptScheduler.loadScheduledScript( "2018 OCT 13 23:36:03", "openspace.time.interpolateDeltaTime(7200)" .. - "openspace.setPropertyValueSingle('Dashboard.JWSTStateText.Text', 'Time speed: 2 hours/second')", + "openspace.setPropertyValueSingle(\"Dashboard.JWSTStateText.Text\", \"Time speed: 2 hours/second\")", "openspace.time.interpolateDeltaTime(-7200)" .. - "openspace.setPropertyValueSingle('Dashboard.JWSTStateText.Text', 'Time speed: -2 hours/second')" + "openspace.setPropertyValueSingle(\"Dashboard.JWSTStateText.Text\", \"Time speed: -2 hours/second\")" ) -- rt cord fold wings complete openspace.scriptScheduler.loadScheduledScript( "2018 OCT 15 02:46:51", "openspace.time.interpolateDeltaTime(7200)" .. - "openspace.setPropertyValueSingle('Dashboard.JWSTStateText.Text', 'Time speed: 2 hours/second')", + "openspace.setPropertyValueSingle(\"Dashboard.JWSTStateText.Text\", \"Time speed: 2 hours/second\")", "openspace.time.interpolateDeltaTime(-7200)" .. - "openspace.setPropertyValueSingle('Dashboard.JWSTStateText.Text', 'Time speed: -2 hours/second')" + "openspace.setPropertyValueSingle(\"Dashboard.JWSTStateText.Text\", \"Time speed: -2 hours/second\")" ) -- lft cord fold wings deploy openspace.scriptScheduler.loadScheduledScript( "2018 OCT 15 13:06:03", "openspace.time.interpolateDeltaTime(7200)" .. - "openspace.setPropertyValueSingle('Dashboard.JWSTStateText.Text', 'Time speed: 2 hours/second')", + "openspace.setPropertyValueSingle(\"Dashboard.JWSTStateText.Text\", \"Time speed: 2 hours/second\")", "openspace.time.interpolateDeltaTime(-7200)" .. - "openspace.setPropertyValueSingle('Dashboard.JWSTStateText.Text', 'Time speed: -2 hours/second')" + "openspace.setPropertyValueSingle(\"Dashboard.JWSTStateText.Text\", \"Time speed: -2 hours/second\")" ) -- lft cord fold wings complete openspace.scriptScheduler.loadScheduledScript( "2018 OCT 16 09:06:03", "openspace.time.interpolateDeltaTime(1)" .. - "openspace.setPropertyValueSingle('Dashboard.JWSTStateText.Text', '')" .. - "openspace.setPropertyValueSingle('Scene.Earth.Renderable.Layers.NightLayers.Earth_at_Night_2012.Settings.Gamma', 1.0)" .. - "openspace.setPropertyValueSingle('Scene.EarthAtmosphere.Renderable.Enabled', true)", + "openspace.setPropertyValueSingle(\"Dashboard.JWSTStateText.Text\", \"\")" .. + "openspace.setPropertyValueSingle(\"Scene.Earth.Renderable.Layers.NightLayers.Earth_at_Night_2012.Settings.Gamma\", 1.0)" .. + "openspace.setPropertyValueSingle(\"Scene.EarthAtmosphere.Renderable.Enabled\", true)", "openspace.time.interpolateDeltaTime(-7200)" .. - "openspace.setPropertyValueSingle('Dashboard.JWSTStateText.Text', 'Time speed: -2 hours/second')" .. - "openspace.setPropertyValueSingle('Scene.Earth.Renderable.Layers.NightLayers.Earth_at_Night_2012.Settings.Gamma', 0.7)" .. - "openspace.setPropertyValueSingle('Scene.EarthAtmosphere.Renderable.Enabled', false)" + "openspace.setPropertyValueSingle(\"Dashboard.JWSTStateText.Text\", \"Time speed: -2 hours/second\")" .. + "openspace.setPropertyValueSingle(\"Scene.Earth.Renderable.Layers.NightLayers.Earth_at_Night_2012.Settings.Gamma\", 0.7)" .. + "openspace.setPropertyValueSingle(\"Scene.EarthAtmosphere.Renderable.Enabled\", false)" ) openspace.scriptScheduler.loadScheduledScript( @@ -326,9 +324,9 @@ local playForwards = { Name = "Play JWST from start", Command = [[ openspace.scriptScheduler.clear(0); - openspace.setPropertyValueSingle('Dashboard.JWSTStateText.Text', ''); + openspace.setPropertyValueSingle("Dashboard.JWSTStateText.Text", ""); openspace.time.setDeltaTime(1); - openspace.time.setTime('2018 OCT 01 14:06:03'); + openspace.time.setTime("2018 OCT 01 14:06:03"); ]] .. timelapse .. [[ ]], Documentation = "Jump to the JWST launch time and play the timelapse of deployment forward", @@ -341,9 +339,9 @@ local playBackwards = { Name = "Play JWST from end", Command = [[ openspace.scriptScheduler.clear(0); - openspace.setPropertyValueSingle('Dashboard.JWSTStateText.Text', ''); + openspace.setPropertyValueSingle("Dashboard.JWSTStateText.Text", ""); openspace.time.setDeltaTime(-1); - openspace.time.setTime('2018 OCT 16 09:06:04'); + openspace.time.setTime("2018 OCT 16 09:06:04"); ]] .. timelapse .. [[ ]], Documentation = "Jump to the end of JWST deployment time and play the timelapse of deployment in reverse", @@ -356,9 +354,9 @@ local clearPlay = { Name = "Clear JWST timelapse", Command = [[ openspace.scriptScheduler.clear(0); - openspace.setPropertyValueSingle('Dashboard.JWSTStateText.Text', ''); - openspace.setPropertyValueSingle('Scene.Earth.Renderable.Layers.NightLayers.Earth_at_Night_2012.Settings.Gamma', 1.0) - openspace.setPropertyValueSingle('Scene.EarthAtmosphere.Renderable.Enabled', true) + openspace.setPropertyValueSingle("Dashboard.JWSTStateText.Text", ""); + openspace.setPropertyValueSingle("Scene.Earth.Renderable.Layers.NightLayers.Earth_at_Night_2012.Settings.Gamma", 1.0) + openspace.setPropertyValueSingle("Scene.EarthAtmosphere.Renderable.Enabled", true) local deltaTime = openspace.time.deltaTime(); if deltaTime > 0 then openspace.time.setDeltaTime(1); @@ -380,17 +378,17 @@ local togglePlayDirection = { openspace.time.setDeltaTime(-deltaTime); -- Update the dashboard text - local text = openspace.getPropertyValue('Dashboard.JWSTStateText.Text'); + local text = openspace.getPropertyValue("Dashboard.JWSTStateText.Text"); if(string.len(text) > 14) then - local newText = '' - if(text:sub(13, 13) == '-') then + local newText = "" + if(text:sub(13, 13) == "-") then newText = text:sub(1,12) .. text:sub(14) else - newText = text:sub(1,12) .. '-' .. text:sub(13) + newText = text:sub(1,12) .. "-" .. text:sub(13) end - openspace.setPropertyValueSingle('Dashboard.JWSTStateText.Text', tostring(newText)); + openspace.setPropertyValueSingle("Dashboard.JWSTStateText.Text", tostring(newText)); else - openspace.setPropertyValueSingle('Dashboard.JWSTStateText.Text', ''); + openspace.setPropertyValueSingle("Dashboard.JWSTStateText.Text", ""); end ]], Documentation = "Toggle deployment timelapse direction between forwards and backwards", @@ -398,30 +396,32 @@ local togglePlayDirection = { IsLocal = false } +local text = { + Type = "DashboardItemText", + Identifier = "JWSTStateText", + GuiName = "JWST State Dashboard Text", + Text = "" +} + asset.onInitialize(function() openspace.action.registerAction(playForwards) openspace.action.registerAction(playBackwards) openspace.action.registerAction(clearPlay) openspace.action.registerAction(togglePlayDirection) + openspace.dashboard.addDashboardItem(text) end) asset.onDeinitialize(function () openspace.scriptScheduler.clear() - openspace.action.removeAction(playForwards.Identifier) - openspace.action.removeAction(playBackwards.Identifier) - openspace.action.removeAction(clearPlay.Identifier) - openspace.action.removeAction(togglePlayDirection.Identifier) + openspace.dashboard.removeDashboardItem(text) + openspace.action.removeAction(playForwards) + openspace.action.removeAction(playBackwards) + openspace.action.removeAction(clearPlay) + openspace.action.removeAction(togglePlayDirection) end) -assetHelper.registerDashboardItems(asset, { - { - Type = "DashboardItemText", - Identifier = "JWSTStateText", - GuiName = "JWST State Dashboard Text", - Text = "" - } -}) + asset.meta = { Name = "James Webb Space Telescope Timelapse", diff --git a/data/assets/scene/solarsystem/missions/jwst/trail.asset b/data/assets/scene/solarsystem/missions/jwst/trail.asset index 820c1a7b62..1d08a449fa 100644 --- a/data/assets/scene/solarsystem/missions/jwst/trail.asset +++ b/data/assets/scene/solarsystem/missions/jwst/trail.asset @@ -1,11 +1,22 @@ -local assetHelper = asset.require('util/asset_helper') -local transforms = asset.require('scene/solarsystem/planets/earth/lagrange_points/L2') -local earthTransforms = asset.require('scene/solarsystem/planets/earth/transforms') -local sunTransforms = asset.require('scene/solarsystem/sun/transforms') -local horizons = asset.require('./horizons').horizons -local kernels = asset.require('./kernels').kernels +local transforms = asset.require("scene/solarsystem/planets/earth/lagrange_points/L2") +local earthTransforms = asset.require("scene/solarsystem/planets/earth/transforms") +local sunTransforms = asset.require("scene/solarsystem/sun/transforms") asset.require("spice/base") +local horizons = asset.syncedResource({ + Name = "JWST Horizons", + Type = "HttpSynchronization", + Identifier = "jwst_horizons", + Version = 2 +}) + +local kernels = asset.syncedResource({ + Name = "JWST Kernel", + Type = "HttpSynchronization", + Identifier = "jwst_kernels", + Version = 1 +}) + -- (malej 2021-10-04) In general, there is no trajectery data of JWST for the scheduled -- launch in December 2021, no horizons and no SPICE. Instead data from the 2018 launch -- is used, old data from an old launch time that never happened because of delays. @@ -25,7 +36,7 @@ local JWSTTrailLaunch = { Type = "RenderableTrailTrajectory", Translation = { Type = "HorizonsTranslation", - HorizonsTextFile = horizons .. "/horizons_jwst_launch.dat", + HorizonsTextFile = horizons .. "horizons_jwst_launch.dat", }, Color = { 0.9, 0.9, 0.0 }, StartTime = "2018 OCT 01 14:06:00", @@ -56,7 +67,7 @@ local JWSTTrailOrbit = { Type = "RenderableTrailOrbit", Translation = { Type = "HorizonsTranslation", - HorizonsTextFile = horizons .. "/horizons_jwst_orbit.dat", + HorizonsTextFile = horizons .. "horizons_jwst_orbit.dat", }, Color = { 0.9, 0.9, 0.0 }, Period = 182.621099, -- About 6 months @@ -87,7 +98,7 @@ local JWSTSunTrail = { Type = "SpiceTranslation", Target = "JWST", Observer = "SSB", - Kernels = kernels .. "/jwst_horizons_20200101_20240101_v01.bsp" + Kernels = kernels .. "jwst_horizons_20200101_20240101_v01.bsp" }, Color = { 0.0, 0.9, 0.9 }, Period = 365.242, @@ -103,11 +114,22 @@ local JWSTSunTrail = { } } -assetHelper.registerSceneGraphNodesAndExport(asset, { - JWSTTrailLaunch, - JWSTTrailOrbit, - JWSTSunTrail -}) +asset.onInitialize(function() + openspace.addSceneGraphNode(JWSTTrailLaunch) + openspace.addSceneGraphNode(JWSTTrailOrbit) + openspace.addSceneGraphNode(JWSTSunTrail) +end) + +asset.onDeinitialize(function() + openspace.removeSceneGraphNode(JWSTSunTrail) + openspace.removeSceneGraphNode(JWSTTrailOrbit) + openspace.removeSceneGraphNode(JWSTTrailLaunch) +end) + +asset.export(JWSTTrailLaunch) +asset.export(JWSTTrailOrbit) +asset.export(JWSTSunTrail) + asset.meta = { Name = "James Webb Space Telescope Trails", diff --git a/data/assets/scene/solarsystem/missions/jwst/transforms.asset b/data/assets/scene/solarsystem/missions/jwst/transforms.asset index 0ce7e4defa..a2a94168b1 100644 --- a/data/assets/scene/solarsystem/missions/jwst/transforms.asset +++ b/data/assets/scene/solarsystem/missions/jwst/transforms.asset @@ -1,8 +1,13 @@ -local assetHelper = asset.require('util/asset_helper') -local earthTransforms = asset.require('scene/solarsystem/planets/earth/transforms') -local sunTransforms = asset.require('scene/solarsystem/sun/transforms') -local horizons = asset.require('./horizons').horizons -asset.require('spice/base') +local earthTransforms = asset.require("scene/solarsystem/planets/earth/transforms") +local sunTransforms = asset.require("scene/solarsystem/sun/transforms") +asset.require("spice/base") + +local horizons = asset.syncedResource({ + Name = "JWST Horizons", + Type = "HttpSynchronization", + Identifier = "jwst_horizons", + Version = 2 +}) local JWSTPosition = { Identifier = "JWSTPosition", @@ -12,13 +17,13 @@ local JWSTPosition = { Type = "TimelineTranslation", ShouldInterpolate = false, Keyframes = { - ['2018 OCT 01 14:06:03'] = { + ["2018 OCT 01 14:06:03"] = { Type = "HorizonsTranslation", - HorizonsTextFile = horizons .. "/horizons_jwst_launch.dat", + HorizonsTextFile = horizons .. "horizons_jwst_launch.dat", }, - ['2018 NOV 01 00:00:00'] = { + ["2018 NOV 01 00:00:00"] = { Type = "HorizonsTranslation", - HorizonsTextFile = horizons .. "/horizons_jwst_orbit.dat", + HorizonsTextFile = horizons .. "horizons_jwst_orbit.dat", } } }, @@ -61,17 +66,26 @@ local JWSTRotation = { asset.onInitialize(function() openspace.scriptScheduler.loadScheduledScript( "2018 NOV 01 00:00:00", - "openspace.setParent('JWSTPosition', 'L2')", - "openspace.setParent('JWSTPosition', 'EarthCenter')", + [[openspace.setParent("JWSTPosition", "L2")]], + [[openspace.setParent("JWSTPosition", "EarthCenter")]], "", 1 -- Not default group, never clear this script ) end) -assetHelper.registerSceneGraphNodesAndExport(asset, { - JWSTPosition, - JWSTRotation -}) +asset.onInitialize(function() + openspace.addSceneGraphNode(JWSTPosition) + openspace.addSceneGraphNode(JWSTRotation) +end) + +asset.onDeinitialize(function() + openspace.removeSceneGraphNode(JWSTRotation) + openspace.removeSceneGraphNode(JWSTPosition) +end) + +asset.export(JWSTPosition) +asset.export(JWSTRotation) + asset.meta = { Name = "James Webb Space Telescope Transforms", diff --git a/data/assets/scene/solarsystem/missions/messenger/dashboard.asset b/data/assets/scene/solarsystem/missions/messenger/dashboard.asset index d38410c140..b460d104d9 100644 --- a/data/assets/scene/solarsystem/missions/messenger/dashboard.asset +++ b/data/assets/scene/solarsystem/missions/messenger/dashboard.asset @@ -1,13 +1,17 @@ -local assetHelper = asset.require('util/asset_helper') +local distance = { + Type = "DashboardItemDistance", + Identifier = "MessengerDistance", + GuiName = "Messenger - Mercury Distance", + SourceType = "Node", + SourceNodeName = "Messenger", + DestinationType = "Node", + DestinationNodeName = "Mercury" +} -assetHelper.registerDashboardItems(asset, { - { - Type = "DashboardItemDistance", - Identifier = "MessengerDistance", - GuiName = "Messenger - Mercury Distance", - SourceType = "Node", - SourceNodeName = "Messenger", - DestinationType = "Node", - DestinationNodeName = "Mercury" - } -}) +asset.onInitialize(function() + openspace.dashboard.addDashboardItem(distance) +end) + +asset.onDeinitialize(function() + openspace.dashboard.removeDashboardItem(distance) +end) diff --git a/data/assets/scene/solarsystem/missions/messenger/mercurymagnetosphere.asset b/data/assets/scene/solarsystem/missions/messenger/mercurymagnetosphere.asset index 8bc88d57f2..576f0b8ed6 100644 --- a/data/assets/scene/solarsystem/missions/messenger/mercurymagnetosphere.asset +++ b/data/assets/scene/solarsystem/missions/messenger/mercurymagnetosphere.asset @@ -1,6 +1,5 @@ -- mercurymagnetosphere.asset -local assetHelper = asset.require('util/asset_helper') -local mercuryTransforms = asset.require('scene/solarsystem/planets/mercury/transforms') +local mercuryTransforms = asset.require("scene/solarsystem/planets/mercury/transforms") local localFolder = asset.syncedResource({ Name = "Mercury Magnetosphere", @@ -20,7 +19,7 @@ local Magnetosphere = { Renderable = { Type = "RenderableTimeVaryingVolume", SourceDirectory = localFolder, - TransferFunction = localFolder .. "/transferfunction.txt", + TransferFunction = localFolder .. "transferfunction.txt", Variable = "rho", StepSize = 0.003, Dimensions = {64, 64, 64}, @@ -40,7 +39,7 @@ local Magnetosphere = { SourceFrame = "MERCURYSE", DestinationFrame = "GALACTIC", Kernels = { - localFolder .. "/openspace_mercury.ti" + localFolder .. "openspace_mercury.ti" } }, Scale = { @@ -54,4 +53,12 @@ local Magnetosphere = { } } -assetHelper.registerSceneGraphNodesAndExport(asset, { Magnetosphere }) +asset.onInitialize(function() + openspace.addSceneGraphNode(Magnetosphere) +end) + +asset.onDeinitialize(function() + openspace.removeSceneGraphNode(Magnetosphere) +end) + +asset.export(Magnetosphere) diff --git a/data/assets/scene/solarsystem/missions/messenger/messengerSC.asset b/data/assets/scene/solarsystem/missions/messenger/messengerSC.asset index b5cadee6e1..eca89f4eff 100644 --- a/data/assets/scene/solarsystem/missions/messenger/messengerSC.asset +++ b/data/assets/scene/solarsystem/missions/messenger/messengerSC.asset @@ -1,6 +1,5 @@ -local assetHelper = asset.require('util/asset_helper') -local sunTransforms = asset.require('scene/solarsystem/sun/transforms') -local mercuryTransforms = asset.require('scene/solarsystem/planets/mercury/transforms') +local sunTransforms = asset.require("scene/solarsystem/sun/transforms") +local mercuryTransforms = asset.require("scene/solarsystem/planets/mercury/transforms") local models = asset.syncedResource({ @@ -19,35 +18,35 @@ local kernels = asset.syncedResource({ local LocalKernels = { - kernels .. '/messenger_2548.tsc', - kernels .. '/msgr_v231.tf', + kernels .. "messenger_2548.tsc", + kernels .. "msgr_v231.tf", - kernels .. '/de405.bsp', - kernels .. '/msgr_040803_150430_150430_od431sc_2.bsp', - kernels .. '/msgr_antenna_v000.bsp', - kernels .. '/msgr_de405_de423s.bsp', + kernels .. "de405.bsp", + kernels .. "msgr_040803_150430_150430_od431sc_2.bsp", + kernels .. "msgr_antenna_v000.bsp", + kernels .. "msgr_de405_de423s.bsp", - kernels .. '/msgr_epps_v100.ti', - kernels .. '/msgr_grns_v110.ti', - kernels .. '/msgr_mag_v021.ti', - kernels .. '/msgr_mascs_v100.ti', - kernels .. '/msgr_mdis_v160.ti', - kernels .. '/msgr_mla_v010.ti', - kernels .. '/msgr_rs_v111.ti', - kernels .. '/msgr_xrs_v001.ti', + kernels .. "msgr_epps_v100.ti", + kernels .. "msgr_grns_v110.ti", + kernels .. "msgr_mag_v021.ti", + kernels .. "msgr_mascs_v100.ti", + kernels .. "msgr_mdis_v160.ti", + kernels .. "msgr_mla_v010.ti", + kernels .. "msgr_rs_v111.ti", + kernels .. "msgr_xrs_v001.ti", - kernels .. '/pck00008.tpc', - kernels .. '/pck00008_msgr.tpc', - kernels .. '/pck00009_msgr_v10.tpc', - kernels .. '/pck00010_msgr_v10.tpc', - kernels .. '/pck00010_msgr_v23.tpc', - kernels .. '/pck00010.tpc', + kernels .. "pck00008.tpc", + kernels .. "pck00008_msgr.tpc", + kernels .. "pck00009_msgr_v10.tpc", + kernels .. "pck00010_msgr_v10.tpc", + kernels .. "pck00010_msgr_v23.tpc", + kernels .. "pck00010.tpc", - kernels .. '/msgr_1103_v02.bc', - kernels .. '/msgr_1104_v02.bc', - kernels .. '/msgr_1105_v02.bc', - kernels .. '/msgr_1106_v02.bc', + kernels .. "msgr_1103_v02.bc", + kernels .. "msgr_1104_v02.bc", + kernels .. "msgr_1105_v02.bc", + kernels .. "msgr_1106_v02.bc" } @@ -58,7 +57,19 @@ local RotationMatrix = { } -local LightSources = assetHelper.getDefaultLightSources(sunTransforms.SolarSystemBarycenter.Identifier) +local LightSources = { + { + Type = "SceneGraphLightSource", + Identifier = "Sun", + Node = sunTransforms.SolarSystemBarycenter.Identifier, + Intensity = 1.0 + }, + { + Identifier = "Camera", + Type = "CameraLightSource", + Intensity = 0.5 + } +} local Messenger = { Identifier = "Messenger", @@ -92,7 +103,7 @@ local MessengerProbeBlack = { Parent = Messenger.Identifier, Renderable = { Type = "RenderableModel", - GeometryFile = models .. "/MessengerProbe_black.obj", + GeometryFile = models .. "MessengerProbe_black.obj", ModelTransform = RotationMatrix, LightSources = LightSources }, @@ -107,7 +118,7 @@ local MessengerProbeFoil = { Parent = Messenger.Identifier, Renderable = { Type = "RenderableModel", - GeometryFile = models .. "/MessengerProbe_foil.obj", + GeometryFile = models .. "MessengerProbe_foil.obj", ModelTransform = RotationMatrix, LightSources = LightSources }, @@ -122,7 +133,7 @@ local MessengerProbeHeatShield = { Parent = Messenger.Identifier, Renderable = { Type = "RenderableModel", - GeometryFile = models .. "/MessengerProbe_heatShield.obj", + GeometryFile = models .. "MessengerProbe_heatShield.obj", ModelTransform = RotationMatrix, LightSources = LightSources }, @@ -137,7 +148,7 @@ local MessengerProbeMetal = { Parent = Messenger.Identifier, Renderable = { Type = "RenderableModel", - GeometryFile = models .. "/MessengerProbe_metal.obj", + GeometryFile = models .. "MessengerProbe_metal.obj", ModelTransform = RotationMatrix, LightSources = LightSources }, @@ -152,7 +163,7 @@ local MessengerProbePanels = { Parent = Messenger.Identifier, Renderable = { Type = "RenderableModel", - GeometryFile = models .. "/MessengerProbe_panels.obj", + GeometryFile = models .. "MessengerProbe_panels.obj", ModelTransform = RotationMatrix, LightSources = LightSources }, @@ -187,7 +198,7 @@ local MessengerTrail = { } -assetHelper.registerSceneGraphNodesAndExport(asset, { +local nodes = { Messenger, MessengerProbeBlack, MessengerProbeFoil, @@ -195,4 +206,20 @@ assetHelper.registerSceneGraphNodesAndExport(asset, { MessengerProbeMetal, MessengerProbePanels, MessengerTrail -}) +} + +asset.onInitialize(function() + for i, node in ipairs(nodes) do + openspace.addSceneGraphNode(node) + end +end) + +asset.onDeinitialize(function() + for i = #nodes, 1, -1 do + openspace.removeSceneGraphNode(nodes[i]) + end +end) + +for i, node in ipairs(nodes) do + asset.export(node) +end diff --git a/data/assets/scene/solarsystem/missions/newhorizons/charon.asset b/data/assets/scene/solarsystem/missions/newhorizons/charon.asset index 858edb1bc4..52ad91c9be 100644 --- a/data/assets/scene/solarsystem/missions/newhorizons/charon.asset +++ b/data/assets/scene/solarsystem/missions/newhorizons/charon.asset @@ -1,6 +1,5 @@ -local assetHelper = asset.require('util/asset_helper') -local transforms = asset.require('./transforms') -local sunTransforms = asset.require('scene/solarsystem/sun/transforms') +local transforms = asset.require("./transforms") +local sunTransforms = asset.require("scene/solarsystem/sun/transforms") @@ -36,12 +35,12 @@ local CharonProjection = { Segments = 350 }, ColorTexturePaths = { - textures .. "/NH_Charon_mosaic.png", - textures .. "/NH_Charon_mosaic_8192.png" + textures .. "NH_Charon_mosaic.png", + textures .. "NH_Charon_mosaic_8192.png" }, HeightTexturePaths = { - textures .. "/NH_Charon_DTM.png", - textures .. "/NH_Charon_DTM_8192.png" + textures .. "NH_Charon_DTM.png", + textures .. "NH_Charon_DTM_8192.png" }, MeridianShift = true, Projection = { @@ -78,7 +77,7 @@ local CharonText = { Transform = { Translation = { Type = "StaticTranslation", - Position = {0, -1000000.0, 0} + Position = { 0, -1000000.0, 0 } } }, Renderable = { @@ -86,7 +85,7 @@ local CharonText = { Size = 10^6.3, Origin = "Center", Billboard = true, - Texture = textures .. "/Charon-Text.png", + Texture = textures .. "Charon-Text.png", BlendMode = "Additive" }, GUI = { @@ -114,8 +113,18 @@ local CharonShadow = { } } -assetHelper.registerSceneGraphNodesAndExport(asset, { - CharonProjection, - CharonText, - CharonShadow -}) +asset.onInitialize(function() + openspace.addSceneGraphNode(CharonProjection) + openspace.addSceneGraphNode(CharonText) + openspace.addSceneGraphNode(CharonShadow) +end) + +asset.onDeinitialize(function() + openspace.removeSceneGraphNode(CharonShadow) + openspace.removeSceneGraphNode(CharonText) + openspace.removeSceneGraphNode(CharonProjection) +end) + +asset.export(CharonProjection) +asset.export(CharonText) +asset.export(CharonShadow) diff --git a/data/assets/scene/solarsystem/missions/newhorizons/dashboard.asset b/data/assets/scene/solarsystem/missions/newhorizons/dashboard.asset index e64ee000ed..3d668bd2cd 100644 --- a/data/assets/scene/solarsystem/missions/newhorizons/dashboard.asset +++ b/data/assets/scene/solarsystem/missions/newhorizons/dashboard.asset @@ -1,24 +1,34 @@ -local assetHelper = asset.require('util/asset_helper') +local spacing = { + Type = "DashboardItemSpacing", + Identifier = "NewHorizonsSpacing", + GuiName = "New Horizons Spacing", + Spacing = 25 +} -assetHelper.registerDashboardItems(asset, { - { - Type = "DashboardItemSpacing", - Identifier = "NewHorizonsSpacing", - GuiName = "New Horizons Spacing", - Spacing = 25 - }, - { - Type = "DashboardItemDistance", - Identifier = "NewHorizonsPlutoDistance", - GuiName = "New Horizons Pluto Distance", - SourceType = "Node", - SourceNodeName = "NewHorizons", - DestinationType = "Node Surface", - DestinationNodeName = "PlutoProjection" - }, - { - Type = "DashboardItemInstruments", - Identifier = "NewHorizonsInstruments", - GuiName = "NewHorizons Instruments" - } -}) +local distance = { + Type = "DashboardItemDistance", + Identifier = "NewHorizonsPlutoDistance", + GuiName = "New Horizons Pluto Distance", + SourceType = "Node", + SourceNodeName = "NewHorizons", + DestinationType = "Node Surface", + DestinationNodeName = "PlutoProjection" +} + +local instruments = { + Type = "DashboardItemInstruments", + Identifier = "NewHorizonsInstruments", + GuiName = "NewHorizons Instruments" +} + +asset.onInitialize(function() + openspace.dashboard.addDashboardItem(spacing) + openspace.dashboard.addDashboardItem(distance) + openspace.dashboard.addDashboardItem(instruments) +end) + +asset.onDeinitialize(function() + openspace.dashboard.removeDashboardItem(instruments) + openspace.dashboard.removeDashboardItem(distance) + openspace.dashboard.removeDashboardItem(spacing) +end) diff --git a/data/assets/scene/solarsystem/missions/newhorizons/fov.asset b/data/assets/scene/solarsystem/missions/newhorizons/fov.asset index 5bdaef3e93..63bae74bd6 100644 --- a/data/assets/scene/solarsystem/missions/newhorizons/fov.asset +++ b/data/assets/scene/solarsystem/missions/newhorizons/fov.asset @@ -1,5 +1,4 @@ -local assetHelper = asset.require('util/asset_helper') -local transforms = asset.require('./transforms') +local transforms = asset.require("./transforms") @@ -355,7 +354,7 @@ local Rex = { Transform = { Rotation = { Type = "StaticRotation", - Rotation = {-3.141502/2, 0, -3.141502/2} + Rotation = { -math.pi/2, 0.0, -math.pi/2 } }, Translation = { Type = "StaticTranslation", @@ -368,7 +367,7 @@ local Rex = { } } -assetHelper.registerSceneGraphNodesAndExport(asset, { +local nodes = { Lorri, RalphLeisa, RalphMvicPan1, @@ -381,4 +380,21 @@ assetHelper.registerSceneGraphNodesAndExport(asset, { AliceAirglow, AliceSoc, Rex -}) +} + +asset.onInitialize(function () + for i, node in ipairs(nodes) do + openspace.addSceneGraphNode(node) + end +end) + +asset.onDeinitialize(function () + for i = #nodes, 1, -1 do + local node = nodes[i] + openspace.removeSceneGraphNode(node) + end +end) + +for i, node in ipairs(nodes) do + asset.export(node) +end diff --git a/data/assets/scene/solarsystem/missions/newhorizons/kernels.asset b/data/assets/scene/solarsystem/missions/newhorizons/kernels.asset index 081af3b699..3400b3299d 100644 --- a/data/assets/scene/solarsystem/missions/newhorizons/kernels.asset +++ b/data/assets/scene/solarsystem/missions/newhorizons/kernels.asset @@ -6,39 +6,39 @@ local Kernels = asset.syncedResource({ }) local NewHorizonsKernels = { - Kernels .. "/nh_pred_20141201_20190301_od122.bsp", - Kernels .. "/NavSE_plu047_od122.bsp", - Kernels .. "/NavPE_de433_od122.bsp", + Kernels .. "nh_pred_20141201_20190301_od122.bsp", + Kernels .. "NavSE_plu047_od122.bsp", + Kernels .. "NavPE_de433_od122.bsp", - Kernels .. "/new-horizons_1121.tsc", + Kernels .. "new-horizons_1121.tsc", - Kernels .. "/nh_scispi_2015_pred.bc", - Kernels .. "/nh_scispi_2015_recon.bc", - Kernels .. "/nh_lorri_wcs.bc", + Kernels .. "nh_scispi_2015_pred.bc", + Kernels .. "nh_scispi_2015_recon.bc", + Kernels .. "nh_lorri_wcs.bc", - Kernels .. "/PLU_LORRI_ALL_161216.bc", + Kernels .. "PLU_LORRI_ALL_161216.bc", - Kernels .. "/nh_targets_v001.tpc", - Kernels .. "/nh_pcnh_005.tpc", + Kernels .. "nh_targets_v001.tpc", + Kernels .. "nh_pcnh_005.tpc", - Kernels .. "/nh_v220.tf", - Kernels .. "/nh_allinstruments_v002.ti", - Kernels .. "/nh_alice_v200.ti", - Kernels .. "/nh_lorri_v201.ti", - Kernels .. "/nh_pepssi_v110.ti", - Kernels .. "/nh_ralph_v100.ti", - Kernels .. "/nh_rex_v100.ti", - Kernels .. "/nh_sdc_v101.ti", - Kernels .. "/nh_swap_v100.ti", - Kernels .. "/nh_astr_v000.ti", - Kernels .. "/nh_fss_v000.ti", - Kernels .. "/nh_soc_misc_v001.tf", - Kernels .. "/nh_stars.bsp", + Kernels .. "nh_v220.tf", + Kernels .. "nh_allinstruments_v002.ti", + Kernels .. "nh_alice_v200.ti", + Kernels .. "nh_lorri_v201.ti", + Kernels .. "nh_pepssi_v110.ti", + Kernels .. "nh_ralph_v100.ti", + Kernels .. "nh_rex_v100.ti", + Kernels .. "nh_sdc_v101.ti", + Kernels .. "nh_swap_v100.ti", + Kernels .. "nh_astr_v000.ti", + Kernels .. "nh_fss_v000.ti", + Kernels .. "nh_soc_misc_v001.tf", + Kernels .. "nh_stars.bsp", } local PlutoKernels = { - Kernels .. "/NavPE_de433_od122.bsp", - Kernels .. "/NavSE_plu047_od122.bsp" + Kernels .. "NavPE_de433_od122.bsp", + Kernels .. "NavSE_plu047_od122.bsp" } asset.export("Kernels", Kernels) diff --git a/data/assets/scene/solarsystem/missions/newhorizons/label.asset b/data/assets/scene/solarsystem/missions/newhorizons/label.asset index 21a9cb8c83..646aec1f8f 100644 --- a/data/assets/scene/solarsystem/missions/newhorizons/label.asset +++ b/data/assets/scene/solarsystem/missions/newhorizons/label.asset @@ -1,12 +1,14 @@ -local assetHelper = asset.require('util/asset_helper') -local sunTransforms = asset.require('scene/solarsystem/sun/transforms') -local transforms = asset.require('./transforms') -local NewHorizonsModel = asset.require('./model') +local sunTransforms = asset.require("scene/solarsystem/sun/transforms") +local transforms = asset.require("./transforms") +local NewHorizonsModel = asset.require("./model") - -local textures = NewHorizonsModel.NewHorizonsTextures -local models = NewHorizonsModel.NewHorizonsModels +local models = asset.syncedResource({ + Name = "New Horizons Model", + Type = "HttpSynchronization", + Identifier = "newhorizons_model", + Version = 2 +}) local Labels = { Identifier = "Labels", @@ -14,7 +16,7 @@ local Labels = { Renderable = { Type = "RenderableModel", Body = "NEW HORIZONS", - GeometryFile = models .. "/Labels.obj", + GeometryFile = models .. "Labels.obj", AmbientIntensity = 0.8 }, GUI = { @@ -22,4 +24,12 @@ local Labels = { } } -assetHelper.registerSceneGraphNodesAndExport(asset, { Labels }) +asset.onInitialize(function() + openspace.addSceneGraphNode(Labels) +end) + +asset.onDeinitialize(function() + openspace.removeSceneGraphNode(Labels) +end) + +asset.export(Labels) diff --git a/data/assets/scene/solarsystem/missions/newhorizons/model.asset b/data/assets/scene/solarsystem/missions/newhorizons/model.asset index 255319f9f0..465f9cdf33 100644 --- a/data/assets/scene/solarsystem/missions/newhorizons/model.asset +++ b/data/assets/scene/solarsystem/missions/newhorizons/model.asset @@ -1,6 +1,5 @@ -local assetHelper = asset.require('util/asset_helper') -local transforms = asset.require('./transforms') -local sunTransforms = asset.require('scene/solarsystem/sun/transforms') +local transforms = asset.require("./transforms") +local sunTransforms = asset.require("scene/solarsystem/sun/transforms") local models = asset.syncedResource({ Name = "New Horizons Model", @@ -15,7 +14,7 @@ local NewHorizons = { Renderable = { Type = "RenderableModel", Body = "NEW HORIZONS", - GeometryFile = models .. "/NewHorizonsCleanModel.obj", + GeometryFile = models .. "NewHorizonsCleanModel.obj", AmbientIntensity = 0.2, DiffuseIntensity = 1.0, SpecularIntensity = 1.0, @@ -34,5 +33,12 @@ local NewHorizons = { } } -assetHelper.registerSceneGraphNodesAndExport(asset, { NewHorizons }) -asset.export("NewHorizonsModels", models) +asset.onInitialize(function() + openspace.addSceneGraphNode(NewHorizons) +end) + +asset.onDeinitialize(function() + openspace.removeSceneGraphNode(NewHorizons) +end) + +asset.export(NewHorizons) diff --git a/data/assets/scene/solarsystem/missions/newhorizons/newhorizons.asset b/data/assets/scene/solarsystem/missions/newhorizons/newhorizons.asset index ac7159463c..5b54845b72 100644 --- a/data/assets/scene/solarsystem/missions/newhorizons/newhorizons.asset +++ b/data/assets/scene/solarsystem/missions/newhorizons/newhorizons.asset @@ -1,20 +1,20 @@ -asset.require('./model') -asset.require('./label') -asset.require('./fov') -asset.require('./trail') +asset.require("./model") +asset.require("./label") +asset.require("./fov") +asset.require("./trail") -asset.require('./pluto') -asset.require('./charon') +asset.require("./pluto") +asset.require("./charon") -asset.require('./othermoons') +asset.require("./othermoons") local mission = asset.localResource("newhorizons.mission") local missionName asset.onInitialize(function() - missionName = openspace.loadMission(mission) + missionName = openspace.loadMission(mission) end) asset.onDeinitialize(function() - openspace.unloadMission(missionName) + openspace.unloadMission(missionName) end) diff --git a/data/assets/scene/solarsystem/missions/newhorizons/othermoons.asset b/data/assets/scene/solarsystem/missions/newhorizons/othermoons.asset index 8448163a5e..0c0c7124a9 100644 --- a/data/assets/scene/solarsystem/missions/newhorizons/othermoons.asset +++ b/data/assets/scene/solarsystem/missions/newhorizons/othermoons.asset @@ -1,8 +1,7 @@ -local Hydra = asset.require('scene/solarsystem/dwarf_planets/pluto/minor/hydra') -local Kerberos = asset.require('scene/solarsystem/dwarf_planets/pluto/minor/kerberos') -local Nix = asset.require('scene/solarsystem/dwarf_planets/pluto/minor/nix') -local Styx = asset.require('scene/solarsystem/dwarf_planets/pluto/minor/styx') -local assetHelper = asset.require('util/asset_helper') +local Hydra = asset.require("scene/solarsystem/dwarf_planets/pluto/minor/hydra") +local Kerberos = asset.require("scene/solarsystem/dwarf_planets/pluto/minor/kerberos") +local Nix = asset.require("scene/solarsystem/dwarf_planets/pluto/minor/nix") +local Styx = asset.require("scene/solarsystem/dwarf_planets/pluto/minor/styx") local hydraTextures = asset.syncedResource({ Name = "Hydra Textures", @@ -25,7 +24,7 @@ local HydraText = { Size = 10.0^6.3, Origin = "Center", Billboard = true, - Texture = hydraTextures .. "/Hydra-Text.png", + Texture = hydraTextures .. "Hydra-Text.png", BlendMode = "Additive" }, GUI = { @@ -55,7 +54,7 @@ local KerberosText = { Size = 10^6.3, Origin = "Center", Billboard = true, - Texture = kerberosTextures .. "/Kerberos-Text.png", + Texture = kerberosTextures .. "Kerberos-Text.png", BlendMode = "Additive" }, GUI = { @@ -79,7 +78,7 @@ local NixText = { Size = 10^6.3, Origin = "Center", Billboard = true, - Texture = nixTextures .. "/Nix-Text.png", + Texture = nixTextures .. "Nix-Text.png", BlendMode = "Additive" }, GUI = { @@ -109,7 +108,7 @@ local StyxText = { Size = 10^6.3, Origin = "Center", Billboard = true, - Texture = styxTextures .. "/Styx-Text.png", + Texture = styxTextures .. "Styx-Text.png", BlendMode = "Additive" }, GUI = { @@ -118,9 +117,21 @@ local StyxText = { } } -assetHelper.registerSceneGraphNodesAndExport(asset, { - HydraText, - KerberosText, - NixText, - StyxText -}) +asset.onInitialize(function() + openspace.addSceneGraphNode(HydraText) + openspace.addSceneGraphNode(KerberosText) + openspace.addSceneGraphNode(NixText) + openspace.addSceneGraphNode(StyxText) +end) + +asset.onDeinitialize(function() + openspace.removeSceneGraphNode(StyxText) + openspace.removeSceneGraphNode(NixText) + openspace.removeSceneGraphNode(KerberosText) + openspace.removeSceneGraphNode(HydraText) +end) + +asset.export(HydraText) +asset.export(KerberosText) +asset.export(NixText) +asset.export(StyxText) diff --git a/data/assets/scene/solarsystem/missions/newhorizons/pluto.asset b/data/assets/scene/solarsystem/missions/newhorizons/pluto.asset index 45f4b97830..234234b79c 100644 --- a/data/assets/scene/solarsystem/missions/newhorizons/pluto.asset +++ b/data/assets/scene/solarsystem/missions/newhorizons/pluto.asset @@ -1,7 +1,6 @@ -local assetHelper = asset.require('util/asset_helper') -local transforms = asset.require('./transforms') -local sunTransforms = asset.require('scene/solarsystem/sun/transforms') -local NewHorizonsKernels = asset.require('./kernels').NewHorizonsKernels +local transforms = asset.require("./transforms") +local sunTransforms = asset.require("scene/solarsystem/sun/transforms") +local NewHorizonsKernels = asset.require("./kernels").NewHorizonsKernels local assets = asset.syncedResource({ Name = "Pluto Assets", @@ -58,20 +57,20 @@ local PlutoProjection = { Segments = 400 }, ColorTexturePaths = { - textures .. "/pluto.png", - textures .. "/NH_Pluto_mosaic_16384.png", - textures .. "/NH_Pluto_mosaic_8192.png", - textures .. "/pmap_cyl_k201.jpg", - textures .. "/pmap_cyl_k201_4096.jpg" + textures .. "pluto.png", + textures .. "NH_Pluto_mosaic_16384.png", + textures .. "NH_Pluto_mosaic_8192.png", + textures .. "pmap_cyl_k201.jpg", + textures .. "pmap_cyl_k201_4096.jpg" }, HeightTexturePaths = { - textures .. "/NH_Pluto_DTM_16384.png", - textures .. "/NH_Pluto_DTM_8192.png" + textures .. "NH_Pluto_DTM_16384.png", + textures .. "NH_Pluto_DTM_8192.png" }, MeridianShift = false, Projection = { Sequence = images, - EventFile = assets .. "/core_v9h_obs_getmets_v8_time_fix_nofrcd_mld.txt", + EventFile = assets .. "core_v9h_obs_getmets_v8_time_fix_nofrcd_mld.txt", -- SequenceType = "hybrid", SequenceType = "image-sequence", Observer = "NEW HORIZONS", @@ -192,7 +191,7 @@ local PlutoBarycenterLabel = { Type = "RenderablePlaneImageLocal", Billboard = true, Size = 5E4, - Texture = encounterTextures .. "/barycenter.png", + Texture = encounterTextures .. "barycenter.png", BlendMode = "Additive" }, GUI = { @@ -215,7 +214,7 @@ local PlutoText = { Size = 10^6.3, Origin = "Center", Billboard = true, - Texture = encounterTextures .. "/Pluto-Text.png", + Texture = encounterTextures .. "Pluto-Text.png", BlendMode = "Additive" }, GUI = { @@ -243,9 +242,21 @@ local PlutoShadow = { } } -assetHelper.registerSceneGraphNodesAndExport(asset, { - PlutoProjection, - PlutoBarycenterLabel, - PlutoText, - PlutoShadow -}) +asset.onInitialize(function() + openspace.addSceneGraphNode(PlutoProjection) + openspace.addSceneGraphNode(PlutoBarycenterLabel) + openspace.addSceneGraphNode(PlutoText) + openspace.addSceneGraphNode(PlutoShadow) +end) + +asset.onDeinitialize(function() + openspace.removeSceneGraphNode(PlutoShadow) + openspace.removeSceneGraphNode(PlutoText) + openspace.removeSceneGraphNode(PlutoBarycenterLabel) + openspace.removeSceneGraphNode(PlutoProjection) +end) + +asset.export(PlutoProjection) +asset.export(PlutoBarycenterLabel) +asset.export(PlutoText) +asset.export(PlutoShadow) diff --git a/data/assets/scene/solarsystem/missions/newhorizons/trail.asset b/data/assets/scene/solarsystem/missions/newhorizons/trail.asset index 2f6dbb45b8..aa07cc3711 100644 --- a/data/assets/scene/solarsystem/missions/newhorizons/trail.asset +++ b/data/assets/scene/solarsystem/missions/newhorizons/trail.asset @@ -1,5 +1,4 @@ -local assetHelper = asset.require('util/asset_helper') -local transforms = asset.require('./transforms') +local transforms = asset.require("./transforms") @@ -29,6 +28,12 @@ local TrailAtPluto = { } } -assetHelper.registerSceneGraphNodesAndExport(asset, { - TrailAtPluto -}) +asset.onInitialize(function() + openspace.addSceneGraphNode(TrailAtPluto) +end) + +asset.onDeinitialize(function() + openspace.removeSceneGraphNode(TrailAtPluto) +end) + +asset.export(TrailAtPluto) diff --git a/data/assets/scene/solarsystem/missions/newhorizons/transforms.asset b/data/assets/scene/solarsystem/missions/newhorizons/transforms.asset index ff3965ba14..8e4dd6d0a4 100644 --- a/data/assets/scene/solarsystem/missions/newhorizons/transforms.asset +++ b/data/assets/scene/solarsystem/missions/newhorizons/transforms.asset @@ -1,6 +1,5 @@ -local assetHelper = asset.require('util/asset_helper') -local sunTransforms = asset.require('scene/solarsystem/sun/transforms') -local kernels = asset.require('./kernels') +local sunTransforms = asset.require("scene/solarsystem/sun/transforms") +local kernels = asset.require("./kernels") local PlutoBarycenterAccurate = { Identifier = "PlutoBarycenterAccurate", @@ -46,7 +45,15 @@ local NewHorizonsPosition = { } } -assetHelper.registerSceneGraphNodesAndExport(asset, { - PlutoBarycenterAccurate, - NewHorizonsPosition -}) +asset.onInitialize(function() + openspace.addSceneGraphNode(PlutoBarycenterAccurate) + openspace.addSceneGraphNode(NewHorizonsPosition) +end) + +asset.onDeinitialize(function() + openspace.removeSceneGraphNode(NewHorizonsPosition) + openspace.removeSceneGraphNode(PlutoBarycenterAccurate) +end) + +asset.export(PlutoBarycenterAccurate) +asset.export(NewHorizonsPosition) diff --git a/data/assets/scene/solarsystem/missions/osirisrex/bennu.asset b/data/assets/scene/solarsystem/missions/osirisrex/bennu.asset index 5ebbea22e2..67c0350bb5 100644 --- a/data/assets/scene/solarsystem/missions/osirisrex/bennu.asset +++ b/data/assets/scene/solarsystem/missions/osirisrex/bennu.asset @@ -1,7 +1,12 @@ -local assetHelper = asset.require('util/asset_helper') -local transforms = asset.require('./transforms') -local sunTransforms = asset.require('scene/solarsystem/sun/transforms') -local models = asset.require('./models').models +local transforms = asset.require("./transforms") +local sunTransforms = asset.require("scene/solarsystem/sun/transforms") + +local models = asset.syncedResource({ + Name = "Bennu Models", + Type = "HttpSynchronization", + Identifier = "bennu_models", + Version = 2 +}) local BENNU_BODY = "2101955" @@ -28,7 +33,7 @@ local Bennu = { Enabled = false, Type = "RenderableModel", Body = BENNU_BODY, - GeometryFile = models .. "/Bennu_v20_200k_an.obj", + GeometryFile = models .. "Bennu_v20_200k_an.obj", LightSources = LightSources, SpecularIntensity = 0.0 }, @@ -37,4 +42,12 @@ local Bennu = { } } -assetHelper.registerSceneGraphNodesAndExport(asset, {Bennu}) +asset.onInitialize(function() + openspace.addSceneGraphNode(Bennu) +end) + +asset.onDeinitialize(function() + openspace.removeSceneGraphNode(Bennu) +end) + +asset.export(Bennu) diff --git a/data/assets/scene/solarsystem/missions/osirisrex/bennu_projection.asset b/data/assets/scene/solarsystem/missions/osirisrex/bennu_projection.asset index c78fbef4b2..c4d0935813 100644 --- a/data/assets/scene/solarsystem/missions/osirisrex/bennu_projection.asset +++ b/data/assets/scene/solarsystem/missions/osirisrex/bennu_projection.asset @@ -1,8 +1,12 @@ -local assetHelper = asset.require('util/asset_helper') -local transforms = asset.require('./transforms') -local sunTransforms = asset.require('scene/solarsystem/sun/transforms') +local transforms = asset.require("./transforms") +local sunTransforms = asset.require("scene/solarsystem/sun/transforms") -local models = asset.require('./models').models +local models = asset.syncedResource({ + Name = "Bennu Models", + Type = "HttpSynchronization", + Identifier = "bennu_models", + Version = 2 +}) local BENNU_BODY = "2101955" @@ -34,7 +38,7 @@ local BennuProjection = { Enabled = true, Type = "RenderableModelProjection", Body = BENNU_BODY, - GeometryFile = models .. "/Bennu_v20_200k_an.obj", + GeometryFile = models .. "Bennu_v20_200k_an.obj", Projection = { Sequence = { images, imagesA }, SequenceType = "image-sequence", @@ -101,4 +105,15 @@ local BennuTrail = { } } -assetHelper.registerSceneGraphNodesAndExport(asset, { BennuProjection, BennuTrail }) +asset.onInitialize(function() + openspace.addSceneGraphNode(BennuProjection) + openspace.addSceneGraphNode(BennuTrail) +end) + +asset.onDeinitialize(function() + openspace.removeSceneGraphNode(BennuTrail) + openspace.removeSceneGraphNode(BennuProjection) +end) + +asset.export(BennuProjection) +asset.export(BennuTrail) diff --git a/data/assets/scene/solarsystem/missions/osirisrex/dashboard.asset b/data/assets/scene/solarsystem/missions/osirisrex/dashboard.asset index 44c0b86cb5..723ef7967b 100644 --- a/data/assets/scene/solarsystem/missions/osirisrex/dashboard.asset +++ b/data/assets/scene/solarsystem/missions/osirisrex/dashboard.asset @@ -1,24 +1,34 @@ -local assetHelper = asset.require('util/asset_helper') +local spacing = { + Type = "DashboardItemSpacing", + Identifier = "OsirisRexSpacing", + GuiName = "OSIRIS-REx Spacing", + Spacing = 25 +} -assetHelper.registerDashboardItems(asset, { - { - Type = "DashboardItemSpacing", - Identifier = "OsirisRexSpacing", - GuiName = "OSIRIS-REx Spacing", - Spacing = 25 - }, - { - Type = "DashboardItemDistance", - Identifier = "OsirisRexBennuDistance", - GuiName = "OSIRIS-REx Bennu Distance", - SourceType = "Node", - SourceNodeName = "OsirisRex", - DestinationType = "Node", - DestinationNodeName = "BennuBarycenter" - }, - { - Type = "DashboardItemInstruments", - Identifier = "OsirisRexInstruments", - GuiName = "OSIRIS-REx Instruments", - } -}) +local distance = { + Type = "DashboardItemDistance", + Identifier = "OsirisRexBennuDistance", + GuiName = "OSIRIS-REx Bennu Distance", + SourceType = "Node", + SourceNodeName = "OsirisRex", + DestinationType = "Node", + DestinationNodeName = "BennuBarycenter" +} + +local instruments = { + Type = "DashboardItemInstruments", + Identifier = "OsirisRexInstruments", + GuiName = "OSIRIS-REx Instruments", +} + +asset.onInitialize(function() + openspace.dashboard.addDashboardItem(spacing) + openspace.dashboard.addDashboardItem(distance) + openspace.dashboard.addDashboardItem(instruments) +end) + +asset.onDeinitialize(function() + openspace.dashboard.removeDashboardItem(instruments) + openspace.dashboard.removeDashboardItem(distance) + openspace.dashboard.removeDashboardItem(spacing) +end) diff --git a/data/assets/scene/solarsystem/missions/osirisrex/imageplane.asset b/data/assets/scene/solarsystem/missions/osirisrex/imageplane.asset index bb4f1ffca2..97837c5c87 100644 --- a/data/assets/scene/solarsystem/missions/osirisrex/imageplane.asset +++ b/data/assets/scene/solarsystem/missions/osirisrex/imageplane.asset @@ -1,5 +1,4 @@ -local assetHelper = asset.require('util/asset_helper') -local transforms = asset.require('./transforms') +local transforms = asset.require("./transforms") local textures = asset.syncedResource({ Name = "Bennu Textures", @@ -31,7 +30,7 @@ local ImagePlane = { Spacecraft = "OSIRIS-REX", Instrument = "ORX_OCAMS_POLYCAM", Moving = false, - Texture = textures .. "/defaultProj.png" + Texture = textures .. "defaultProj.png" }, GUI = { Name = "OsirisREx Image Plane", @@ -40,4 +39,12 @@ local ImagePlane = { } -assetHelper.registerSceneGraphNodesAndExport(asset, { ImagePlane }) +asset.onInitialize(function() + openspace.addSceneGraphNode(ImagePlane) +end) + +asset.onDeinitialize(function() + openspace.removeSceneGraphNode(ImagePlane) +end) + +asset.export(ImagePlane) diff --git a/data/assets/scene/solarsystem/missions/osirisrex/kernels.asset b/data/assets/scene/solarsystem/missions/osirisrex/kernels.asset index 85e56d5fa1..b7f113fef8 100644 --- a/data/assets/scene/solarsystem/missions/osirisrex/kernels.asset +++ b/data/assets/scene/solarsystem/missions/osirisrex/kernels.asset @@ -6,86 +6,86 @@ local kernels = asset.syncedResource({ }) local OsirisRexKernels = { - kernels .. "/orx_v14.tf", - kernels .. "/orx_ocams_v07.ti", - kernels .. "/orx_rexis_v01.ti", - kernels .. "/ORX_SCLKSCET.00061.tsc", - kernels .. "/bennu_v17.tpc", - kernels .. "/orx_struct_v04.bsp", - kernels .. "/orx_sa_red_200106_v02.bc", - kernels .. "/orx_sa_red_200107_v02.bc", - kernels .. "/orx_sa_red_200108_v02.bc", - kernels .. "/orx_sa_red_200109_v02.bc", - kernels .. "/orx_sa_red_200110_v02.bc", - kernels .. "/orx_sa_rel_200106_200112_v01.bc", - kernels .. "/orx_sc_rel_160909_160911_v01.bc", - kernels .. "/orx_sc_rel_160912_160918_v01.bc", - kernels .. "/orx_sc_rel_160919_160925_v01.bc", - kernels .. "/orx_sc_rel_160926_161002_v01.bc", - kernels .. "/orx_sc_rel_181029_181104_v02.bc", - kernels .. "/orx_sc_rel_190218_190224_v02.bc", - kernels .. "/orx_sc_rel_200106_200112_v01.bc", - kernels .. "/orx_sc_rel_201019_201025_v01.bc", - kernels .. "/orx_sc_rel_201012_201018_v01.bc", - kernels .. "/orx_sc_red_200106_v02.bc", - kernels .. "/orx_sc_red_200107_v02.bc", - kernels .. "/orx_sc_red_200108_v02.bc", - kernels .. "/orx_sc_red_200109_v02.bc", - kernels .. "/orx_sc_red_201020_v02.bc", - kernels .. "/orx_sc_red_201017_v03.bc", - kernels .. "/orx_sc_red_201018_v02.bc", - kernels .. "/orx_sc_red_201019_v02.bc", - kernels .. "/orx_r_160909_160910_v01.bc", - kernels .. "/orx_r_160910_160913_v01.bc", - kernels .. "/orx_r_160913_160915_v01.bc", - kernels .. "/orx_r_160915_160919_v01.bc", - kernels .. "/orx_r_160918_160922_v01.bc", - kernels .. "/orx_r_160919_160922_v01.bc", - kernels .. "/orx_r_200105_200107_v02.bc", - kernels .. "/orx_r_200106_200108_v02.bc", - kernels .. "/orx_r_200107_200109_v02.bc", - kernels .. "/orx_r_200107_200112_v01.bc", - kernels .. "/orx_r_200108_200110_v02.bc", - kernels .. "/orx_r_200109_200111_v02.bc", - kernels .. "/orx_r_201019_201021_v06.bc", - kernels .. "/orx_r_201018_201021_v02.bc", - kernels .. "/orx_r_201018_201020_v03.bc", - kernels .. "/orx_r_201017_201019_v03.bc", - kernels .. "/orx_p_160910_161005_xc001b_v01.bc", - kernels .. "/orx_p_200106_200113_2002_od205_v01.bc", - kernels .. "/orx_p_200106_200113_2002_od209_v01.bc", - kernels .. "/orx_p_200106_200113_2002_od210_v01.bc", - kernels .. "/orx_p_201019_201026_2043tag_od293_v03.bc", - kernels .. "/orx_p_201012_201019_2042_od291_v04.bc", - kernels .. "/orx_p_210411_210510_xq006_od297_v05.bc", - kernels .. "/orx_p_210509_210513_xr001_adm_final_mod_od311_v01.bc", - kernels .. "/orx_p_210509_210607_xr001_od298_v00.bc", - kernels .. "/orx_p_230824_231008_src_release_od298_v00.bc", - kernels .. "/OREX_20160904_M45_complete.bsp", - kernels .. "/OREX_20160908_M60_complete.bsp", - kernels .. "/orx_struct_polycam_v01.bc", - kernels .. "/de424.bsp", - kernels .. "/bennu_refdrmc_v1.bsp", - kernels .. "/orx_160908_231024_pgaa2_day06m60.bsp", - kernels .. "/orx_160908_231024_pgaa3_day06m60_v1.bsp", - kernels .. "/orx_160909_161228_160919_od005_tcm1_v2.bsp", - kernels .. "/orx_160909_161228_160930_od006_tcm1_v1.bsp", - kernels .. "/orx_160909_170101_160912_od004_v1.bsp", - kernels .. "/orx_160909_170101_161010_od008_v1.bsp", - kernels .. "/spk_orx_160908_231024_pgaa2_day06m60_v3.bsp", - kernels .. "/orx_160909_231024_refod009_v2.bsp", - kernels .. "/orx_171006_231024_171005_refod027_v1.bsp", - kernels .. "/orx_180301_200101_180711_od037-R-AM1-P-M17B_v2.bsp", - kernels .. "/orx_180801_181219_181128_od066-N-M0P-L-VC1_v1.bsp", - kernels .. "/orx_191101_200407_191202_od204-R-R1P1-P-R3R_v1.bsp", - kernels .. "/orx_201020_210524_210103_od297-N-PTO1-F_v1.bsp", - kernels .. "/orx_201020_210601_201109_od295-R_v1.bsp", - kernels .. "/orx_201020_201110_201021_od293-N_v1.bsp", - kernels .. "/orx_201005_201201_200615_od258-R-T1P1-P-T1R1_v1.bsp", - kernels .. "/orx_201005_201201_200615_od258-C-T1P1-P-T1R5_v2.bsp", - kernels .. "/orx_210115_210701_210426_od310-N-ADM-P_v1.bsp", - kernels .. "/orx_210408_210701_210503_od311-N-ADM-F_v1.bsp", - kernels .. "/orx_210509_231025_210119_od298-R-ADM1-P-DB1_v1.bsp" + kernels .. "orx_v14.tf", + kernels .. "orx_ocams_v07.ti", + kernels .. "orx_rexis_v01.ti", + kernels .. "ORX_SCLKSCET.00061.tsc", + kernels .. "bennu_v17.tpc", + kernels .. "orx_struct_v04.bsp", + kernels .. "orx_sa_red_200106_v02.bc", + kernels .. "orx_sa_red_200107_v02.bc", + kernels .. "orx_sa_red_200108_v02.bc", + kernels .. "orx_sa_red_200109_v02.bc", + kernels .. "orx_sa_red_200110_v02.bc", + kernels .. "orx_sa_rel_200106_200112_v01.bc", + kernels .. "orx_sc_rel_160909_160911_v01.bc", + kernels .. "orx_sc_rel_160912_160918_v01.bc", + kernels .. "orx_sc_rel_160919_160925_v01.bc", + kernels .. "orx_sc_rel_160926_161002_v01.bc", + kernels .. "orx_sc_rel_181029_181104_v02.bc", + kernels .. "orx_sc_rel_190218_190224_v02.bc", + kernels .. "orx_sc_rel_200106_200112_v01.bc", + kernels .. "orx_sc_rel_201019_201025_v01.bc", + kernels .. "orx_sc_rel_201012_201018_v01.bc", + kernels .. "orx_sc_red_200106_v02.bc", + kernels .. "orx_sc_red_200107_v02.bc", + kernels .. "orx_sc_red_200108_v02.bc", + kernels .. "orx_sc_red_200109_v02.bc", + kernels .. "orx_sc_red_201020_v02.bc", + kernels .. "orx_sc_red_201017_v03.bc", + kernels .. "orx_sc_red_201018_v02.bc", + kernels .. "orx_sc_red_201019_v02.bc", + kernels .. "orx_r_160909_160910_v01.bc", + kernels .. "orx_r_160910_160913_v01.bc", + kernels .. "orx_r_160913_160915_v01.bc", + kernels .. "orx_r_160915_160919_v01.bc", + kernels .. "orx_r_160918_160922_v01.bc", + kernels .. "orx_r_160919_160922_v01.bc", + kernels .. "orx_r_200105_200107_v02.bc", + kernels .. "orx_r_200106_200108_v02.bc", + kernels .. "orx_r_200107_200109_v02.bc", + kernels .. "orx_r_200107_200112_v01.bc", + kernels .. "orx_r_200108_200110_v02.bc", + kernels .. "orx_r_200109_200111_v02.bc", + kernels .. "orx_r_201019_201021_v06.bc", + kernels .. "orx_r_201018_201021_v02.bc", + kernels .. "orx_r_201018_201020_v03.bc", + kernels .. "orx_r_201017_201019_v03.bc", + kernels .. "orx_p_160910_161005_xc001b_v01.bc", + kernels .. "orx_p_200106_200113_2002_od205_v01.bc", + kernels .. "orx_p_200106_200113_2002_od209_v01.bc", + kernels .. "orx_p_200106_200113_2002_od210_v01.bc", + kernels .. "orx_p_201019_201026_2043tag_od293_v03.bc", + kernels .. "orx_p_201012_201019_2042_od291_v04.bc", + kernels .. "orx_p_210411_210510_xq006_od297_v05.bc", + kernels .. "orx_p_210509_210513_xr001_adm_final_mod_od311_v01.bc", + kernels .. "orx_p_210509_210607_xr001_od298_v00.bc", + kernels .. "orx_p_230824_231008_src_release_od298_v00.bc", + kernels .. "OREX_20160904_M45_complete.bsp", + kernels .. "OREX_20160908_M60_complete.bsp", + kernels .. "orx_struct_polycam_v01.bc", + kernels .. "de424.bsp", + kernels .. "bennu_refdrmc_v1.bsp", + kernels .. "orx_160908_231024_pgaa2_day06m60.bsp", + kernels .. "orx_160908_231024_pgaa3_day06m60_v1.bsp", + kernels .. "orx_160909_161228_160919_od005_tcm1_v2.bsp", + kernels .. "orx_160909_161228_160930_od006_tcm1_v1.bsp", + kernels .. "orx_160909_170101_160912_od004_v1.bsp", + kernels .. "orx_160909_170101_161010_od008_v1.bsp", + kernels .. "spk_orx_160908_231024_pgaa2_day06m60_v3.bsp", + kernels .. "orx_160909_231024_refod009_v2.bsp", + kernels .. "orx_171006_231024_171005_refod027_v1.bsp", + kernels .. "orx_180301_200101_180711_od037-R-AM1-P-M17B_v2.bsp", + kernels .. "orx_180801_181219_181128_od066-N-M0P-L-VC1_v1.bsp", + kernels .. "orx_191101_200407_191202_od204-R-R1P1-P-R3R_v1.bsp", + kernels .. "orx_201020_210524_210103_od297-N-PTO1-F_v1.bsp", + kernels .. "orx_201020_210601_201109_od295-R_v1.bsp", + kernels .. "orx_201020_201110_201021_od293-N_v1.bsp", + kernels .. "orx_201005_201201_200615_od258-R-T1P1-P-T1R1_v1.bsp", + kernels .. "orx_201005_201201_200615_od258-C-T1P1-P-T1R5_v2.bsp", + kernels .. "orx_210115_210701_210426_od310-N-ADM-P_v1.bsp", + kernels .. "orx_210408_210701_210503_od311-N-ADM-F_v1.bsp", + kernels .. "orx_210509_231025_210119_od298-R-ADM1-P-DB1_v1.bsp" } -asset.export('kernels', OsirisRexKernels) +asset.export("kernels", OsirisRexKernels) diff --git a/data/assets/scene/solarsystem/missions/osirisrex/model.asset b/data/assets/scene/solarsystem/missions/osirisrex/model.asset index 33a2a694c6..e8798f5c07 100644 --- a/data/assets/scene/solarsystem/missions/osirisrex/model.asset +++ b/data/assets/scene/solarsystem/missions/osirisrex/model.asset @@ -1,9 +1,8 @@ -local assetHelper = asset.require('util/asset_helper') -local transforms = asset.require('./transforms') -local sunTransforms = asset.require('scene/solarsystem/sun/transforms') -local earthTransforms = asset.require('scene/solarsystem/planets/earth/transforms') +local transforms = asset.require("./transforms") +local sunTransforms = asset.require("scene/solarsystem/sun/transforms") +local earthTransforms = asset.require("scene/solarsystem/planets/earth/transforms") -local OsirisRexKernels = asset.require('./kernels').kernels +local OsirisRexKernels = asset.require("./kernels").kernels local models = asset.syncedResource({ Name = "Osiris Rex Models", @@ -48,7 +47,7 @@ local OsirisRex = { Renderable = { Type = "RenderableModel", Body = "OSIRIS-REX", - GeometryFile = models .. "/orx_base_resized_12_sep_2016.obj", + GeometryFile = models .. "orx_base_resized_12_sep_2016.obj", LightSources = LightSources }, GUI = { @@ -74,7 +73,7 @@ local PolyCam = { Renderable = { Type = "RenderableModel", Body = "OSIRIS-REX", - GeometryFile = models .. "/orx_polycam_resized_12_sep_2016.obj", + GeometryFile = models .. "orx_polycam_resized_12_sep_2016.obj", LightSources = LightSources }, GUI = { @@ -89,7 +88,7 @@ local Rexis = { Renderable = { Type = "RenderableModel", Body = "OSIRIS-REX", - GeometryFile = models .. "/orx_rexis_resized_12_sep_2016.obj", + GeometryFile = models .. "orx_rexis_resized_12_sep_2016.obj", LightSources = LightSources }, Transform = { @@ -156,10 +155,26 @@ local PolyCamFov = { -- } -- } -assetHelper.registerSceneGraphNodesAndExport(asset, { +local nodes = { OsirisRex, PolyCam, Rexis, PolyCamFov, -- RexisFov -}) +} + +asset.onInitialize(function() + for i, node in ipairs(nodes) do + openspace.addSceneGraphNode(node) + end +end) + +asset.onDeinitialize(function() + for i = #nodes, 1, -1 do + openspace.removeSceneGraphNode(nodes[i]) + end +end) + +for i, node in ipairs(nodes) do + asset.export(node) +end diff --git a/data/assets/scene/solarsystem/missions/osirisrex/models.asset b/data/assets/scene/solarsystem/missions/osirisrex/models.asset deleted file mode 100644 index cdd95678ff..0000000000 --- a/data/assets/scene/solarsystem/missions/osirisrex/models.asset +++ /dev/null @@ -1,8 +0,0 @@ -local models = asset.syncedResource({ - Name = "Bennu Models", - Type = "HttpSynchronization", - Identifier = "bennu_models", - Version = 2 -}) - -asset.export('models', models) diff --git a/data/assets/scene/solarsystem/missions/osirisrex/osirisrex.asset b/data/assets/scene/solarsystem/missions/osirisrex/osirisrex.asset index 0ba307b51d..389b3d1103 100644 --- a/data/assets/scene/solarsystem/missions/osirisrex/osirisrex.asset +++ b/data/assets/scene/solarsystem/missions/osirisrex/osirisrex.asset @@ -1,12 +1,12 @@ -asset.require('./bennu') -asset.require('./bennu_projection') -asset.require('./model') -asset.require('./trail') -asset.require('scene/solarsystem/sun/marker') +asset.require("./bennu") +asset.require("./bennu_projection") +asset.require("./model") +asset.require("./trail") +asset.require("scene/solarsystem/sun/marker") -asset.require('./script_schedule') +asset.require("./script_schedule") -local mission = asset.localResource('osirisrex.mission') +local mission = asset.localResource("osirisrex.mission") local missionName asset.onInitialize(function() diff --git a/data/assets/scene/solarsystem/missions/osirisrex/script_schedule.asset b/data/assets/scene/solarsystem/missions/osirisrex/script_schedule.asset index b187e8968e..94736fd02a 100644 --- a/data/assets/scene/solarsystem/missions/osirisrex/script_schedule.asset +++ b/data/assets/scene/solarsystem/missions/osirisrex/script_schedule.asset @@ -1,18 +1,18 @@ -local scriptSchedulerHelper = asset.require('util/script_scheduler_helper') +local scriptSchedulerHelper = asset.require("util/script_scheduler_helper") asset.onInitialize(function () - scriptSchedulerHelper.scheduleRenderableEnabled("2016 SEP 08 23:05:00", "Scene.OsirisRexTrailSolarSystem", false) - scriptSchedulerHelper.scheduleRenderableEnabled("2016 SEP 08 23:05:00", "Scene.OsirisRexTrailBennu", false) - scriptSchedulerHelper.scheduleRenderableEnabledReversable("2016 SEP 08 23:05:01", "Scene.OsirisRexTrailEarth", true) - scriptSchedulerHelper.scheduleRenderableEnabledReversable("2016 SEP 09 00:00:00", "Scene.OsirisRexTrailSolarSystem", true) - scriptSchedulerHelper.scheduleRenderableEnabledReversable("2016 SEP 09 02:00:00", "Scene.OsirisRexTrailEarth", false) - scriptSchedulerHelper.scheduleRenderableEnabledReversable("2018 OCT 11 00:00:00", "Scene.OsirisRexTrailBennu", true) - scriptSchedulerHelper.scheduleRenderableEnabledReversable("2018 OCT 15 00:00:00", "Scene.OsirisRexTrailSolarSystem", false) - scriptSchedulerHelper.scheduleRenderableEnabledReversable("2019 AUG 01 00:00:00", "Scene.OsirisRexTrailSolarSystem", true) - scriptSchedulerHelper.scheduleRenderableEnabledReversable("2019 AUG 01 00:00:00", "Scene.OsirisRexTrailBennu", false) + scriptSchedulerHelper.scheduleRenderableEnabled("2016 SEP 08 23:05:00", "Scene.OsirisRexTrailSolarSystem", false) + scriptSchedulerHelper.scheduleRenderableEnabled("2016 SEP 08 23:05:00", "Scene.OsirisRexTrailBennu", false) + scriptSchedulerHelper.scheduleRenderableEnabledReversable("2016 SEP 08 23:05:01", "Scene.OsirisRexTrailEarth", true) + scriptSchedulerHelper.scheduleRenderableEnabledReversable("2016 SEP 09 00:00:00", "Scene.OsirisRexTrailSolarSystem", true) + scriptSchedulerHelper.scheduleRenderableEnabledReversable("2016 SEP 09 02:00:00", "Scene.OsirisRexTrailEarth", false) + scriptSchedulerHelper.scheduleRenderableEnabledReversable("2018 OCT 11 00:00:00", "Scene.OsirisRexTrailBennu", true) + scriptSchedulerHelper.scheduleRenderableEnabledReversable("2018 OCT 15 00:00:00", "Scene.OsirisRexTrailSolarSystem", false) + scriptSchedulerHelper.scheduleRenderableEnabledReversable("2019 AUG 01 00:00:00", "Scene.OsirisRexTrailSolarSystem", true) + scriptSchedulerHelper.scheduleRenderableEnabledReversable("2019 AUG 01 00:00:00", "Scene.OsirisRexTrailBennu", false) end) -asset.onDeinitialize(function () +asset.onDeinitialize(function() openspace.scriptScheduler.clear() end) diff --git a/data/assets/scene/solarsystem/missions/osirisrex/trail.asset b/data/assets/scene/solarsystem/missions/osirisrex/trail.asset index 01b33183bc..fa15af8c29 100644 --- a/data/assets/scene/solarsystem/missions/osirisrex/trail.asset +++ b/data/assets/scene/solarsystem/missions/osirisrex/trail.asset @@ -1,7 +1,6 @@ -local assetHelper = asset.require('util/asset_helper') -local transforms = asset.require('./transforms') -local sunTransforms = asset.require('scene/solarsystem/sun/transforms') -local earthTransforms = asset.require('scene/solarsystem/planets/earth/transforms') +local transforms = asset.require("./transforms") +local sunTransforms = asset.require("scene/solarsystem/sun/transforms") +local earthTransforms = asset.require("scene/solarsystem/planets/earth/transforms") @@ -71,8 +70,18 @@ local OsirisRexTrailBennu = { } } -assetHelper.registerSceneGraphNodesAndExport(asset, { - OsirisRexTrailEarth, - OsirisRexTrailSolarSystem, - OsirisRexTrailBennu -}) +asset.onInitialize(function() + openspace.addSceneGraphNode(OsirisRexTrailEarth) + openspace.addSceneGraphNode(OsirisRexTrailSolarSystem) + openspace.addSceneGraphNode(OsirisRexTrailBennu) +end) + +asset.onDeinitialize(function() + openspace.removeSceneGraphNode(OsirisRexTrailBennu) + openspace.removeSceneGraphNode(OsirisRexTrailSolarSystem) + openspace.removeSceneGraphNode(OsirisRexTrailEarth) +end) + +asset.export(OsirisRexTrailEarth) +asset.export(OsirisRexTrailSolarSystem) +asset.export(OsirisRexTrailBennu) diff --git a/data/assets/scene/solarsystem/missions/osirisrex/transforms.asset b/data/assets/scene/solarsystem/missions/osirisrex/transforms.asset index ca481d5b1b..9875a0058e 100644 --- a/data/assets/scene/solarsystem/missions/osirisrex/transforms.asset +++ b/data/assets/scene/solarsystem/missions/osirisrex/transforms.asset @@ -1,5 +1,4 @@ -local assetHelper = asset.require('util/asset_helper') -local transforms = asset.require('scene/solarsystem/sun/transforms') +local transforms = asset.require("scene/solarsystem/sun/transforms") @@ -21,4 +20,12 @@ local BennuBarycenter = { } } -assetHelper.registerSceneGraphNodesAndExport(asset, { BennuBarycenter }) +asset.onInitialize(function() + openspace.addSceneGraphNode(BennuBarycenter) +end) + +asset.onDeinitialize(function() + openspace.removeSceneGraphNode(BennuBarycenter) +end) + +asset.export(BennuBarycenter) diff --git a/data/assets/scene/solarsystem/missions/perseverance/model.asset b/data/assets/scene/solarsystem/missions/perseverance/model.asset index cbe8099d9f..797219ad74 100644 --- a/data/assets/scene/solarsystem/missions/perseverance/model.asset +++ b/data/assets/scene/solarsystem/missions/perseverance/model.asset @@ -1,9 +1,7 @@ ---perseverance/model.asset -local assetHelper = asset.require('util/asset_helper') -local trail = asset.require('./trail') -local marsTransforms = asset.require('scene/solarsystem/planets/mars/transforms') -local sunTransforms = asset.require('scene/solarsystem/sun/transforms') --- asset.require('./fov') +local trail = asset.require("./trail") +local marsTransforms = asset.require("scene/solarsystem/planets/mars/transforms") +local sunTransforms = asset.require("scene/solarsystem/sun/transforms") +-- asset.require("./fov") local LightSources = { { @@ -54,7 +52,7 @@ local Body = { Renderable = { Type = "RenderableModel", Body = "MARS SCIENCE LABORATORY", - GeometryFile = models .. "/Perseverance.obj", + GeometryFile = models .. "Perseverance.obj", LightSources = LightSources, PerformShading = false, RotationVector = {65.940000,201.389999,263.980011} @@ -67,8 +65,18 @@ local Body = { } -assetHelper.registerSceneGraphNodesAndExport(asset, { - Perseverance, - PerseveranceModel, - Body -}) +asset.onInitialize(function() + openspace.addSceneGraphNode(Perseverance) + openspace.addSceneGraphNode(PerseveranceModel) + openspace.addSceneGraphNode(Body) +end) + +asset.onDeinitialize(function() + openspace.removeSceneGraphNode(Body) + openspace.removeSceneGraphNode(PerseveranceModel) + openspace.removeSceneGraphNode(Perseverance) +end) + +asset.export(Perseverance) +asset.export(PerseveranceModel) +asset.export(Body) diff --git a/data/assets/scene/solarsystem/missions/perseverance/perseverance.asset b/data/assets/scene/solarsystem/missions/perseverance/perseverance.asset index f1e3b55cd7..0e9df57fa6 100644 --- a/data/assets/scene/solarsystem/missions/perseverance/perseverance.asset +++ b/data/assets/scene/solarsystem/missions/perseverance/perseverance.asset @@ -1,3 +1,2 @@ ---perseverance.asset -asset.require('./model') -asset.require('./trail') +asset.require("./model") +asset.require("./trail") diff --git a/data/assets/scene/solarsystem/missions/perseverance/shortcuts.asset b/data/assets/scene/solarsystem/missions/perseverance/shortcuts.asset index b2c162fd09..8159a8da8e 100644 --- a/data/assets/scene/solarsystem/missions/perseverance/shortcuts.asset +++ b/data/assets/scene/solarsystem/missions/perseverance/shortcuts.asset @@ -1,44 +1,53 @@ ---perseverance/shortcuts.asset - local PerseveranceLaunchTime = "2020 JUL 17 13:56:42" local PerseveranceLandingTime = "2021 FEB 18 20:32:16" -local PerseveranceNavigationState = "{" .. - "Anchor = 'Perseverance'," .. - "Pitch = 0.567457E-4," .. - "Position = { 1.240506E1,-1.369270E1,-2.423553E0 }," .. - "ReferenceFrame = 'Root',".. - "Up = { 0.441211E0,0.247019E0,0.862737E0 }," .. - "Yaw = -0.446853E-4}" +local PerseveranceNavigationState = [[ +{ + Anchor = "Perseverance", + Pitch = 0.567457E-4, + Position = { 1.240506E1,-1.369270E1,-2.423553E0 }, + ReferenceFrame = "Root", + Up = { 0.441211E0,0.247019E0,0.862737E0 }, + Yaw = -0.446853E-4 +} +]] local Shortcuts = { { - Command = "openspace.setPropertyValueSingle('Scene.Mars.Renderable.Layers.HeightLayers.Mola_Utah.Settings.Offset', -1677.088867);" .. - "openspace.setPropertyValueSingle('Scene.Mars.Renderable.Layers.HeightLayers.OnMarsHiRISELS.Settings.Offset', -1677.088867);", + Command = [[ + openspace.setPropertyValueSingle("Scene.Mars.Renderable.Layers.HeightLayers.Mola_Utah.Settings.Offset", -1677.088867); + openspace.setPropertyValueSingle("Scene.Mars.Renderable.Layers.HeightLayers.OnMarsHiRISELS.Settings.Offset", -1677.088867); + ]], Documentation = "Enable height layer offset for Perseverance landing trail", Name = "Perseverance Height Offset", GuiPath = "/Missions/Insight", Local = false }, { - Command = "openspace.setPropertyValueSingle('Scene.Mars.Renderable.Layers.HeightLayers.Mola_Utah.Settings.Offset', 0);" .. - "openspace.setPropertyValueSingle('Scene.Mars.Renderable.Layers.HeightLayers.OnMarsHiRISELS.Settings.Offset', 0);", + Command = [[ + openspace.setPropertyValueSingle("Scene.Mars.Renderable.Layers.HeightLayers.Mola_Utah.Settings.Offset", 0); + openspace.setPropertyValueSingle("Scene.Mars.Renderable.Layers.HeightLayers.OnMarsHiRISELS.Settings.Offset", 0); + ]], Documentation = "Disable Perseverance landing height layer offset", Name = "Default Height Offset", GuiPath = "/Missions/Insight", Local = false }, { - Command = "openspace.setPropertyValueSingle('Scene.Mars.Renderable.Layers.HeightLayers.OnMarsHiRISELS.Enabled', true);" .. - "openspace.setPropertyValueSingle('Scene.Mars.Renderable.Layers.ColorLayers.OnMarsHiRISELS.Enabled', true);", + Command = [[ + openspace.setPropertyValueSingle("Scene.Mars.Renderable.Layers.HeightLayers.OnMarsHiRISELS.Enabled", true); + openspace.setPropertyValueSingle("Scene.Mars.Renderable.Layers.ColorLayers.OnMarsHiRISELS.Enabled", true); + ]], Documentation = "Enables HiRISE layer for Perseverance", Name = "Enable HiRISE", GuiPath = "/Missions/Insight", Local = false }, { - Command = "openspace.setPropertyValueSingle('Scene.Mars.Renderable.Layers.HeightLayers.OnMarsHiRISELS.Enabled', false);" .. - "openspace.setPropertyValueSingle('Scene.Mars.Renderable.Layers.ColorLayers.OnMarsHiRISELS.Enabled', false);", + Command = [[ + openspace.setPropertyValueSingle("Scene.Mars.Renderable.Layers.HeightLayers.OnMarsHiRISELS.Enabled", false); + openspace.setPropertyValueSingle("Scene.Mars.Renderable.Layers.ColorLayers.OnMarsHiRISELS.Enabled", false); + ]], Documentation = "Disables HiRISE layer used for Perseverance", Name = "Disable HiRISE", GuiPath = "/Missions/Insight", @@ -52,14 +61,14 @@ local Shortcuts = { Local = false }, { - Command = "openspace.time.setPause(true);openspace.time.setTime('" .. PerseveranceLaunchTime .. "');", + Command = [[openspace.time.setPause(true);openspace.time.setTime("]] .. PerseveranceLaunchTime .. [[");]], Documentation = "Change the time for Perseverance launch", Name = "Perseverance launch time", GuiPath = "/Missions/Perseverance", Local = false }, { - Command = "openspace.time.setPause(true);openspace.time.setTime('" .. PerseveranceLandingTime .. "');", + Command = [[openspace.time.setPause(true);openspace.time.setTime("]] .. PerseveranceLandingTime .. [[");]], Documentation = "Change the time for when Perseverance has landed", Name = "Perseverance landed time", GuiPath = "/Missions/Perseverance", diff --git a/data/assets/scene/solarsystem/missions/perseverance/trail.asset b/data/assets/scene/solarsystem/missions/perseverance/trail.asset index cd7fffdb30..78162687ab 100644 --- a/data/assets/scene/solarsystem/missions/perseverance/trail.asset +++ b/data/assets/scene/solarsystem/missions/perseverance/trail.asset @@ -1,7 +1,5 @@ ---trail.asset -local assetHelper = asset.require('util/asset_helper') -local sunTransforms = asset.require('scene/solarsystem/sun/transforms') -local marsTransforms = asset.require('scene/solarsystem/planets/mars/transforms') +local sunTransforms = asset.require("scene/solarsystem/sun/transforms") +local marsTransforms = asset.require("scene/solarsystem/planets/mars/transforms") local kernels = asset.syncedResource({ Name = "Mars 2020 Kernels", @@ -13,15 +11,15 @@ local kernels = asset.syncedResource({ local perseverance_id = "-168" local m2020_kernels = { - kernels .. "/m2020.tf", + kernels .. "m2020.tf", - kernels .. "/m2020.tls", - kernels .. "/naif0012.tls", + kernels .. "m2020.tls", + kernels .. "naif0012.tls", - kernels .. "/m2020.tsc", + kernels .. "m2020.tsc", - kernels .. "/m2020_FMAresponse_JEZ_20200717_P000.cruise.bsp", - kernels .. "/m2020_FMAresponse_JEZ_20200717_P000.edl.bsp" + kernels .. "m2020_FMAresponse_JEZ_20200717_P000.cruise.bsp", + kernels .. "m2020_FMAresponse_JEZ_20200717_P000.edl.bsp" } local startTime = "2020 JUL 17 13:56:42" @@ -92,8 +90,18 @@ local PerseveranceTrailMars = { } } -assetHelper.registerSceneGraphNodesAndExport(asset, { - PerseveranceNode, - PerseveranceTrailSun, - PerseveranceTrailMars -}) +asset.onInitialize(function() + openspace.addSceneGraphNode(PerseveranceNode) + openspace.addSceneGraphNode(PerseveranceTrailSun) + openspace.addSceneGraphNode(PerseveranceTrailMars) +end) + +asset.onDeinitialize(function() + openspace.removeSceneGraphNode(PerseveranceTrailMars) + openspace.removeSceneGraphNode(PerseveranceTrailSun) + openspace.removeSceneGraphNode(PerseveranceNode) +end) + +asset.export(PerseveranceNode) +asset.export(PerseveranceTrailSun) +asset.export(PerseveranceTrailMars) diff --git a/data/assets/scene/solarsystem/missions/pioneer/pioneer10.asset b/data/assets/scene/solarsystem/missions/pioneer/pioneer10.asset index bf147bbf71..16ddc5bbba 100644 --- a/data/assets/scene/solarsystem/missions/pioneer/pioneer10.asset +++ b/data/assets/scene/solarsystem/missions/pioneer/pioneer10.asset @@ -1,5 +1,4 @@ -local assetHelper = asset.require('util/asset_helper') -local sunTransforms = asset.require('scene/solarsystem/sun/transforms') +local sunTransforms = asset.require("scene/solarsystem/sun/transforms") local model = asset.require("scene/solarsystem/missions/pioneer/pioneermodel") @@ -10,7 +9,7 @@ local kernelsFolder = asset.syncedResource({ Version = 1 }) -local kernelsList = {kernelsFolder .. '/p10-a.bsp'} +local kernelsList = { kernelsFolder .. "p10-a.bsp" } local Pioneer10NAIF = "-23" @@ -59,7 +58,19 @@ local Pioneer10Trail = { } } -assetHelper.registerSceneGraphNodesAndExport(asset, { Pioneer10, Pioneer10Trail }) +asset.onInitialize(function() + openspace.addSceneGraphNode(Pioneer10) + openspace.addSceneGraphNode(Pioneer10Trail) +end) + +asset.onDeinitialize(function() + openspace.removeSceneGraphNode(Pioneer10Trail) + openspace.removeSceneGraphNode(Pioneer10) +end) + +asset.export(Pioneer10) +asset.export(Pioneer10Trail) + asset.meta = { diff --git a/data/assets/scene/solarsystem/missions/pioneer/pioneer11.asset b/data/assets/scene/solarsystem/missions/pioneer/pioneer11.asset index dad188e997..66a42455f0 100644 --- a/data/assets/scene/solarsystem/missions/pioneer/pioneer11.asset +++ b/data/assets/scene/solarsystem/missions/pioneer/pioneer11.asset @@ -1,5 +1,4 @@ -local assetHelper = asset.require('util/asset_helper') -local sunTransforms = asset.require('scene/solarsystem/sun/transforms') +local sunTransforms = asset.require("scene/solarsystem/sun/transforms") local model = asset.require("scene/solarsystem/missions/pioneer/pioneermodel") @@ -11,8 +10,8 @@ local kernelsFolder = asset.syncedResource({ }) local kernelsList = { - kernelsFolder .. '/p11-a.bsp', - kernelsFolder .. '/p11_sat336.bsp' + kernelsFolder .. "p11-a.bsp", + kernelsFolder .. "p11_sat336.bsp" } local Pioneer11NAIF = "-24" @@ -62,7 +61,19 @@ local Pioneer11Trail = { } } -assetHelper.registerSceneGraphNodesAndExport(asset, { Pioneer11, Pioneer11Trail, }) +asset.onInitialize(function() + openspace.addSceneGraphNode(Pioneer11) + openspace.addSceneGraphNode(Pioneer11Trail) +end) + +asset.onDeinitialize(function() + openspace.removeSceneGraphNode(Pioneer11Trail) + openspace.removeSceneGraphNode(Pioneer11) +end) + +asset.export(Pioneer11) +asset.export(Pioneer11Trail) + asset.meta = { diff --git a/data/assets/scene/solarsystem/missions/pioneer/pioneermodel.asset b/data/assets/scene/solarsystem/missions/pioneer/pioneermodel.asset index f414337170..1efdc30dfa 100644 --- a/data/assets/scene/solarsystem/missions/pioneer/pioneermodel.asset +++ b/data/assets/scene/solarsystem/missions/pioneer/pioneermodel.asset @@ -1,5 +1,4 @@ -local assetHelper = asset.require('util/asset_helper') -local sunTransforms = asset.require('scene/solarsystem/sun/transforms') +local sunTransforms = asset.require("scene/solarsystem/sun/transforms") local modelFolder = asset.syncedResource({ Name = "Pioneer 10/11 Models", @@ -10,10 +9,20 @@ local modelFolder = asset.syncedResource({ local ModelRenderable = { Type = "RenderableModel", - GeometryFile = modelFolder .. "/pioneer.fbx", - LightSources = assetHelper.getDefaultLightSources( - sunTransforms.SolarSystemBarycenter.Identifier - ) + GeometryFile = modelFolder .. "pioneer.fbx", + LightSources = { + { + Type = "SceneGraphLightSource", + Identifier = "Sun", + Node = sunTransforms.SolarSystemBarycenter.Identifier, + Intensity = 1.0 + }, + { + Identifier = "Camera", + Type = "CameraLightSource", + Intensity = 0.5 + } + } } asset.export("PioneerModel", ModelRenderable) diff --git a/data/assets/scene/solarsystem/missions/rosetta/67p.asset b/data/assets/scene/solarsystem/missions/rosetta/67p.asset index 76d84cb4fa..1d412a61cd 100644 --- a/data/assets/scene/solarsystem/missions/rosetta/67p.asset +++ b/data/assets/scene/solarsystem/missions/rosetta/67p.asset @@ -1,5 +1,4 @@ -local assetHelper = asset.require('util/asset_helper') -local transforms = asset.require('scene/solarsystem/sun/transforms') +local transforms = asset.require("scene/solarsystem/sun/transforms") @@ -24,7 +23,7 @@ local images = asset.syncedResource({ Version = 2 }) -local imagesDestination = images .. "/images" +local imagesDestination = images .. "images" local Barycenter = { Identifier = "67PBarycenter", @@ -54,7 +53,7 @@ local Comet67P = { }, Renderable = { Type = "RenderableModelProjection", - GeometryFile = models .. "/67P_rotated_5_130.obj", + GeometryFile = models .. "67P_rotated_5_130.obj", Projection = { Sequence = { imagesDestination }, SequenceType = "image-sequence", @@ -134,17 +133,26 @@ local Trail67P = { asset.onInitialize(function() if not openspace.directoryExists(imagesDestination) then openspace.printInfo("Extracting Rosetta images") - openspace.unzipFile(images .. "/images_v1_v2.zip", imagesDestination, true) + openspace.unzipFile(images .. "images_v1_v2.zip", imagesDestination, true) end end) -assetHelper.registerSceneGraphNodesAndExport(asset, { - Barycenter, - Comet67P, - Trail67P -}) - -asset.export("Barycenter", Barycenter) -asset.export("Comet67P", Comet67P) \ No newline at end of file +asset.onInitialize(function() + openspace.addSceneGraphNode(Barycenter) + openspace.addSceneGraphNode(Comet67P) + openspace.addSceneGraphNode(Trail67P) +end) + +asset.onDeinitialize(function() + openspace.removeSceneGraphNode(Trail67P) + openspace.removeSceneGraphNode(Comet67P) + openspace.removeSceneGraphNode(Barycenter) +end) + +asset.export("Barycenter", Barycenter) -- @TODO: This double export should disappear +asset.export(Barycenter) +asset.export("Comet67P", Comet67P) -- @TODO: This double export should disappear +asset.export(Comet67P) +asset.export(Trail67P) diff --git a/data/assets/scene/solarsystem/missions/rosetta/dashboard.asset b/data/assets/scene/solarsystem/missions/rosetta/dashboard.asset index 93b85fcef2..4bb458e8f0 100644 --- a/data/assets/scene/solarsystem/missions/rosetta/dashboard.asset +++ b/data/assets/scene/solarsystem/missions/rosetta/dashboard.asset @@ -1,24 +1,34 @@ -local assetHelper = asset.require('util/asset_helper') +local spacing = { + Type = "DashboardItemSpacing", + Identifier = "RosettaSpacing", + GuiName = "Rosetta Spacing", + Spacing = 25 +} -assetHelper.registerDashboardItems(asset, { - { - Type = "DashboardItemSpacing", - Identifier = "RosettaSpacing", - GuiName = "Rosetta Spacing", - Spacing = 25 - }, - { - Type = "DashboardItemDistance", - Identifier = "Rosetta67PDistance", - GuiName = "Rosetta 67P Distance", - SourceType = "Node", - SourceNodeName = "Rosetta", - DestinationType = "Node", - DestinationNodeName = "67P" - }, - { - Type = "DashboardItemInstruments", - Identifier = "RosettaInstruments", - GuiName = "Rosetta Instruments", - } -}) +local distance = { + Type = "DashboardItemDistance", + Identifier = "Rosetta67PDistance", + GuiName = "Rosetta 67P Distance", + SourceType = "Node", + SourceNodeName = "Rosetta", + DestinationType = "Node", + DestinationNodeName = "67P" +} + +local instruments = { + Type = "DashboardItemInstruments", + Identifier = "RosettaInstruments", + GuiName = "Rosetta Instruments", +} + +asset.onInitialize(function() + openspace.dashboard.addDashboardItem(spacing) + openspace.dashboard.addDashboardItem(distance) + openspace.dashboard.addDashboardItem(instruments) +end) + +asset.onDeinitialize(function() + openspace.dashboard.removeDashboardItem(instruments) + openspace.dashboard.removeDashboardItem(distance) + openspace.dashboard.removeDashboardItem(spacing) +end) diff --git a/data/assets/scene/solarsystem/missions/rosetta/rosetta.asset b/data/assets/scene/solarsystem/missions/rosetta/rosetta.asset index b33c412cde..3b195a7201 100644 --- a/data/assets/scene/solarsystem/missions/rosetta/rosetta.asset +++ b/data/assets/scene/solarsystem/missions/rosetta/rosetta.asset @@ -1,6 +1,5 @@ -local assetHelper = asset.require('util/asset_helper') -local sunTransforms = asset.require('scene/solarsystem/sun/transforms') -local transforms = asset.require('./67p') +local sunTransforms = asset.require("scene/solarsystem/sun/transforms") +local transforms = asset.require("./67p") local models = asset.syncedResource({ @@ -18,53 +17,52 @@ local kernels = asset.syncedResource({ }) local RosettaKernels = { - kernels .. "/ROS_160718_STEP.TSC", - kernels .. "/ros_triv.tsc", + kernels .. "ROS_160718_STEP.TSC", + kernels .. "ros_triv.tsc", - kernels .. "/CORB_DV_243_01___T19_00325.BSP", - kernels .. "/CORB_DV_223_01___T19_00302.BSP", - kernels .. "/CORB_DV_145_01___T19_00216.BSP", + kernels .. "CORB_DV_243_01___T19_00325.BSP", + kernels .. "CORB_DV_223_01___T19_00302.BSP", + kernels .. "CORB_DV_145_01___T19_00216.BSP", - kernels .. "/LORB_DV_236_01___T19_00318.BSP", - kernels .. "/LORB_DV_223_01___T19_00302.BSP", - kernels .. "/LORB_DV_145_01___T19_00216.BSP", + kernels .. "LORB_DV_236_01___T19_00318.BSP", + kernels .. "LORB_DV_223_01___T19_00302.BSP", + kernels .. "LORB_DV_145_01___T19_00216.BSP", - kernels .. "/RORB_DV_243_01___T19_00325.BSP", - kernels .. "/RORB_DV_223_01___T19_00302.BSP", - kernels .. "/RORB_DV_145_01___T19_00216.BSP", + kernels .. "RORB_DV_243_01___T19_00325.BSP", + kernels .. "RORB_DV_223_01___T19_00302.BSP", + kernels .. "RORB_DV_145_01___T19_00216.BSP", - kernels .. "/ATNR_P040302093352_00127.BC", + kernels .. "ATNR_P040302093352_00127.BC", - kernels .. "/ROS_STRUCT_V5.BSP", + kernels .. "ROS_STRUCT_V5.BSP", - kernels .. "/ROS_NAVCAM_V01.TI", + kernels .. "ROS_NAVCAM_V01.TI", - kernels .. "/ROS_CHURYUMOV_V01.TF", - kernels .. "/ROS_V26.TF", + kernels .. "ROS_CHURYUMOV_V01.TF", + kernels .. "ROS_V26.TF", -- CK -- Rosetta attitude - kernels .. "/RATT_DV_243_01_01____00325.BC", - kernels .. "/RATT_DV_223_01_01____00302.BC", - kernels .. "/RATT_DV_145_01_01____00216.BC", + kernels .. "RATT_DV_243_01_01____00325.BC", + kernels .. "RATT_DV_223_01_01____00302.BC", + kernels .. "RATT_DV_145_01_01____00216.BC", -- Comet attitude - kernels .. "/CATT_DV_243_01_______00325.BC", - kernels .. "/CATT_DV_223_01_______00302.BC", - kernels .. "/CATT_DV_145_01_______00216.BC", + kernels .. "CATT_DV_243_01_______00325.BC", + kernels .. "CATT_DV_223_01_______00302.BC", + kernels .. "CATT_DV_145_01_______00216.BC", -- High gain antenna - kernels .. "/ROS_HGA_2016_V0035.BC", - kernels .. "/ROS_HGA_2015_V0053.BC", - kernels .. "/ROS_HGA_2014_V0044.BC", + kernels .. "ROS_HGA_2016_V0035.BC", + kernels .. "ROS_HGA_2015_V0053.BC", + kernels .. "ROS_HGA_2014_V0044.BC", -- Solar arrays - kernels .. "/ROS_SA_2016_V0034.BC", - kernels .. "/ROS_SA_2015_V0042.BC", - kernels .. "/ROS_SA_2014_V0047.BC", + kernels .. "ROS_SA_2016_V0034.BC", + kernels .. "ROS_SA_2015_V0042.BC", + kernels .. "ROS_SA_2014_V0047.BC", - - kernels .. "/ROS_CGS_RSOC_V03.TPC" + kernels .. "ROS_CGS_RSOC_V03.TPC" } local LightSources = { @@ -130,7 +128,7 @@ local RosettaBlackFoil = { Renderable = { Type = "RenderableModel", Body = "ROSETTA", - GeometryFile = models .. "/black_foil.obj", + GeometryFile = models .. "black_foil.obj", ModelTransform = RotationMatrix, LightSources = LightSources }, @@ -146,7 +144,7 @@ local RosettaBlackParts = { Renderable = { Type = "RenderableModel", Body = "ROSETTA", - GeometryFile = models .. "/black_parts.obj", + GeometryFile = models .. "black_parts.obj", ModelTransform = RotationMatrix, LightSources = LightSources }, @@ -162,7 +160,7 @@ local RosettaDish = { Renderable = { Type = "RenderableModel", Body = "ROSETTA", - GeometryFile = models .. "/dish.obj", + GeometryFile = models .. "dish.obj", ModelTransform = RotationMatrix, LightSources = LightSources }, @@ -178,7 +176,7 @@ local RosettaParts = { Renderable = { Type = "RenderableModel", Body = "ROSETTA", - GeometryFile = models .. "/parts.obj", + GeometryFile = models .. "parts.obj", ModelTransform = RotationMatrix, LightSources = LightSources }, @@ -194,7 +192,7 @@ local RosettaSilverFoil = { Renderable = { Type = "RenderableModel", Body = "ROSETTA", - GeometryFile = models .. "/silver_foil.obj", + GeometryFile = models .. "silver_foil.obj", ModelTransform = RotationMatrix, LightSources = LightSources }, @@ -210,7 +208,7 @@ local RosettaVents = { Renderable = { Type = "RenderableModel", Body = "ROSETTA", - GeometryFile = models .. "/vents.obj", + GeometryFile = models .. "vents.obj", ModelTransform = RotationMatrix, LightSources = LightSources }, @@ -226,7 +224,7 @@ local RosettaWingA = { Renderable = { Type = "RenderableModel", Body = "ROSETTA", - GeometryFile = models .."/wingA.obj", + GeometryFile = models .."wingA.obj", ModelTransform = RotationMatrix, LightSources = LightSources }, @@ -242,7 +240,7 @@ local RosettaWingB = { Renderable = { Type = "RenderableModel", Body = "ROSETTA", - GeometryFile = models .. "/wingB.obj", + GeometryFile = models .. "wingB.obj", ModelTransform = RotationMatrix, LightSources = LightSources }, @@ -258,7 +256,7 @@ local RosettaYellowFoil = { Renderable = { Type = "RenderableModel", Body = "ROSETTA", - GeometryFile = models .. "/yellow_foil.obj", + GeometryFile = models .. "yellow_foil.obj", ModelTransform = RotationMatrix, LightSources = LightSources }, @@ -303,7 +301,7 @@ local PhilaeFoil = { Renderable = { Type = "RenderableModel", Body = "ROSETTA", - GeometryFile = models .. "/lander_foil.obj", + GeometryFile = models .. "lander_foil.obj", ModelTransform = RotationMatrix, LightSources = LightSources }, @@ -319,7 +317,7 @@ local PhilaeLids = { Renderable = { Type = "RenderableModel", Body = "ROSETTA", - GeometryFile = models .. "/lander_lids.obj", + GeometryFile = models .. "lander_lids.obj", ModelTransform = RotationMatrix, LightSources = LightSources }, @@ -335,7 +333,7 @@ local PhilaeParts = { Renderable = { Type = "RenderableModel", Body = "ROSETTA", - GeometryFile = models .. "/lander_parts.obj", + GeometryFile = models .. "lander_parts.obj", ModelTransform = RotationMatrix, LightSources = LightSources }, @@ -351,7 +349,7 @@ local PhilaeSolarPanels = { Renderable = { Type = "RenderableModel", Body = "ROSETTA", - GeometryFile = models .. "/lander_solarp.obj", + GeometryFile = models .. "lander_solarp.obj", ModelTransform = RotationMatrix, LightSources = LightSources }, @@ -403,7 +401,7 @@ local ImagePlane = { Spacecraft = "ROSETTA", Instrument = "ROS_NAVCAM-A", Moving = false, - Texture = models .. "/defaultProj.png" + Texture = models .. "defaultProj.png" }, GUI = { Name = "Rosetta Image Plane", @@ -453,7 +451,7 @@ local PhilaeTrail = { } } -assetHelper.registerSceneGraphNodesAndExport(asset, { +local nodes = { Rosetta, RosettaModel, RosettaBlackFoil, @@ -478,4 +476,20 @@ assetHelper.registerSceneGraphNodesAndExport(asset, { RosettaCometTrail, PhilaeTrail -}) +} + +asset.onInitialize(function () + for i, node in ipairs(nodes) do + openspace.addSceneGraphNode(node) + end +end) + +asset.onDeinitialize(function () + for i = #nodes, 1, -1 do + openspace.removeSceneGraphNode(nodes[i]) + end +end) + +for i, node in ipairs(nodes) do + asset.export(node); +end diff --git a/data/assets/scene/solarsystem/missions/voyager/dashboard.asset b/data/assets/scene/solarsystem/missions/voyager/dashboard.asset index 8a0967ea71..be4e9c3b51 100644 --- a/data/assets/scene/solarsystem/missions/voyager/dashboard.asset +++ b/data/assets/scene/solarsystem/missions/voyager/dashboard.asset @@ -1,22 +1,29 @@ -local assetHelper = asset.require('util/asset_helper') +local distance_voyager1 = { + Type = "DashboardItemDistance", + Identifier = "Voyager1Distance", + GuiName = "Voyager 1 - Earth Distance", + SourceType = "Node", + SourceNodeName = "Voyager_1", + DestinationType = "Node", + DestinationNodeName = "Earth" +} -assetHelper.registerDashboardItems(asset, { - { - Type = "DashboardItemDistance", - Identifier = "Voyager1Distance", - GuiName = "Voyager 1 - Earth Distance", - SourceType = "Node", - SourceNodeName = "Voyager_1", - DestinationType = "Node", - DestinationNodeName = "Earth" - }, - { - Type = "DashboardItemDistance", - Identifier = "Voyager2Distance", - GuiName = "Voyager 2 - Earth Distance", - SourceType = "Node", - SourceNodeName = "Voyager_2", - DestinationType = "Node", - DestinationNodeName = "Earth" - } -}) +local distance_voyager2 = { + Type = "DashboardItemDistance", + Identifier = "Voyager2Distance", + GuiName = "Voyager 2 - Earth Distance", + SourceType = "Node", + SourceNodeName = "Voyager_2", + DestinationType = "Node", + DestinationNodeName = "Earth" +} + +asset.onInitialize(function() + openspace.dashboard.addDashboardItem(distance_voyager1) + openspace.dashboard.addDashboardItem(distance_voyager2) +end) + +asset.onDeinitialize(function() + openspace.dashboard.removeDashboardItem(distance_voyager2) + openspace.dashboard.removeDashboardItem(distance_voyager1) +end) diff --git a/data/assets/scene/solarsystem/missions/voyager/model.asset b/data/assets/scene/solarsystem/missions/voyager/model.asset deleted file mode 100644 index c72367fd35..0000000000 --- a/data/assets/scene/solarsystem/missions/voyager/model.asset +++ /dev/null @@ -1,8 +0,0 @@ -local models = asset.syncedResource({ - Name = "Voyager Model", - Type = "HttpSynchronization", - Identifier = "voyager_model", - Version = 1 -}) - -asset.export('modelFolder', models) diff --git a/data/assets/scene/solarsystem/missions/voyager/voyager1.asset b/data/assets/scene/solarsystem/missions/voyager/voyager1.asset index a0d0d4ae22..e690425bd2 100644 --- a/data/assets/scene/solarsystem/missions/voyager/voyager1.asset +++ b/data/assets/scene/solarsystem/missions/voyager/voyager1.asset @@ -1,6 +1,11 @@ -local assetHelper = asset.require('util/asset_helper') -local sunTransforms = asset.require('scene/solarsystem/sun/transforms') -local models = asset.require("./model" ).modelFolder; +local sunTransforms = asset.require("scene/solarsystem/sun/transforms") + +local models = asset.syncedResource({ + Name = "Voyager Model", + Type = "HttpSynchronization", + Identifier = "voyager_model", + Version = 1 +}) local kernels = asset.syncedResource({ Name = "Voyager 1 Kernels", @@ -10,14 +15,14 @@ local kernels = asset.syncedResource({ }) local Kernels = { - kernels .. '/vg1_v02.tf', - kernels .. '/vg100019.tsc', - kernels .. '/Voyager_1.a54206u_V0.2_merged.bsp', - kernels .. '/voyager_1.ST+1991_a54418u.merged.bsp', - kernels .. '/vgr1_jup230.bsp', - kernels .. '/vgr1_sat337.bsp', - kernels .. '/vgr1_super.bc', - kernels .. '/vgr1_super_v2.bc' + kernels .. "vg1_v02.tf", + kernels .. "vg100019.tsc", + kernels .. "Voyager_1.a54206u_V0.2_merged.bsp", + kernels .. "voyager_1.ST+1991_a54418u.merged.bsp", + kernels .. "vgr1_jup230.bsp", + kernels .. "vgr1_sat337.bsp", + kernels .. "vgr1_super.bc", + kernels .. "vgr1_super_v2.bc" } local RotationMatrix = { @@ -72,7 +77,7 @@ local Voyager1Main = { Parent = Voyager1.Identifier, Renderable = { Type = "RenderableModel", - GeometryFile = models .. "/voyager-main.obj", + GeometryFile = models .. "voyager-main.obj", ModelTransform = RotationMatrix, LightSources = LightSources }, @@ -87,7 +92,7 @@ local Voyager1Antenna = { Parent = Voyager1.Identifier, Renderable = { Type = "RenderableModel", - GeometryFile = models .. "/voyager-antenna.obj", + GeometryFile = models .. "voyager-antenna.obj", ModelTransform = RotationMatrix, LightSources = LightSources }, @@ -214,7 +219,7 @@ local VoyagerTrailCruiseSaturnInf = { } } -assetHelper.registerSceneGraphNodesAndExport(asset, { +local nodes = { Voyager1, Voyager1Main, Voyager1Antenna, @@ -223,4 +228,20 @@ assetHelper.registerSceneGraphNodesAndExport(asset, { VoyagerTrailCruiseJupiterSaturn, VoyagerTrailEncounterSaturn, VoyagerTrailCruiseSaturnInf -}) +} + +asset.onInitialize(function() + for i, node in ipairs(nodes) do + openspace.addSceneGraphNode(node) + end +end) + +asset.onDeinitialize(function() + for i = #nodes, 1, -1 do + openspace.removeSceneGraphNode(nodes[i]) + end +end) + +for i, node in ipairs(nodes) do + asset.export(node) +end diff --git a/data/assets/scene/solarsystem/missions/voyager/voyager2.asset b/data/assets/scene/solarsystem/missions/voyager/voyager2.asset index d2e7e80a17..a392b37528 100644 --- a/data/assets/scene/solarsystem/missions/voyager/voyager2.asset +++ b/data/assets/scene/solarsystem/missions/voyager/voyager2.asset @@ -1,8 +1,13 @@ -local assetHelper = asset.require('util/asset_helper') -local sunTransforms = asset.require('scene/solarsystem/sun/transforms') -local models = asset.require("./model" ).modelFolder; +local sunTransforms = asset.require("scene/solarsystem/sun/transforms") +local models = asset.syncedResource({ + Name = "Voyager Model", + Type = "HttpSynchronization", + Identifier = "voyager_model", + Version = 1 +}) + local kernels = asset.syncedResource({ Name = "Voyager 2 Kernels", Type = "HttpSynchronization", @@ -11,16 +16,16 @@ local kernels = asset.syncedResource({ }) local Kernels = { - kernels .. '/vg2_v02.tf', - kernels .. '/vg200022.tsc', - kernels .. '/Voyager_2.m05016u.merged.bsp', - kernels .. '/voyager_2.ST+1992_m05208u.merged.bsp', - kernels .. '/vgr2_jup230.bsp', - kernels .. '/vgr2_sat337.bsp', - kernels .. '/vgr2_ura083.bsp', - kernels .. '/vgr2_nep081.bsp', - kernels .. '/vgr2_super.bc', - kernels .. '/vgr2_super_v2.bc' + kernels .. "vg2_v02.tf", + kernels .. "vg200022.tsc", + kernels .. "Voyager_2.m05016u.merged.bsp", + kernels .. "voyager_2.ST+1992_m05208u.merged.bsp", + kernels .. "vgr2_jup230.bsp", + kernels .. "vgr2_sat337.bsp", + kernels .. "vgr2_ura083.bsp", + kernels .. "vgr2_nep081.bsp", + kernels .. "vgr2_super.bc", + kernels .. "vgr2_super_v2.bc" } local RotationMatrix = { @@ -76,7 +81,7 @@ local Voyager2Main = { Parent = Voyager2.Identifier, Renderable = { Type = "RenderableModel", - GeometryFile = models .. "/voyager-main.obj", + GeometryFile = models .. "voyager-main.obj", ModelTransform = RotationMatrix, LightSources = LightSources }, @@ -91,7 +96,7 @@ local Voyager2Antenna = { Parent = Voyager2.Identifier, Renderable = { Type = "RenderableModel", - GeometryFile = models .. "/voyager-antenna.obj", + GeometryFile = models .. "voyager-antenna.obj", ModelTransform = RotationMatrix, LightSources = LightSources }, @@ -310,7 +315,7 @@ local VoyagerTrailCruiseNeptuneInf = { } } -assetHelper.registerSceneGraphNodesAndExport(asset, { +local nodes = { Voyager2, Voyager2Main, Voyager2Antenna, @@ -323,4 +328,20 @@ assetHelper.registerSceneGraphNodesAndExport(asset, { VoyagerTrailCruiseUranusNeptune, VoyagerTrailEncounterNeptune, VoyagerTrailCruiseNeptuneInf -}) +} + +asset.onInitialize(function() + for i, node in ipairs(nodes) do + openspace.addSceneGraphNode(node) + end +end) + +asset.onDeinitialize(function() + for i = #nodes, 1, -1 do + openspace.removeSceneGraphNode(nodes[i]) + end +end) + +for i, node in ipairs(nodes) do + asset.export(node) +end diff --git a/data/assets/scene/solarsystem/missions/voyagerpioneer/voyager1_2__pioneer10_11.asset b/data/assets/scene/solarsystem/missions/voyagerpioneer/voyager1_2__pioneer10_11.asset index a464240511..622ebcee9a 100644 --- a/data/assets/scene/solarsystem/missions/voyagerpioneer/voyager1_2__pioneer10_11.asset +++ b/data/assets/scene/solarsystem/missions/voyagerpioneer/voyager1_2__pioneer10_11.asset @@ -1,5 +1,3 @@ -local assetHelper = asset.require('util/asset_helper') - local sampleInterval = 24*60*60 local voyager1 = { @@ -102,7 +100,25 @@ local pioneer11 ={ } } -assetHelper.registerSceneGraphNodesAndExport(asset, { voyager1, voyager2, pioneer10, pioneer11 }) +asset.onInitialize(function() + openspace.addSceneGraphNode(voyager1) + openspace.addSceneGraphNode(voyager2) + openspace.addSceneGraphNode(pioneer10) + openspace.addSceneGraphNode(pioneer11) +end) + +asset.onDeinitialize(function() + openspace.removeSceneGraphNode(pioneer11) + openspace.removeSceneGraphNode(pioneer10) + openspace.removeSceneGraphNode(voyager2) + openspace.removeSceneGraphNode(voyager1) +end) + +asset.export(voyager1) +asset.export(voyager2) +asset.export(pioneer10) +asset.export(pioneer11) + asset.meta = { diff --git a/data/assets/scene/solarsystem/planets/default_layers.asset b/data/assets/scene/solarsystem/planets/default_layers.asset index acfe25579b..2aae0ad044 100644 --- a/data/assets/scene/solarsystem/planets/default_layers.asset +++ b/data/assets/scene/solarsystem/planets/default_layers.asset @@ -1,33 +1,33 @@ -asset.require('./earth/default_layers') -asset.require('./earth/moon/default_layers') +asset.require("./earth/default_layers") +asset.require("./earth/moon/default_layers") -asset.require('./jupiter/default_layers') -asset.require('./jupiter/callisto/default_layers') -asset.require('./jupiter/europa/default_layers') -asset.require('./jupiter/ganymede/default_layers') -asset.require('./jupiter/io/default_layers') +asset.require("./jupiter/default_layers") +asset.require("./jupiter/callisto/default_layers") +asset.require("./jupiter/europa/default_layers") +asset.require("./jupiter/ganymede/default_layers") +asset.require("./jupiter/io/default_layers") -asset.require('./mars/default_layers') -asset.require('./mars/moons/layers/colorlayers/deimos_viking') -asset.require('./mars/moons/layers/colorlayers/phobos_viking') +asset.require("./mars/default_layers") +asset.require("./mars/moons/layers/colorlayers/deimos_viking") +asset.require("./mars/moons/layers/colorlayers/phobos_viking") -asset.require('./mercury/default_layers') +asset.require("./mercury/default_layers") -asset.require('./neptune/default_layers') +asset.require("./neptune/default_layers") -asset.require('./saturn/default_layers') -asset.require('./saturn/dione/default_layers') -asset.require('./saturn/enceladus/default_layers') -asset.require('./saturn/hyperion/default_layers') -asset.require('./saturn/iapetus/default_layers') -asset.require('./saturn/mimas/default_layers') -asset.require('./saturn/rhea/default_layers') -asset.require('./saturn/tethys/default_layers') -asset.require('./saturn/titan/default_layers') +asset.require("./saturn/default_layers") +asset.require("./saturn/dione/default_layers") +asset.require("./saturn/enceladus/default_layers") +asset.require("./saturn/hyperion/default_layers") +asset.require("./saturn/iapetus/default_layers") +asset.require("./saturn/mimas/default_layers") +asset.require("./saturn/rhea/default_layers") +asset.require("./saturn/tethys/default_layers") +asset.require("./saturn/titan/default_layers") -asset.require('./uranus/default_layers') +asset.require("./uranus/default_layers") -asset.require('./venus/default_layers') +asset.require("./venus/default_layers") asset.meta = { diff --git a/data/assets/scene/solarsystem/planets/earth/atmosphere.asset b/data/assets/scene/solarsystem/planets/earth/atmosphere.asset index 5a7f937fb0..4fa2ed9f1e 100644 --- a/data/assets/scene/solarsystem/planets/earth/atmosphere.asset +++ b/data/assets/scene/solarsystem/planets/earth/atmosphere.asset @@ -1,5 +1,4 @@ -local transforms = asset.require('./earth') -local assetHelper = asset.require('util/asset_helper') +local transforms = asset.require("./earth") @@ -89,15 +88,23 @@ local Atmosphere = { } } -assetHelper.registerSceneGraphNodesAndExport(asset, { Atmosphere }) +asset.onInitialize(function() + openspace.addSceneGraphNode(Atmosphere) +end) + +asset.onDeinitialize(function() + openspace.removeSceneGraphNode(Atmosphere) +end) + +asset.export(Atmosphere) + asset.meta = { Name = "Earth Atmosphere", - Version = "1.0", + Version = "1.1", Description = [[ RenderableAtmosphere for Earth.]], Author = "OpenSpace Team", URL = "http://openspaceproject.com", - License = "MIT license", - Identifiers = { "EarthAtmosphere" } + License = "MIT license" } diff --git a/data/assets/scene/solarsystem/planets/earth/default_layers.asset b/data/assets/scene/solarsystem/planets/earth/default_layers.asset index 15834a073f..9ac40e0280 100644 --- a/data/assets/scene/solarsystem/planets/earth/default_layers.asset +++ b/data/assets/scene/solarsystem/planets/earth/default_layers.asset @@ -1,41 +1,35 @@ -local colorLayersPath = "./layers/colorlayers" -local heightLayersPath = "./layers/heightlayers" -local nightLayersPath = "./layers/nightlayers" -local overlaysPath = "./layers/overlays" -local waterMasksPath = "./layers/watermasks" - -- Color layers -local colorLayer = asset.require(colorLayersPath .. "/esri_viirs_combo") -asset.require(colorLayersPath .. "/esri_world_imagery") -asset.require(colorLayersPath .. "/esri_imagery_world_2D") -asset.require(colorLayersPath .. "/viirs_snpp_temporal") -asset.require(colorLayersPath .. "/aqua_modis_temporal") -asset.require(colorLayersPath .. "/terra_modis_temporal") -asset.require(colorLayersPath .. "/bmng_utah") -asset.require(colorLayersPath .. "/bmng_sweden") -asset.require(colorLayersPath .. "/amsr2_gcom_w1_sea_ice_concentration_temporal") -asset.require(colorLayersPath .. "/modis_terra_chlorophyll_a_temporal") -asset.require(colorLayersPath .. "/ghrsst_l4_g1sst_sea_surface_temperature_temporal") -asset.require(colorLayersPath .. "/ghrsst_l4_mur_sea_surface_temperature_temporal") +local colorLayer = asset.require("./layers/colorlayers/esri_viirs_combo") +asset.require("./layers/colorlayers/esri_world_imagery") +asset.require("./layers/colorlayers/esri_imagery_world_2D") +asset.require("./layers/colorlayers/viirs_snpp_temporal") +asset.require("./layers/colorlayers/aqua_modis_temporal") +asset.require("./layers/colorlayers/terra_modis_temporal") +asset.require("./layers/colorlayers/bmng_utah") +asset.require("./layers/colorlayers/bmng_sweden") +asset.require("./layers/colorlayers/amsr2_gcom_w1_sea_ice_concentration_temporal") +asset.require("./layers/colorlayers/modis_terra_chlorophyll_a_temporal") +asset.require("./layers/colorlayers/ghrsst_l4_g1sst_sea_surface_temperature_temporal") +asset.require("./layers/colorlayers/ghrsst_l4_mur_sea_surface_temperature_temporal") -- Height layers -local heightLayer = asset.require(heightLayersPath .. "/terrain_tileset") +local heightLayer = asset.require("./layers/heightlayers/terrain_tileset") -- Night layers -local nightLayer = asset.require(nightLayersPath .. "/earth_at_night_2012") -asset.require(nightLayersPath .. "/earth_at_night_temporal") +local nightLayer = asset.require("./layers/nightlayers/earth_at_night_2012") +asset.require("./layers/nightlayers/earth_at_night_temporal") -- Overlays -asset.require(overlaysPath .. "/coastlines") -asset.require(overlaysPath .. "/reference_features") -asset.require(overlaysPath .. "/reference_labels") -asset.require(overlaysPath .. "/tile_indices") -asset.require(overlaysPath .. "/size_reference") +asset.require("./layers/overlays/coastlines") +asset.require("./layers/overlays/reference_features") +asset.require("./layers/overlays/reference_labels") +asset.require("./layers/overlays/tile_indices") +asset.require("./layers/overlays/size_reference") -- Watermasks -asset.require(waterMasksPath .. "/gebco_sweden") -asset.require(waterMasksPath .. "/gebco_utah") -local watermask = asset.require(waterMasksPath .. "/modis_water_mask") +asset.require("./layers/watermasks/gebco_sweden") +asset.require("./layers/watermasks/gebco_utah") +local watermask = asset.require("./layers/watermasks/modis_water_mask") -- Set enabled layers (temporary solution) -- @TODO: do this using a boolean that's passed to the 'asset.require' instead diff --git a/data/assets/scene/solarsystem/planets/earth/earth.asset b/data/assets/scene/solarsystem/planets/earth/earth.asset index ef29f8c1f3..737f7a3b02 100644 --- a/data/assets/scene/solarsystem/planets/earth/earth.asset +++ b/data/assets/scene/solarsystem/planets/earth/earth.asset @@ -1,6 +1,11 @@ -local transforms = asset.require('./transforms') -local assetHelper = asset.require('util/asset_helper') -local labelsPath = asset.require('./earth_globelabels').LabelsPath +local transforms = asset.require("./transforms") + +local labelsPath = asset.syncedResource({ + Name = "Earth Labels", + Type = "HttpSynchronization", + Identifier = "earth_labels", + Version = 1 +}) -- local earthEllipsoid = { 6378137.0, 6378137.0, 6356752.314245 } local earthEllipsoid = { 6378137.0, 6378137.0, 6378137.0 } @@ -24,7 +29,7 @@ local Earth = { }, Labels = { Enabled = false, - FileName = labelsPath .. "/Earth.labels", + FileName = labelsPath .. "Earth.labels", AlignmentOption = "Horizontally", -- or Circularly FontSize = 20.0, Size = 5.0, @@ -68,7 +73,19 @@ local EarthLabel = { } } -assetHelper.registerSceneGraphNodesAndExport(asset, { Earth, EarthLabel }) +asset.onInitialize(function() + openspace.addSceneGraphNode(Earth) + openspace.addSceneGraphNode(EarthLabel) +end) + +asset.onDeinitialize(function() + openspace.removeSceneGraphNode(EarthLabel) + openspace.removeSceneGraphNode(Earth) +end) + +asset.export(Earth) +asset.export(EarthLabel) + asset.meta = { @@ -77,6 +94,5 @@ asset.meta = { Description = [[ Earth is a special planet with special needs ]], Author = "OpenSpace Team", URL = "http://openspaceproject.com", - License = "MIT license", - Identifiers = {"Earth", "EarthLabel"} + License = "MIT license" } diff --git a/data/assets/scene/solarsystem/planets/earth/earth_globelabels.asset b/data/assets/scene/solarsystem/planets/earth/earth_globelabels.asset deleted file mode 100644 index f454309a56..0000000000 --- a/data/assets/scene/solarsystem/planets/earth/earth_globelabels.asset +++ /dev/null @@ -1,7 +0,0 @@ -local LabelsPath = asset.syncedResource({ - Name = "Earth Labels", - Type = "HttpSynchronization", - Identifier = "earth_labels", - Version = 1 -}) -asset.export("LabelsPath", LabelsPath) diff --git a/data/assets/scene/solarsystem/planets/earth/earth_textures.asset b/data/assets/scene/solarsystem/planets/earth/earth_textures.asset deleted file mode 100644 index 73448a46b7..0000000000 --- a/data/assets/scene/solarsystem/planets/earth/earth_textures.asset +++ /dev/null @@ -1,7 +0,0 @@ -local TexturesPath = asset.syncedResource({ - Name = "Earth Textures", - Type = "HttpSynchronization", - Identifier = "earth_textures", - Version = 2 -}) -asset.export("TexturesPath", TexturesPath) diff --git a/data/assets/scene/solarsystem/planets/earth/lagrange_points/L1.asset b/data/assets/scene/solarsystem/planets/earth/lagrange_points/L1.asset index 42cbb85eab..fb4601f25e 100644 --- a/data/assets/scene/solarsystem/planets/earth/lagrange_points/L1.asset +++ b/data/assets/scene/solarsystem/planets/earth/lagrange_points/L1.asset @@ -1,18 +1,29 @@ -local assetHelper = asset.require('util/asset_helper') -local transforms = asset.require('scene/solarsystem/sun/transforms') -local circle = asset.require('util/circle').circle -local kernels = asset.require('scene/solarsystem/planets/earth/lagrange_points/lagrange_kernels').kernels -asset.require('spice/base') +local transforms = asset.require("scene/solarsystem/sun/transforms") +asset.require("spice/base") + +local circle = asset.syncedResource({ + Name = "Circle", + Type = "HttpSynchronization", + Identifier = "circle_image", + Version = 1 +}) + +local kernels = asset.syncedResource({ + Name = "Lagrange Kernels", + Type = "HttpSynchronization", + Identifier = "earth_lagrange_kernels", + Version = 1 +}) local L1 = { Identifier = "L1", Parent = transforms.SolarSystemBarycenter.Identifier, Renderable = { Type = "RenderablePlaneImageLocal", - RenderableType = "Opaque", + RenderBinMode = "Opaque", Billboard = true, Size = 700E5, - Texture = circle .. "/circle.png", + Texture = circle .. "circle.png", BlendMode = "Additive" }, Transform = { @@ -20,7 +31,7 @@ local L1 = { Type = "SpiceTranslation", Target = "391", -- L1 Observer = "SSB", - Kernels = kernels .. "/L1_de431.bsp" + Kernels = kernels .. "L1_de431.bsp" } }, Tag = { "lagrange_points_earth" , "lagrange_points_earth_l1" }, @@ -51,7 +62,26 @@ local L1Label = { } } -assetHelper.registerSceneGraphNodesAndExport(asset, { - L1, - L1Label -}) +asset.onInitialize(function() + openspace.addSceneGraphNode(L1) + openspace.addSceneGraphNode(L1Label) +end) + +asset.onDeinitialize(function() + openspace.removeSceneGraphNode(L1Label) + openspace.removeSceneGraphNode(L1) +end) + +asset.export(L1) +asset.export(L1Label) + + + +asset.meta = { + Name = "Lagrange point L1", + Version = "1.0", + Description = [[ Lagrange point L1 node and label]], + Author = "OpenSpace Team", + URL = "http://openspaceproject.com", + License = "MIT license" +} diff --git a/data/assets/scene/solarsystem/planets/earth/lagrange_points/L2.asset b/data/assets/scene/solarsystem/planets/earth/lagrange_points/L2.asset index c93a1c882f..a96ffe71e4 100644 --- a/data/assets/scene/solarsystem/planets/earth/lagrange_points/L2.asset +++ b/data/assets/scene/solarsystem/planets/earth/lagrange_points/L2.asset @@ -1,18 +1,29 @@ -local assetHelper = asset.require('util/asset_helper') -local transforms = asset.require('scene/solarsystem/sun/transforms') -local circle = asset.require('util/circle').circle -local kernels = asset.require('scene/solarsystem/planets/earth/lagrange_points/lagrange_kernels').kernels -asset.require('spice/base') +local transforms = asset.require("scene/solarsystem/sun/transforms") +asset.require("spice/base") + +local circle = asset.syncedResource({ + Name = "Circle", + Type = "HttpSynchronization", + Identifier = "circle_image", + Version = 1 +}) + +local kernels = asset.syncedResource({ + Name = "Lagrange Kernels", + Type = "HttpSynchronization", + Identifier = "earth_lagrange_kernels", + Version = 1 +}) local L2Small = { Identifier = "L2Small", Parent = transforms.SolarSystemBarycenter.Identifier, Renderable = { Type = "RenderablePlaneImageLocal", - RenderableType = "Opaque", + RenderBinMode = "Opaque", Billboard = true, Size = 400E4, - Texture = circle .. "/circle.png", + Texture = circle .. "circle.png", BlendMode = "Additive" }, Transform = { @@ -20,7 +31,7 @@ local L2Small = { Type = "SpiceTranslation", Target = "392", -- L2 Observer = "SSB", - Kernels = kernels .. "/L2_de431.bsp" + Kernels = kernels .. "L2_de431.bsp" } }, Tag = { "lagrange_points_earth_l2_small" }, @@ -35,10 +46,10 @@ local L2 = { Parent = transforms.SolarSystemBarycenter.Identifier, Renderable = { Type = "RenderablePlaneImageLocal", - RenderableType = "Opaque", + RenderBinMode = "Opaque", Billboard = true, Size = 700E5, - Texture = circle .. "/circle.png", + Texture = circle .. "circle.png", BlendMode = "Additive" }, Transform = { @@ -46,7 +57,7 @@ local L2 = { Type = "SpiceTranslation", Target = "392", -- L2 Observer = "SSB", - Kernels = kernels .. "/L2_de431.bsp" + Kernels = kernels .. "L2_de431.bsp" } }, Tag = { "lagrange_points_earth", "lagrange_points_earth_l2" }, @@ -115,10 +126,38 @@ local L2SunLine = { } } -assetHelper.registerSceneGraphNodesAndExport(asset, { +local nodes = { L2Small, L2, L2SunLine, L2SmallLabel, L2Label -}) +} + +asset.onInitialize(function() + for i, node in ipairs(nodes) do + openspace.addSceneGraphNode(node) + end +end) + +asset.onDeinitialize(function() + for i = #nodes, 1, -1 do + openspace.removeSceneGraphNode(nodes[i]) + end +end) + +for i, node in ipairs(nodes) do + asset.export(node) +end + + + +asset.meta = { + Name = "Lagrange point L2", + Version = "1.0", + Description = [[ Lagrange point L2 large and small nodes, sun line, and large and small + labels. ]], + Author = "OpenSpace Team", + URL = "http://openspaceproject.com", + License = "MIT license" +} diff --git a/data/assets/scene/solarsystem/planets/earth/lagrange_points/L4.asset b/data/assets/scene/solarsystem/planets/earth/lagrange_points/L4.asset index c49044f076..6cb9eee0f4 100644 --- a/data/assets/scene/solarsystem/planets/earth/lagrange_points/L4.asset +++ b/data/assets/scene/solarsystem/planets/earth/lagrange_points/L4.asset @@ -1,18 +1,29 @@ -local assetHelper = asset.require('util/asset_helper') -local transforms = asset.require('scene/solarsystem/sun/transforms') -local circle = asset.require('util/circle').circle -local kernels = asset.require('scene/solarsystem/planets/earth/lagrange_points/lagrange_kernels').kernels -asset.require('spice/base') +local transforms = asset.require("scene/solarsystem/sun/transforms") +asset.require("spice/base") + +local circle = asset.syncedResource({ + Name = "Circle", + Type = "HttpSynchronization", + Identifier = "circle_image", + Version = 1 +}) + +local kernels = asset.syncedResource({ + Name = "Lagrange Kernels", + Type = "HttpSynchronization", + Identifier = "earth_lagrange_kernels", + Version = 1 +}) local L4 = { Identifier = "L4", Parent = transforms.SolarSystemBarycenter.Identifier, Renderable = { Type = "RenderablePlaneImageLocal", - RenderableType = "Opaque", + RenderBinMode = "Opaque", Billboard = true, Size = 800E6, - Texture = circle .. "/circle.png", + Texture = circle .. "circle.png", BlendMode = "Additive" }, Transform = { @@ -20,7 +31,7 @@ local L4 = { Type = "SpiceTranslation", Target = "394", -- L4 Observer = "SSB", - Kernels = kernels .. "/L4_de431.bsp" + Kernels = kernels .. "L4_de431.bsp" } }, Tag = { "lagrange_points_earth", "lagrange_points_earth_l4" }, @@ -51,7 +62,26 @@ local L4Label = { } } -assetHelper.registerSceneGraphNodesAndExport(asset, { - L4, - L4Label -}) +asset.onInitialize(function() + openspace.addSceneGraphNode(L4) + openspace.addSceneGraphNode(L4Label) +end) + +asset.onDeinitialize(function() + openspace.removeSceneGraphNode(L4Label) + openspace.removeSceneGraphNode(L4) +end) + +asset.export(L4) +asset.export(L4Label) + + + +asset.meta = { + Name = "Lagrange point L4", + Version = "1.0", + Description = [[ Lagrange point L4 node and label]], + Author = "OpenSpace Team", + URL = "http://openspaceproject.com", + License = "MIT license" +} diff --git a/data/assets/scene/solarsystem/planets/earth/lagrange_points/L5.asset b/data/assets/scene/solarsystem/planets/earth/lagrange_points/L5.asset index ece822fd03..a4776f90b2 100644 --- a/data/assets/scene/solarsystem/planets/earth/lagrange_points/L5.asset +++ b/data/assets/scene/solarsystem/planets/earth/lagrange_points/L5.asset @@ -1,18 +1,29 @@ -local assetHelper = asset.require('util/asset_helper') -local transforms = asset.require('scene/solarsystem/sun/transforms') -local circle = asset.require('util/circle').circle -local kernels = asset.require('scene/solarsystem/planets/earth/lagrange_points/lagrange_kernels').kernels -asset.require('spice/base') +local transforms = asset.require("scene/solarsystem/sun/transforms") +asset.require("spice/base") + +local circle = asset.syncedResource({ + Name = "Circle", + Type = "HttpSynchronization", + Identifier = "circle_image", + Version = 1 +}) + +local kernels = asset.syncedResource({ + Name = "Lagrange Kernels", + Type = "HttpSynchronization", + Identifier = "earth_lagrange_kernels", + Version = 1 +}) local L5 = { Identifier = "L5", Parent = transforms.SolarSystemBarycenter.Identifier, Renderable = { Type = "RenderablePlaneImageLocal", - RenderableType = "Opaque", + RenderBinMode = "Opaque", Billboard = true, Size = 800E6, - Texture = circle .. "/circle.png", + Texture = circle .. "circle.png", BlendMode = "Additive" }, Transform = { @@ -20,7 +31,7 @@ local L5 = { Type = "SpiceTranslation", Target = "395", -- L5 Observer = "SSB", - Kernels = kernels .. "/L5_de431.bsp" + Kernels = kernels .. "L5_de431.bsp" } }, Tag = { "lagrange_points_earth", "lagrange_points_earth_l5" }, @@ -51,7 +62,26 @@ local L5Label = { } } -assetHelper.registerSceneGraphNodesAndExport(asset, { - L5, - L5Label -}) +asset.onInitialize(function() + openspace.addSceneGraphNode(L5) + openspace.addSceneGraphNode(L5Label) +end) + +asset.onDeinitialize(function() + openspace.removeSceneGraphNode(L5Label) + openspace.removeSceneGraphNode(L5) +end) + +asset.export(L5) +asset.export(L5Label) + + + +asset.meta = { + Name = "Lagrange point L5", + Version = "1.0", + Description = [[ Lagrange point L5 node and label]], + Author = "OpenSpace Team", + URL = "http://openspaceproject.com", + License = "MIT license" +} diff --git a/data/assets/scene/solarsystem/planets/earth/lagrange_points/lagrange_kernels.asset b/data/assets/scene/solarsystem/planets/earth/lagrange_points/lagrange_kernels.asset deleted file mode 100644 index b78370a3a8..0000000000 --- a/data/assets/scene/solarsystem/planets/earth/lagrange_points/lagrange_kernels.asset +++ /dev/null @@ -1,8 +0,0 @@ -local kernels = asset.syncedResource({ - Name = "Lagrange Kernels", - Type = "HttpSynchronization", - Identifier = "earth_lagrange_kernels", - Version = 1 -}) - -asset.export('kernels', kernels) diff --git a/data/assets/scene/solarsystem/planets/earth/lagrange_points/lagrange_points.asset b/data/assets/scene/solarsystem/planets/earth/lagrange_points/lagrange_points.asset index 8c4d507ca0..b64c1639b3 100644 --- a/data/assets/scene/solarsystem/planets/earth/lagrange_points/lagrange_points.asset +++ b/data/assets/scene/solarsystem/planets/earth/lagrange_points/lagrange_points.asset @@ -1,4 +1,14 @@ -asset.require('scene/solarsystem/planets/earth/lagrange_points/L1') -asset.require('scene/solarsystem/planets/earth/lagrange_points/L2') -asset.require('scene/solarsystem/planets/earth/lagrange_points/L4') -asset.require('scene/solarsystem/planets/earth/lagrange_points/L5') +asset.require("./L1") +asset.require("./L2") +asset.require("./L4") +asset.require("./L5") + + +asset.meta = { + Name = "Earth Lagrange Points", + Version = "1.0", + Description = [[ Meta asset to include all the Earth Lagrange points. Includes L1, L2, L4 and L5.]], + Author = "OpenSpace Team", + URL = "http://openspaceproject.com", + License = "MIT license" +} diff --git a/data/assets/scene/solarsystem/planets/earth/layers/colorlayers/amsr2_gcom_w1_sea_ice_concentration_temporal.asset b/data/assets/scene/solarsystem/planets/earth/layers/colorlayers/amsr2_gcom_w1_sea_ice_concentration_temporal.asset index ef294487f1..91385be077 100644 --- a/data/assets/scene/solarsystem/planets/earth/layers/colorlayers/amsr2_gcom_w1_sea_ice_concentration_temporal.asset +++ b/data/assets/scene/solarsystem/planets/earth/layers/colorlayers/amsr2_gcom_w1_sea_ice_concentration_temporal.asset @@ -1,17 +1,23 @@ -local globeIdentifier = asset.require("./../../earth").Earth.Identifier +local globeIdentifier = asset.require("../../earth").Earth.Identifier local layer = { Identifier = "AMSR2_GCOM_W1_Sea_Ice_Concentration_Temporal", Name = "AMSR2 GCOM W1 Sea Ice Concentration (Temporal)", Type = "TemporalTileLayer", - FilePath = openspace.globebrowsing.createTemporalGibsGdalXml( - "AMSRU2_Sea_Ice_Concentration_12km", - "2012-05-08", - "Yesterday", - "1d", - "2km", - "png" - ), + Mode = "Prototyped", + Prototyped = { + Time = { + Start = "2012-05-08", + End = "Yesterday" + }, + TemporalResolution = "1d", + TimeFormat = "YYYY-MM-DD", + Prototype = openspace.globebrowsing.createTemporalGibsGdalXml( + "AMSRU2_Sea_Ice_Concentration_12km", + "2km", + "png" + ) + }, Description = [[ Temporal coverage: 02 July 2012 - Present. The Advanced Microwave Scanning Radiometer-E/Advanced Microwave Scanning Radiometer-2 (AMSR-E/AMSR2) unified "Sea Ice Concentration (12 km)" layer displays the percent of sea ice @@ -20,20 +26,24 @@ local layer = { of 12 km. (Description from NASA Worldview)]] } -asset.onInitialize(function () +asset.onInitialize(function() openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer) end) +asset.onDeinitialize(function() + openspace.globebrowsing.deleteLayer(globeIdentifier, "ColorLayers", layer) +end) + asset.export("layer", layer) + asset.meta = { Name = "AMSR2 GCOM W1 Sea Ice Concentration (Temporal)", - Version = "1.0", + Version = "1.1", Description = [[ GIBS hosted layer created with openspace.globebrowsing.createTemporalGibsGdalXml ]], Author = "NASA EOSDIS Global Imagery Browse Services", URL = "https://earthdata.nasa.gov/eosdis/science-system-description/eosdis-components/gibs", - License = "NASA", - Identifiers = {"AMSR2_GCOM_W1_Sea_Ice_Concentration_Temporal"} + License = "NASA" } diff --git a/data/assets/scene/solarsystem/planets/earth/layers/colorlayers/aqua_modis_temporal.asset b/data/assets/scene/solarsystem/planets/earth/layers/colorlayers/aqua_modis_temporal.asset index 7e6e085717..e29b98f735 100644 --- a/data/assets/scene/solarsystem/planets/earth/layers/colorlayers/aqua_modis_temporal.asset +++ b/data/assets/scene/solarsystem/planets/earth/layers/colorlayers/aqua_modis_temporal.asset @@ -1,17 +1,23 @@ -local globeIdentifier = asset.require("./../../earth").Earth.Identifier +local globeIdentifier = asset.require("../../earth").Earth.Identifier local layer = { Identifier = "Aqua_Modis_Temporal", Name = "Aqua Modis (Temporal)", Type = "TemporalTileLayer", - FilePath = openspace.globebrowsing.createTemporalGibsGdalXml( - "MODIS_Aqua_CorrectedReflectance_TrueColor", - "2002-07-04", - "Yesterday", - "1d", - "250m", - "jpg" - ), + Mode = "Prototyped", + Prototyped = { + Time = { + Start = "2002-07-04", + End = "Yesterday" + }, + TemporalResolution = "1d", + TimeFormat = "YYYY-MM-DD", + Prototype = openspace.globebrowsing.createTemporalGibsGdalXml( + "MODIS_Aqua_CorrectedReflectance_TrueColor", + "250m", + "jpg" + ) + }, Description = [[ Temporal coverage: 03 July 2002 - Present. True Color: Red = Band 1, Green = Band 4, Blue = Band 3. These images are called true-color or natural color because this combination of wavelengths is similar to what the human eye would see. @@ -25,20 +31,24 @@ local layer = { and the temporal resolution is daily. (Description from NASA Worldview)]] } -asset.onInitialize(function () +asset.onInitialize(function() openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer) end) +asset.onDeinitialize(function() + openspace.globebrowsing.deleteLayer(globeIdentifier, "ColorLayers", layer) +end) + asset.export("layer", layer) + asset.meta = { Name = "Aqua Modis (Temporal)", - Version = "1.0", + Version = "1.1", Description = [[ GIBS hosted layer created with openspace.globebrowsing.createTemporalGibsGdalXml ]], Author = "NASA EOSDIS Global Imagery Browse Services", URL = "https://earthdata.nasa.gov/eosdis/science-system-description/eosdis-components/gibs", - License = "NASA", - Identifiers = {"Aqua_Modis_Temporal"} + License = "NASA" } diff --git a/data/assets/scene/solarsystem/planets/earth/layers/colorlayers/bmng_sweden.asset b/data/assets/scene/solarsystem/planets/earth/layers/colorlayers/bmng_sweden.asset index 92ebc494fd..6e83e007aa 100644 --- a/data/assets/scene/solarsystem/planets/earth/layers/colorlayers/bmng_sweden.asset +++ b/data/assets/scene/solarsystem/planets/earth/layers/colorlayers/bmng_sweden.asset @@ -1,28 +1,31 @@ -local mapServiceConfigsPath = asset.localResource("./../../map_service_configs") -local globeIdentifier = asset.require("./../../earth").Earth.Identifier +local globeIdentifier = asset.require("../../earth").Earth.Identifier local layer = { Identifier = "BMNG_Sweden", Name = "BMNG [Sweden]", - FilePath = mapServiceConfigsPath .. "/LiU/Bmng.wms", + FilePath = asset.localResource("bmng_sweden.wms"), Description = [[ Web loaded full resolution map of Blue Marble Next Generation. This map is hosted on the OpenSpace servers in Sweden]], } -asset.onInitialize(function () +asset.onInitialize(function() openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer) end) +asset.onDeinitialize(function() + openspace.globebrowsing.deleteLayer(globeIdentifier, "ColorLayers", layer) +end) + asset.export("layer", layer) + asset.meta = { Name = "Blue Marble Next Generation (Sweden)", - Version = "1.0", + Version = "1.1", Description = [[ Web loaded full resolution map of Blue Marble Next Generation. This map is hosted on the OpenSpace servers in Sweden]], Author = "OpenSpace Team", URL = "https://visibleearth.nasa.gov/collection/1484/blue-marble", - License = "NASA", - Identifiers = {"BMNG_Sweden"} + License = "NASA" } diff --git a/data/assets/scene/solarsystem/planets/earth/map_service_configs/LiU/Bmng.wms b/data/assets/scene/solarsystem/planets/earth/layers/colorlayers/bmng_sweden.wms similarity index 100% rename from data/assets/scene/solarsystem/planets/earth/map_service_configs/LiU/Bmng.wms rename to data/assets/scene/solarsystem/planets/earth/layers/colorlayers/bmng_sweden.wms diff --git a/data/assets/scene/solarsystem/planets/earth/layers/colorlayers/bmng_utah.asset b/data/assets/scene/solarsystem/planets/earth/layers/colorlayers/bmng_utah.asset index a49d173df5..1c56eea33a 100644 --- a/data/assets/scene/solarsystem/planets/earth/layers/colorlayers/bmng_utah.asset +++ b/data/assets/scene/solarsystem/planets/earth/layers/colorlayers/bmng_utah.asset @@ -1,28 +1,31 @@ -local mapServiceConfigsPath = asset.localResource("./../../map_service_configs") -local globeIdentifier = asset.require("./../../earth").Earth.Identifier +local globeIdentifier = asset.require("../../earth").Earth.Identifier local layer = { Identifier = "BMNG_Utah", Name = "BMNG [Utah]", - FilePath = mapServiceConfigsPath .. "/Utah/Bmng.wms", + FilePath = asset.localResource("bmng_utah.wms"), Description = [[ Web loaded full resolution map of Blue Marble Next Generation. This map is hosted on the OpenSpace servers in Utah]], } -asset.onInitialize(function () +asset.onInitialize(function() openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer) end) +asset.onDeinitialize(function() + openspace.globebrowsing.deleteLayer(globeIdentifier, "ColorLayers", layer) +end) + asset.export("layer", layer) + asset.meta = { Name = "Blue Marble Next Generation (Utah)", - Version = "1.0", + Version = "1.1", Description = [[ Web loaded full resolution map of Blue Marble Next Generation. This map is hosted on the OpenSpace servers in Utah]], Author = "OpenSpace Team", URL = "https://visibleearth.nasa.gov/collection/1484/blue-marble", - License = "NASA", - Identifiers = {"BMNG_Utah"} + License = "NASA" } diff --git a/data/assets/scene/solarsystem/planets/earth/map_service_configs/Utah/Bmng.wms b/data/assets/scene/solarsystem/planets/earth/layers/colorlayers/bmng_utah.wms similarity index 100% rename from data/assets/scene/solarsystem/planets/earth/map_service_configs/Utah/Bmng.wms rename to data/assets/scene/solarsystem/planets/earth/layers/colorlayers/bmng_utah.wms diff --git a/data/assets/scene/solarsystem/planets/earth/layers/colorlayers/esri_imagery_world_2D.asset b/data/assets/scene/solarsystem/planets/earth/layers/colorlayers/esri_imagery_world_2D.asset index 50434a2e16..d9b0535964 100644 --- a/data/assets/scene/solarsystem/planets/earth/layers/colorlayers/esri_imagery_world_2D.asset +++ b/data/assets/scene/solarsystem/planets/earth/layers/colorlayers/esri_imagery_world_2D.asset @@ -1,10 +1,9 @@ -local mapServiceConfigsPath = asset.localResource("./../../map_service_configs") -local globeIdentifier = asset.require("./../../earth").Earth.Identifier +local globeIdentifier = asset.require("../../earth").Earth.Identifier local layer = { Identifier = "ESRI_Imagery_World_2D", Name = "ESRI Imagery World 2D", - FilePath = mapServiceConfigsPath .. "/ESRI/ESRI_Imagery_World_2D.wms", + FilePath = asset.localResource("esri_imagery_world_2D.wms"), Description = [[This map presents low-resolution imagery for the world and high-resolution imagery for the United States and other metropolitan areas around the world. The map includes NASA Blue Marble: Next Generation 500m resolution @@ -16,19 +15,23 @@ local layer = { (Description from URL)]], } -asset.onInitialize(function () +asset.onInitialize(function() openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer) end) +asset.onDeinitialize(function() + openspace.globebrowsing.deleteLayer(globeIdentifier, "ColorLayers", layer) +end) + asset.export("layer", layer) + asset.meta = { Name = "ESRI Imagery World 2D", - Version = "1.0", + Version = "1.1", Description = [[Older 2D imager map layer for Earth. This layer is hosted by ESRI.]], Author = "ESRI", URL = "https://www.arcgis.com/home/item.html?id=21b4ba14d9e5472d97afcbb819f7368e", - License = "Esri Master License Agreement", - Identifiers = {"ESRI_Imagery_World_2D"} + License = "Esri Master License Agreement" } diff --git a/data/assets/scene/solarsystem/planets/earth/map_service_configs/ESRI/ESRI_Imagery_World_2D.wms b/data/assets/scene/solarsystem/planets/earth/layers/colorlayers/esri_imagery_world_2D.wms similarity index 100% rename from data/assets/scene/solarsystem/planets/earth/map_service_configs/ESRI/ESRI_Imagery_World_2D.wms rename to data/assets/scene/solarsystem/planets/earth/layers/colorlayers/esri_imagery_world_2D.wms diff --git a/data/assets/scene/solarsystem/planets/earth/layers/colorlayers/esri_viirs_combo.asset b/data/assets/scene/solarsystem/planets/earth/layers/colorlayers/esri_viirs_combo.asset index ace6f96a5d..2ada31b94e 100644 --- a/data/assets/scene/solarsystem/planets/earth/layers/colorlayers/esri_viirs_combo.asset +++ b/data/assets/scene/solarsystem/planets/earth/layers/colorlayers/esri_viirs_combo.asset @@ -1,5 +1,4 @@ -local mapServiceConfigsPath = asset.localResource("./../../map_service_configs") -local globeIdentifier = asset.require("./../../earth").Earth.Identifier +local globeIdentifier = asset.require("../../earth").Earth.Identifier local fallBackLayer = asset.require("./fallbacks/blue_marble").layer @@ -14,14 +13,20 @@ local layer = { Identifier = "Temporal_VIIRS_SNPP", Name = "Temporal VIIRS SNPP", Type = "TemporalTileLayer", - FilePath = openspace.globebrowsing.createTemporalGibsGdalXml( - "VIIRS_SNPP_CorrectedReflectance_TrueColor", - "2015-11-24", - "Today", - "1d", - "250m", - "jpg" - ), + Mode = "Prototyped", + Prototyped = { + Time = { + Start = "2015-11-24", + End = "Today" + }, + TemporalResolution = "1d", + TimeFormat = "YYYY-MM-DD", + Prototype = openspace.globebrowsing.createTemporalGibsGdalXml( + "VIIRS_SNPP_CorrectedReflectance_TrueColor", + "250m", + "jpg" + ) + }, PadTiles = false } }, @@ -30,7 +35,7 @@ local layer = { TileProvider = { Identifier = "ESRI_World_Imagery", Name = "ESRI World Imagery", - FilePath = mapServiceConfigsPath .. "/ESRI/World_Imagery.wms", + FilePath = asset.localResource("esri_world_imagery.wms"), PadTiles = false } }, @@ -41,20 +46,24 @@ local layer = { Imagery. "VIIRS SNPP (Temporal)" is faded out at tile level 4]] } -asset.onInitialize(function () +asset.onInitialize(function() openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer) end) +asset.onDeinitialize(function() + openspace.globebrowsing.deleteLayer(globeIdentifier, "ColorLayers", layer) +end) + asset.export("layer", layer) + asset.meta = { Name = "ESRI VIIRS Combo", - Version = "1.0", + Version = "1.1", Description = [[Level based layer combining "VIIRS SNPP (Temporal)" and ESRI World Imagery. "VIIRS SNPP (Temporal)" is faded out at tile level 4]], Author = "OpenSpace Tem", URL = "http://www.openspaceproject.com", - License = "MIT License", - Identifiers = {"ESRI_VIIRS_Combo"} + License = "MIT License" } diff --git a/data/assets/scene/solarsystem/planets/earth/layers/colorlayers/esri_world_imagery.asset b/data/assets/scene/solarsystem/planets/earth/layers/colorlayers/esri_world_imagery.asset index 6a2f064e8c..366b716326 100644 --- a/data/assets/scene/solarsystem/planets/earth/layers/colorlayers/esri_world_imagery.asset +++ b/data/assets/scene/solarsystem/planets/earth/layers/colorlayers/esri_world_imagery.asset @@ -1,10 +1,9 @@ -local mapServiceConfigsPath = asset.localResource("./../../map_service_configs") -local globeIdentifier = asset.require("./../../earth").Earth.Identifier +local globeIdentifier = asset.require("../../earth").Earth.Identifier local layer = { Identifier = "ESRI_World_Imagery", Name = "ESRI World Imagery", - FilePath = mapServiceConfigsPath .. "/ESRI/World_Imagery.wms", + FilePath = asset.localResource("esri_world_imagery.wms"), Description = [[World Imagery provides one meter or better satellite and aerial imagery in many parts of the world and lower resolution satellite imagery worldwide. The map includes 15m TerraColor imagery at small and mid-scales @@ -17,19 +16,23 @@ local layer = { ~1:280 scale. (Description from URL)]] } -asset.onInitialize(function () +asset.onInitialize(function() openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer) end) +asset.onDeinitialize(function() + openspace.globebrowsing.deleteLayer(globeIdentifier, "ColorLayers", layer) +end) + asset.export("layer", layer) + asset.meta = { Name = "ESRI World Imagery", - Version = "1.0", + Version = "1.1", Description = [[Main web loaded map layer for Earth. This layer is hosted by ESRI.]], Author = "ESRI", URL = "https://www.arcgis.com/home/item.html?id=10df2279f9684e4a9f6a7f08febac2a9", - License = "Esri Master License Agreement", - Identifiers = {"ESRI_World_Imagery"} + License = "Esri Master License Agreement" } diff --git a/data/assets/scene/solarsystem/planets/earth/map_service_configs/ESRI/World_Imagery.wms b/data/assets/scene/solarsystem/planets/earth/layers/colorlayers/esri_world_imagery.wms similarity index 100% rename from data/assets/scene/solarsystem/planets/earth/map_service_configs/ESRI/World_Imagery.wms rename to data/assets/scene/solarsystem/planets/earth/layers/colorlayers/esri_world_imagery.wms diff --git a/data/assets/scene/solarsystem/planets/earth/layers/colorlayers/fallbacks/blue_marble.asset b/data/assets/scene/solarsystem/planets/earth/layers/colorlayers/fallbacks/blue_marble.asset index ef07346d05..e068c4a668 100644 --- a/data/assets/scene/solarsystem/planets/earth/layers/colorlayers/fallbacks/blue_marble.asset +++ b/data/assets/scene/solarsystem/planets/earth/layers/colorlayers/fallbacks/blue_marble.asset @@ -1,10 +1,16 @@ -local texturesPath = asset.require("./../../../earth_textures").TexturesPath -local globeIdentifier = asset.require("./../../../earth").Earth.Identifier +local globeIdentifier = asset.require("../../../earth").Earth.Identifier + +local texturesPath = asset.syncedResource({ + Name = "Earth Textures", + Type = "HttpSynchronization", + Identifier = "earth_textures", + Version = 2 +}) local layer = { Identifier = "Blue_Marble", Name = "Blue Marble", - FilePath = texturesPath .. "/earth_bluemarble.jpg", + FilePath = texturesPath .. "earth_bluemarble.jpg", Description = [[ Earth image from Blue Marble Next Generation ]], } @@ -13,11 +19,10 @@ asset.export("layer", layer) asset.meta = { Name = "Blue Marble", - Version = "1.0", + Version = "1.1", Description = [[ Fallback layer for earth image if no internet is available. Contains Blue Marble Next Generation ]], Author = "OpenSpace Team", URL = "https://visibleearth.nasa.gov/collection/1484/blue-marble", - License = "NASA", - Identifiers = {"Blue_Marble"} + License = "NASA" } diff --git a/data/assets/scene/solarsystem/planets/earth/layers/colorlayers/ghrsst_l4_g1sst_sea_surface_temperature_temporal.asset b/data/assets/scene/solarsystem/planets/earth/layers/colorlayers/ghrsst_l4_g1sst_sea_surface_temperature_temporal.asset index bb8330360e..09327fd249 100644 --- a/data/assets/scene/solarsystem/planets/earth/layers/colorlayers/ghrsst_l4_g1sst_sea_surface_temperature_temporal.asset +++ b/data/assets/scene/solarsystem/planets/earth/layers/colorlayers/ghrsst_l4_g1sst_sea_surface_temperature_temporal.asset @@ -1,37 +1,47 @@ -local globeIdentifier = asset.require("./../../earth").Earth.Identifier +local globeIdentifier = asset.require("../../earth").Earth.Identifier local layer = { Identifier = "GHRSST_L4_G1SST_Sea_Surface_Temperature_Temporal", Name = "GHRSST L4 G1SST Sea Surface Temperature (Temporal)", Type = "TemporalTileLayer", - FilePath = openspace.globebrowsing.createTemporalGibsGdalXml( - "GHRSST_L4_G1SST_Sea_Surface_Temperature", - "2010-06-21", - "2019-12-08", - "1d", - "1km", - "png" - ), + Mode = "Prototyped", + Prototyped = { + Time = { + Start = "2010-06-21", + End = "2019-12-08" + }, + TemporalResolution = "1d", + TimeFormat = "YYYY-MM-DD", + Prototype = openspace.globebrowsing.createTemporalGibsGdalXml( + "GHRSST_L4_G1SST_Sea_Surface_Temperature", + "1km", + "png" + ) + }, Description = [[ Temporal coverage: 21 June 2010 - 08 December 2019. The imagery resolution is 1 km, and the temporal resolution is daily.]], Author = "NASA EOSDIS Global Imagery Browse Services" } -asset.onInitialize(function () +asset.onInitialize(function() openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer) end) +asset.onDeinitialize(function() + openspace.globebrowsing.deleteLayer(globeIdentifier, "ColorLayers", layer) +end) + asset.export("layer", layer) + asset.meta = { Name = "GHRSST L4 MUR Sea Surface Temperature (Temporal)", - Version = "1.0", + Version = "1.1", Description = [[ GIBS hosted layer created with openspace.globebrowsing.createTemporalGibsGdalXml ]], Author = "NASA EOSDIS Global Imagery Browse Services", URL = "https://earthdata.nasa.gov/eosdis/science-system-description/" .. "eosdis-components/gibs", - License = "NASA", - Identifiers = {"GHRSST_L4_G1SST_Sea_Surface_Temperature_Temporal"} + License = "NASA" } diff --git a/data/assets/scene/solarsystem/planets/earth/layers/colorlayers/ghrsst_l4_mur_sea_surface_temperature_temporal.asset b/data/assets/scene/solarsystem/planets/earth/layers/colorlayers/ghrsst_l4_mur_sea_surface_temperature_temporal.asset index e0ba5eba41..7379b12da1 100644 --- a/data/assets/scene/solarsystem/planets/earth/layers/colorlayers/ghrsst_l4_mur_sea_surface_temperature_temporal.asset +++ b/data/assets/scene/solarsystem/planets/earth/layers/colorlayers/ghrsst_l4_mur_sea_surface_temperature_temporal.asset @@ -1,36 +1,46 @@ -local globeIdentifier = asset.require("./../../earth").Earth.Identifier +local globeIdentifier = asset.require("../../earth").Earth.Identifier local layer = { Identifier = "GHRSST_L4_MUR_Sea_Surface_Temperature_Temporal", Name = "GHRSST L4 MUR Sea Surface Temperature (Temporal)", Type = "TemporalTileLayer", - FilePath = openspace.globebrowsing.createTemporalGibsGdalXml( - "GHRSST_L4_MUR_Sea_Surface_Temperature", - "2002-06-01", - "Yesterday", - "1d", - "1km", - "png" - ), + Mode = "Prototyped", + Prototyped = { + Time = { + Start = "2002-06-01", + End = "Yesterday" + }, + TemporalResolution = "1d", + TimeFormat = "YYYY-MM-DD", + Prototype = openspace.globebrowsing.createTemporalGibsGdalXml( + "GHRSST_L4_MUR_Sea_Surface_Temperature", + "1km", + "png" + ) + }, Description = [[ Temporal coverage: 01 June 2002 - Present. The imagery resolution is 1 km, and the temporal resolution is daily.]] } -asset.onInitialize(function () +asset.onInitialize(function() openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer) end) +asset.onDeinitialize(function() + openspace.globebrowsing.deleteLayer(globeIdentifier, "ColorLayers", layer) +end) + asset.export("layer", layer) + asset.meta = { Name = "GHRSST L4 MUR Sea Surface Temperature (Temporal)", - Version = "1.0", + Version = "1.1", Description = [[ GIBS hosted layer created with openspace.globebrowsing.createTemporalGibsGdalXml ]], Author = "NASA EOSDIS Global Imagery Browse Services", URL = "https://earthdata.nasa.gov/eosdis/science-system-description/".. "eosdis-components/gibs", - License = "NASA", - Identifiers = {"GHRSST_L4_MUR_Sea_Surface_Temperature_Temporal"} + License = "NASA" } diff --git a/data/assets/scene/solarsystem/planets/earth/layers/colorlayers/modis_terra_chlorophyll_a_temporal.asset b/data/assets/scene/solarsystem/planets/earth/layers/colorlayers/modis_terra_chlorophyll_a_temporal.asset index 750e4910bf..5df5ecb4a6 100644 --- a/data/assets/scene/solarsystem/planets/earth/layers/colorlayers/modis_terra_chlorophyll_a_temporal.asset +++ b/data/assets/scene/solarsystem/planets/earth/layers/colorlayers/modis_terra_chlorophyll_a_temporal.asset @@ -1,36 +1,46 @@ -local globeIdentifier = asset.require("./../../earth").Earth.Identifier +local globeIdentifier = asset.require("../../earth").Earth.Identifier local layer = { Identifier = "MODIS_Terra_Chlorophyll_A_Temporal", Name = "MODIS Terra Chlorophyll A (Temporal)", Type = "TemporalTileLayer", - FilePath = openspace.globebrowsing.createTemporalGibsGdalXml( + Mode = "Prototyped", + Prototyped = { + Time = { + Start = "2013-07-02", + End = "Yesterday" + }, + TemporalResolution = "1d", + TimeFormat = "YYYY-MM-DD", + Prototype = openspace.globebrowsing.createTemporalGibsGdalXml( "MODIS_Terra_Chlorophyll_A", - "2013-07-02", - "Yesterday", - "1d", "1km", "png" - ), + ) + }, Description = [[ Temporal coverage: 02 July 2013 - Present. The imagery resolution is 1 km, and the temporal resolution is daily.]] } -asset.onInitialize(function () +asset.onInitialize(function() openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer) end) +asset.onDeinitialize(function() + openspace.globebrowsing.deleteLayer(globeIdentifier, "ColorLayers", layer) +end) + asset.export("layer", layer) + asset.meta = { Name = "MODIS Terra Chlorophyll A (Temporal)", - Version = "1.0", + Version = "1.1", Description = [[ GIBS hosted layer created with openspace.globebrowsing.createTemporalGibsGdalXml ]], Author = "NASA EOSDIS Global Imagery Browse Services", URL = "https://earthdata.nasa.gov/eosdis/science-system-description/" .. "eosdis-components/gibs", - License = "NASA", - Identifiers = {"MODIS_Terra_Chlorophyll_A_Temporal"} + License = "NASA" } diff --git a/data/assets/scene/solarsystem/planets/earth/layers/colorlayers/terra_modis_temporal.asset b/data/assets/scene/solarsystem/planets/earth/layers/colorlayers/terra_modis_temporal.asset index 0eddfc5711..7b114f69c0 100644 --- a/data/assets/scene/solarsystem/planets/earth/layers/colorlayers/terra_modis_temporal.asset +++ b/data/assets/scene/solarsystem/planets/earth/layers/colorlayers/terra_modis_temporal.asset @@ -1,36 +1,46 @@ -local globeIdentifier = asset.require("./../../earth").Earth.Identifier +local globeIdentifier = asset.require("../../earth").Earth.Identifier local layer = { Identifier = "Terra_Modis_Temporal", Name = "Terra Modis (Temporal)", Type = "TemporalTileLayer", - FilePath = openspace.globebrowsing.createTemporalGibsGdalXml( - "MODIS_Terra_CorrectedReflectance_TrueColor", - "2000-02-24", - "Yesterday", - "1d", - "250m", - "jpg" - ), + Mode = "Prototyped", + Prototyped = { + Time = { + Start = "2000-02-24", + End = "Yesterday" + }, + TemporalResolution = "1d", + TimeFormat = "YYYY-MM-DD", + Prototype = openspace.globebrowsing.createTemporalGibsGdalXml( + "MODIS_Terra_CorrectedReflectance_TrueColor", + "250m", + "jpg" + ) + }, Description = [[ Temporal coverage: 02 July 2013 - Present. The imagery resolution is 1 km, and the temporal resolution is daily.]] } -asset.onInitialize(function () +asset.onInitialize(function() openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer) end) +asset.onDeinitialize(function() + openspace.globebrowsing.deleteLayer(globeIdentifier, "ColorLayers", layer) +end) + asset.export("layer", layer) + asset.meta = { Name = "Terra Modis (Temporal)", - Version = "1.0", + Version = "1.1", Description = [[ GIBS hosted layer created with openspace.globebrowsing.createTemporalGibsGdalXml ]], Author = "NASA EOSDIS Global Imagery Browse Services", URL = "https://earthdata.nasa.gov/eosdis/science-system-description/".. "eosdis-components/gibs", - License = "NASA", - Identifiers = {"Terra_Modis_Temporal"} + License = "NASA" } diff --git a/data/assets/scene/solarsystem/planets/earth/layers/colorlayers/viirs_snpp_temporal.asset b/data/assets/scene/solarsystem/planets/earth/layers/colorlayers/viirs_snpp_temporal.asset index 311347f2de..10a7ee86cf 100644 --- a/data/assets/scene/solarsystem/planets/earth/layers/colorlayers/viirs_snpp_temporal.asset +++ b/data/assets/scene/solarsystem/planets/earth/layers/colorlayers/viirs_snpp_temporal.asset @@ -1,36 +1,46 @@ -local globeIdentifier = asset.require("./../../earth").Earth.Identifier +local globeIdentifier = asset.require("../../earth").Earth.Identifier local layer = { Identifier = "VIIRS_SNPP_Temporal", Name = "VIIRS SNPP (Temporal)", Type = "TemporalTileLayer", - FilePath = openspace.globebrowsing.createTemporalGibsGdalXml( - "VIIRS_SNPP_CorrectedReflectance_TrueColor", - "2015-11-24", - "Yesterday", - "1d", - "250m", - "jpg" - ), + Mode = "Prototyped", + Prototyped = { + Time = { + Start = "2015-11-24", + End = "Yesterday" + }, + TemporalResolution = "1d", + TimeFormat = "YYYY-MM-DD", + Prototype = openspace.globebrowsing.createTemporalGibsGdalXml( + "VIIRS_SNPP_CorrectedReflectance_TrueColor", + "250m", + "jpg" + ) + }, Description = [[ Temporal coverage: 11 November 2015 - Present. The imagery resolution is 0.25 km, and the temporal resolution is daily.]] } -asset.onInitialize(function () +asset.onInitialize(function() openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer) end) +asset.onDeinitialize(function() + openspace.globebrowsing.deleteLayer(globeIdentifier, "ColorLayers", layer) +end) + asset.export("layer", layer) + asset.meta = { Name = "VIIRS SNPP (Temporal)", - Version = "1.0", + Version = "1.1", Description = [[ This layer has the best daily Earth Image. GIBS hosted layer created with openspace.globebrowsing.createTemporalGibsGdalXml ]], Author = "NASA EOSDIS Global Imagery Browse Services", URL = "https://earthdata.nasa.gov/eosdis/science-system-description/" .. "eosdis-components/gibs", - License = "NASA", - Identifiers = {"VIIRS_SNPP_Temporal"} + License = "NASA" } diff --git a/data/assets/scene/solarsystem/planets/earth/layers/heightlayers/fallbacks/blue_marble_height.asset b/data/assets/scene/solarsystem/planets/earth/layers/heightlayers/fallbacks/blue_marble_height.asset index 116faf265f..48c53c1afa 100644 --- a/data/assets/scene/solarsystem/planets/earth/layers/heightlayers/fallbacks/blue_marble_height.asset +++ b/data/assets/scene/solarsystem/planets/earth/layers/heightlayers/fallbacks/blue_marble_height.asset @@ -1,9 +1,14 @@ -local texturesPath = asset.require("./../../../earth_textures").TexturesPath +local texturesPath = asset.syncedResource({ + Name = "Earth Textures", + Type = "HttpSynchronization", + Identifier = "earth_textures", + Version = 2 +}) local layer = { Name = "Earth Bluemarble Height", Identifier = "Earth_Bluemarble_Height", - FilePath = texturesPath .. "/earth_bluemarble_height.jpg", + FilePath = texturesPath .. "earth_bluemarble_height.jpg", Description = [[ Topographic layer from Blue Marble Next Generation]] } @@ -12,11 +17,10 @@ asset.export("layer", layer) asset.meta = { Name = "Earth Bluemarble Height", - Version = "1.0", + Version = "1.1", Description = [[ Fallback layer for earth height if no internet is available. Contains Blue Marble Next Generation Topographic]], Author = "NASA", URL = "https://visibleearth.nasa.gov/collection/1484/blue-marble", - License = "NASA", - Identifiers = {"Earth_Bluemarble_Height"} + License = "NASA" } diff --git a/data/assets/scene/solarsystem/planets/earth/layers/heightlayers/terrain_tileset.asset b/data/assets/scene/solarsystem/planets/earth/layers/heightlayers/terrain_tileset.asset index 6cdfc6367b..3763b8cfb5 100644 --- a/data/assets/scene/solarsystem/planets/earth/layers/heightlayers/terrain_tileset.asset +++ b/data/assets/scene/solarsystem/planets/earth/layers/heightlayers/terrain_tileset.asset @@ -1,12 +1,10 @@ -local mapServiceConfigsPath = asset.localResource("./../../map_service_configs") -local globeIdentifier = asset.require("./../../earth").Earth.Identifier - +local globeIdentifier = asset.require("../../earth").Earth.Identifier local fallBackLayer = asset.require("./fallbacks/blue_marble_height").layer local layer = { Identifier = "Terrain_tileset", Name = "Terrain tileset", - FilePath = mapServiceConfigsPath .. "/ESRI/Terrain.wms", + FilePath = asset.localResource("terrain_tileset.wms"), TilePixelSize = 64, Fallback = fallBackLayer, Description = [[This globe layer presents elevation data at approximately 90m or 1km @@ -16,19 +14,23 @@ local layer = { data from the USGS elsewhere. Vertical units are measured in meters.]], } -asset.onInitialize(function () +asset.onInitialize(function() openspace.globebrowsing.addLayer(globeIdentifier, "HeightLayers", layer) end) +asset.onDeinitialize(function() + openspace.globebrowsing.deleteLayer(globeIdentifier, "HeightLayers", layer) +end) + asset.export("layer", layer) + asset.meta = { Name = "World Elevation (3D)", - Version = "1.0", + Version = "1.1", Description = [[Main web loaded height layer for Earth. This layer is hosted by ESRI.]], Author = "ESRI", URL = "https://www.arcgis.com/home/item.html?id=1b48cd3b6276416784fe90a68c580a89", - License = "Esri Master License Agreement", - Identifiers = {"Terrain_tileset"} + License = "Esri Master License Agreement" } diff --git a/data/assets/scene/solarsystem/planets/earth/map_service_configs/ESRI/Terrain.wms b/data/assets/scene/solarsystem/planets/earth/layers/heightlayers/terrain_tileset.wms similarity index 100% rename from data/assets/scene/solarsystem/planets/earth/map_service_configs/ESRI/Terrain.wms rename to data/assets/scene/solarsystem/planets/earth/layers/heightlayers/terrain_tileset.wms diff --git a/data/assets/scene/solarsystem/planets/earth/layers/nightlayers/earth_at_night_2012.asset b/data/assets/scene/solarsystem/planets/earth/layers/nightlayers/earth_at_night_2012.asset index 77a5ec4fd4..6ec0c09712 100644 --- a/data/assets/scene/solarsystem/planets/earth/layers/nightlayers/earth_at_night_2012.asset +++ b/data/assets/scene/solarsystem/planets/earth/layers/nightlayers/earth_at_night_2012.asset @@ -1,30 +1,33 @@ -local mapServiceConfigsPath = asset.localResource("./../../map_service_configs") -local globeIdentifier = asset.require("./../../earth").Earth.Identifier +local globeIdentifier = asset.require("../../earth").Earth.Identifier local fallBackLayer = asset.require("./fallbacks/earth_night_texture").layer local layer = { Identifier = "Earth_at_Night_2012", Name = "Earth at Night 2012", - FilePath = mapServiceConfigsPath .. "/GIBS/night/VIIRS_CityLights_2012.wms", + FilePath = asset.localResource("earth_at_night_2012.wms"), Fallback = fallBackLayer, Description = [[ The lights of cities and villages trace the outlines of civilization in this global view. ]], } -asset.onInitialize(function () +asset.onInitialize(function() openspace.globebrowsing.addLayer(globeIdentifier, "NightLayers", layer) end) +asset.onDeinitialize(function() + openspace.globebrowsing.deleteLayer(globeIdentifier, "NightLayers", layer) +end) + asset.export("layer", layer) + asset.meta = { Name = "Earth at Night 2012", - Version = "1.0", + Version = "1.1", Description = [[Main web loaded night layer for Earth. This layer is hosted by GIBS.]], Author = "OpenSpace Team", URL = "https://visibleearth.nasa.gov/images/79765/night-lights-2012-map", - License = "NASA", - Identifiers = {"Earth_at_Night_2012"} + License = "NASA" } diff --git a/data/assets/scene/solarsystem/planets/earth/map_service_configs/GIBS/night/VIIRS_CityLights_2012.wms b/data/assets/scene/solarsystem/planets/earth/layers/nightlayers/earth_at_night_2012.wms similarity index 100% rename from data/assets/scene/solarsystem/planets/earth/map_service_configs/GIBS/night/VIIRS_CityLights_2012.wms rename to data/assets/scene/solarsystem/planets/earth/layers/nightlayers/earth_at_night_2012.wms diff --git a/data/assets/scene/solarsystem/planets/earth/layers/nightlayers/earth_at_night_temporal.asset b/data/assets/scene/solarsystem/planets/earth/layers/nightlayers/earth_at_night_temporal.asset index f74bf463f4..3453f13b32 100644 --- a/data/assets/scene/solarsystem/planets/earth/layers/nightlayers/earth_at_night_temporal.asset +++ b/data/assets/scene/solarsystem/planets/earth/layers/nightlayers/earth_at_night_temporal.asset @@ -1,17 +1,23 @@ -local globeIdentifier = asset.require("./../../earth").Earth.Identifier +local globeIdentifier = asset.require("../../earth").Earth.Identifier local layer = { Identifier = "Earth_at_Night_Temporal", Name = "Earth at Night (Temporal)", Type = "TemporalTileLayer", - FilePath = openspace.globebrowsing.createTemporalGibsGdalXml( - "VIIRS_SNPP_DayNightBand_ENCC", - "2012-05-08", - "Yesterday", - "1d", - "500m", - "png" - ), + Mode = "Prototyped", + Prototyped = { + Time = { + Start = "2012-05-08", + End = "Yesterday" + }, + TemporalResolution = "1d", + TimeFormat = "YYYY-MM-DD", + Prototype = openspace.globebrowsing.createTemporalGibsGdalXml( + "VIIRS_SNPP_DayNightBand_ENCC", + "500m", + "png" + ) + }, Description = [[ The VIIRS Nighttime Imagery (Day/Night Band, Enhanced Near Constant Contrast) layer shows the Earth's surface and atmosphere using a sensor designed to capture low-light emission sources, under varying illumination conditions. It @@ -32,20 +38,24 @@ local layer = { temporal resolution is daily. (Description from NASA Worldview)]], } -asset.onInitialize(function () - openspace.globebrowsing.addLayer(globeIdentifier, "NightLayers", layer) +asset.onInitialize(function() + openspace.globebrowsing.addLayer(globeIdentifier, "NightLayers", layer) +end) + +asset.onDeinitialize(function() + openspace.globebrowsing.deleteLayer(globeIdentifier, "NightLayers", layer) end) asset.export("layer", layer) + asset.meta = { Name = "Earth at Night (Temporal)", - Version = "1.0", + Version = "1.1", Description = [[Temporal layer for earth with daily night image. This layer is a GIBS hosted layer created with openspace.globebrowsing.createTemporalGibsGdalXml ]], Author = "OpenSpace Team", URL = "https://worldview.earthdata.nasa.gov/?l=VIIRS_SNPP_DayNightBand_ENCC", - License = "NASA", - Identifiers = {"Earth_at_Night_Temporal"} + License = "NASA" } diff --git a/data/assets/scene/solarsystem/planets/earth/layers/nightlayers/fallbacks/earth_night_texture.asset b/data/assets/scene/solarsystem/planets/earth/layers/nightlayers/fallbacks/earth_night_texture.asset index 8ceae0261f..e4e20aceb4 100644 --- a/data/assets/scene/solarsystem/planets/earth/layers/nightlayers/fallbacks/earth_night_texture.asset +++ b/data/assets/scene/solarsystem/planets/earth/layers/nightlayers/fallbacks/earth_night_texture.asset @@ -1,9 +1,14 @@ -local texturesPath = asset.require("./../../../earth_textures").TexturesPath +local texturesPath = asset.syncedResource({ + Name = "Earth Textures", + Type = "HttpSynchronization", + Identifier = "earth_textures", + Version = 2 +}) local layer = { Identifier = "Earth_Night_Texture", Name = "Earth Night Texture", - FilePath = texturesPath .. "/earth_night.jpg", + FilePath = texturesPath .. "earth_night.jpg", Description = [[ Earth's city lights are clearly visible from space ]] } @@ -12,10 +17,9 @@ asset.export("layer", layer) asset.meta = { Name = "Blue Marble Night", - Version = "1.0", + Version = "1.1", Description = [[ Fallback layer for earth night image if no internet is available. ]], Author = "OpenSpace Team", URL = "https://visibleearth.nasa.gov/collection/1484/blue-marble", - License = "NASA", - Identifiers = {"Earth_Night_Texture"} + License = "NASA" } diff --git a/data/assets/scene/solarsystem/planets/earth/layers/overlays/coastlines.asset b/data/assets/scene/solarsystem/planets/earth/layers/overlays/coastlines.asset index 8ae8338119..ab44e00901 100644 --- a/data/assets/scene/solarsystem/planets/earth/layers/overlays/coastlines.asset +++ b/data/assets/scene/solarsystem/planets/earth/layers/overlays/coastlines.asset @@ -1,13 +1,27 @@ -local mapServiceConfigsPath = asset.localResource("./../../map_service_configs") -local globeIdentifier = asset.require("./../../earth").Earth.Identifier +local globeIdentifier = asset.require("../../earth").Earth.Identifier local layer = { Identifier = "Coastlines", - FilePath = mapServiceConfigsPath .. "/GIBS/overlays/Coastlines.wms" + FilePath = asset.localResource("coastlines.wms") } -asset.onInitialize(function () +asset.onInitialize(function() openspace.globebrowsing.addLayer(globeIdentifier, "Overlays", layer) end) +asset.onDeinitialize(function() + openspace.globebrowsing.deleteLayer(globeIdentifier, "Overlays", layer) +end) + asset.export("layer", layer) + + + +asset.meta = { + Name = "Earth Coastlines Layer", + Version = "1.0", + Description = [[ Coastlines layer for Earth globe.]], + Author = "OpenSpace Team", + URL = "http://openspaceproject.com", + License = "MIT license" +} diff --git a/data/assets/scene/solarsystem/planets/earth/map_service_configs/GIBS/overlays/Coastlines.wms b/data/assets/scene/solarsystem/planets/earth/layers/overlays/coastlines.wms similarity index 100% rename from data/assets/scene/solarsystem/planets/earth/map_service_configs/GIBS/overlays/Coastlines.wms rename to data/assets/scene/solarsystem/planets/earth/layers/overlays/coastlines.wms diff --git a/data/assets/scene/solarsystem/planets/earth/layers/overlays/coastlines_enabled.asset b/data/assets/scene/solarsystem/planets/earth/layers/overlays/coastlines_enabled.asset deleted file mode 100644 index 0260ed6ae3..0000000000 --- a/data/assets/scene/solarsystem/planets/earth/layers/overlays/coastlines_enabled.asset +++ /dev/null @@ -1,10 +0,0 @@ -local globeIdentifier = asset.require("./../../earth").Earth.Identifier - -local layer = asset.require("./coastlines").layer -layer.Enabled = true - -asset.onInitialize(function () - openspace.globebrowsing.addLayer(globeIdentifier, "Overlays", layer) -end) - -asset.export("layer", layer) diff --git a/data/assets/scene/solarsystem/planets/earth/layers/overlays/reference_features.asset b/data/assets/scene/solarsystem/planets/earth/layers/overlays/reference_features.asset index 6862852dfd..3232549cec 100644 --- a/data/assets/scene/solarsystem/planets/earth/layers/overlays/reference_features.asset +++ b/data/assets/scene/solarsystem/planets/earth/layers/overlays/reference_features.asset @@ -1,14 +1,28 @@ -local mapServiceConfigsPath = asset.localResource("./../../map_service_configs") -local globeIdentifier = asset.require("./../../earth").Earth.Identifier +local globeIdentifier = asset.require("../../earth").Earth.Identifier local layer = { Identifier = "Reference_Features", Name = "Reference Features", - FilePath = mapServiceConfigsPath .. "/GIBS/overlays/Reference_Features.wms" + FilePath = asset.localResource("reference_features.wms") } -asset.onInitialize(function () +asset.onInitialize(function() openspace.globebrowsing.addLayer(globeIdentifier, "Overlays", layer) end) +asset.onDeinitialize(function() + openspace.globebrowsing.deleteLayer(globeIdentifier, "Overlays", layer) +end) + asset.export("layer", layer) + + + +asset.meta = { + Name = "Earth Reference Features", + Version = "1.0", + Description = [[ Reference Features layer for Earth globe.]], + Author = "OpenSpace Team", + URL = "http://openspaceproject.com", + License = "MIT license" +} diff --git a/data/assets/scene/solarsystem/planets/earth/map_service_configs/GIBS/overlays/Reference_Features.wms b/data/assets/scene/solarsystem/planets/earth/layers/overlays/reference_features.wms similarity index 100% rename from data/assets/scene/solarsystem/planets/earth/map_service_configs/GIBS/overlays/Reference_Features.wms rename to data/assets/scene/solarsystem/planets/earth/layers/overlays/reference_features.wms diff --git a/data/assets/scene/solarsystem/planets/earth/layers/overlays/reference_labels.asset b/data/assets/scene/solarsystem/planets/earth/layers/overlays/reference_labels.asset index d998889fe7..254303aae0 100644 --- a/data/assets/scene/solarsystem/planets/earth/layers/overlays/reference_labels.asset +++ b/data/assets/scene/solarsystem/planets/earth/layers/overlays/reference_labels.asset @@ -1,14 +1,28 @@ -local mapServiceConfigsPath = asset.localResource("./../../map_service_configs") -local globeIdentifier = asset.require("./../../earth").Earth.Identifier +local globeIdentifier = asset.require("../../earth").Earth.Identifier local layer = { Identifier = "Reference_Labels", Name = "Reference Labels", - FilePath = mapServiceConfigsPath .. "/GIBS/overlays/Reference_Labels.wms" + FilePath = asset.localResource("reference_labels.wms") } -asset.onInitialize(function () +asset.onInitialize(function() openspace.globebrowsing.addLayer(globeIdentifier, "Overlays", layer) end) +asset.onDeinitialize(function() + openspace.globebrowsing.deleteLayer(globeIdentifier, "Overlays", layer) +end) + asset.export("layer", layer) + + + +asset.meta = { + Name = "Earth Reference Labels", + Version = "1.0", + Description = [[ Reference Labels layer for Earth globe.]], + Author = "OpenSpace Team", + URL = "http://openspaceproject.com", + License = "MIT license" +} diff --git a/data/assets/scene/solarsystem/planets/earth/map_service_configs/GIBS/overlays/Reference_Labels.wms b/data/assets/scene/solarsystem/planets/earth/layers/overlays/reference_labels.wms similarity index 100% rename from data/assets/scene/solarsystem/planets/earth/map_service_configs/GIBS/overlays/Reference_Labels.wms rename to data/assets/scene/solarsystem/planets/earth/layers/overlays/reference_labels.wms diff --git a/data/assets/scene/solarsystem/planets/earth/layers/overlays/size_reference.asset b/data/assets/scene/solarsystem/planets/earth/layers/overlays/size_reference.asset index 0be0291ada..7bec98489d 100644 --- a/data/assets/scene/solarsystem/planets/earth/layers/overlays/size_reference.asset +++ b/data/assets/scene/solarsystem/planets/earth/layers/overlays/size_reference.asset @@ -1,4 +1,4 @@ -local earthAsset = asset.require("./../../earth").Earth +local earthAsset = asset.require("../../earth").Earth local globeIdentifier = earthAsset.Identifier local layer ={ @@ -8,8 +8,23 @@ local layer ={ Radii = earthAsset.Renderable.Radii } -asset.onInitialize(function () +asset.onInitialize(function() openspace.globebrowsing.addLayer(globeIdentifier, "Overlays", layer) end) +asset.onDeinitialize(function() + openspace.globebrowsing.deleteLayer(globeIdentifier, "Overlays", layer) +end) + asset.export("layer", layer) + + + +asset.meta = { + Name = "Earth Size Reference", + Version = "1.0", + Description = [[ Size reference layer for Earth globe.]], + Author = "OpenSpace Team", + URL = "http://openspaceproject.com", + License = "MIT license" +} diff --git a/data/assets/scene/solarsystem/planets/earth/layers/overlays/tile_indices.asset b/data/assets/scene/solarsystem/planets/earth/layers/overlays/tile_indices.asset index 96b2fde089..0b863335b9 100644 --- a/data/assets/scene/solarsystem/planets/earth/layers/overlays/tile_indices.asset +++ b/data/assets/scene/solarsystem/planets/earth/layers/overlays/tile_indices.asset @@ -1,5 +1,4 @@ -local mapServiceConfigsPath = asset.localResource("./../../map_service_configs") -local globeIdentifier = asset.require("./../../earth").Earth.Identifier +local globeIdentifier = asset.require("../../earth").Earth.Identifier local layer = { Identifier = "Tile_Indices", @@ -7,8 +6,23 @@ local layer = { Type = "TileIndexTileLayer" } -asset.onInitialize(function () +asset.onInitialize(function() openspace.globebrowsing.addLayer(globeIdentifier, "Overlays", layer) end) +asset.onDeinitialize(function() + openspace.globebrowsing.deleteLayer(globeIdentifier, "Overlays", layer) +end) + asset.export("layer", layer) + + + +asset.meta = { + Name = "Earth Tile Indices", + Version = "1.0", + Description = [[ Tile index layer for Earth globe.]], + Author = "OpenSpace Team", + URL = "http://openspaceproject.com", + License = "MIT license" +} diff --git a/data/assets/scene/solarsystem/planets/earth/layers/watermasks/gebco_sweden.asset b/data/assets/scene/solarsystem/planets/earth/layers/watermasks/gebco_sweden.asset index 12d24ab479..5a916507a1 100644 --- a/data/assets/scene/solarsystem/planets/earth/layers/watermasks/gebco_sweden.asset +++ b/data/assets/scene/solarsystem/planets/earth/layers/watermasks/gebco_sweden.asset @@ -1,14 +1,28 @@ -local mapServiceConfigsPath = asset.localResource("./../../map_service_configs") -local globeIdentifier = asset.require("./../../earth").Earth.Identifier +local globeIdentifier = asset.require("../../earth").Earth.Identifier local layer = { Name = "Gebco [Sweden]", Identifier = "Gebco_Sweden", - FilePath = mapServiceConfigsPath .. "/LiU/Gebco.wms" + FilePath = asset.localResource("gebco_sweden.wms") } -asset.onInitialize(function () +asset.onInitialize(function() openspace.globebrowsing.addLayer(globeIdentifier, "WaterMasks", layer) end) +asset.onDeinitialize(function() + openspace.globebrowsing.deleteLayer(globeIdentifier, "WaterMasks", layer) +end) + asset.export("layer", layer) + + + +asset.meta = { + Name = "Gebco WaterMask Layer (Sweden)", + Version = "1.0", + Description = [[ WaterMask layer for Earth globe.]], + Author = "OpenSpace Team", + URL = "http://openspaceproject.com", + License = "MIT license" +} diff --git a/data/assets/scene/solarsystem/planets/earth/map_service_configs/LiU/Gebco.wms b/data/assets/scene/solarsystem/planets/earth/layers/watermasks/gebco_sweden.wms similarity index 100% rename from data/assets/scene/solarsystem/planets/earth/map_service_configs/LiU/Gebco.wms rename to data/assets/scene/solarsystem/planets/earth/layers/watermasks/gebco_sweden.wms diff --git a/data/assets/scene/solarsystem/planets/earth/layers/watermasks/gebco_utah.asset b/data/assets/scene/solarsystem/planets/earth/layers/watermasks/gebco_utah.asset index c7743814a5..531fd5647a 100644 --- a/data/assets/scene/solarsystem/planets/earth/layers/watermasks/gebco_utah.asset +++ b/data/assets/scene/solarsystem/planets/earth/layers/watermasks/gebco_utah.asset @@ -1,14 +1,28 @@ -local mapServiceConfigsPath = asset.localResource("./../../map_service_configs") -local globeIdentifier = asset.require("./../../earth").Earth.Identifier +local globeIdentifier = asset.require("../../earth").Earth.Identifier local layer = { Name = "Gebco [Utah]", Identifier = "Gebco_Utah", - FilePath = mapServiceConfigsPath .. "/Utah/Gebco.wms" + FilePath = asset.localResource("gebco_utah.wms") } -asset.onInitialize(function () +asset.onInitialize(function() openspace.globebrowsing.addLayer(globeIdentifier, "WaterMasks", layer) end) +asset.onDeinitialize(function() + openspace.globebrowsing.deleteLayer(globeIdentifier, "WaterMasks", layer) +end) + asset.export("layer", layer) + + + +asset.meta = { + Name = "Gebco WaterMask Layer (Utah)", + Version = "1.0", + Description = [[ WaterMask layer for Earth globe.]], + Author = "OpenSpace Team", + URL = "http://openspaceproject.com", + License = "MIT license" +} diff --git a/data/assets/scene/solarsystem/planets/earth/map_service_configs/Utah/Gebco.wms b/data/assets/scene/solarsystem/planets/earth/layers/watermasks/gebco_utah.wms similarity index 100% rename from data/assets/scene/solarsystem/planets/earth/map_service_configs/Utah/Gebco.wms rename to data/assets/scene/solarsystem/planets/earth/layers/watermasks/gebco_utah.wms diff --git a/data/assets/scene/solarsystem/planets/earth/layers/watermasks/modis_water_mask.asset b/data/assets/scene/solarsystem/planets/earth/layers/watermasks/modis_water_mask.asset index c46c102b7c..bfa47738a4 100644 --- a/data/assets/scene/solarsystem/planets/earth/layers/watermasks/modis_water_mask.asset +++ b/data/assets/scene/solarsystem/planets/earth/layers/watermasks/modis_water_mask.asset @@ -1,14 +1,29 @@ -local mapServiceConfigsPath = asset.localResource("./../../map_service_configs") -local globeIdentifier = asset.require("./../../earth").Earth.Identifier +local globeIdentifier = asset.require("../../earth").Earth.Identifier local layer = { Identifier = "MODIS_Water_Mask", Name = "MODIS Water Mask", - FilePath = mapServiceConfigsPath .. "/GIBS/water/MODIS_Water_Mask.wms", + FilePath = asset.localResource("modis_water_mask.wms") } -asset.onInitialize(function () +asset.onInitialize(function() openspace.globebrowsing.addLayer(globeIdentifier, "WaterMasks", layer) end) +asset.onDeinitialize(function() + openspace.globebrowsing.deleteLayer(globeIdentifier, "WaterMasks", layer) +end) + asset.export("layer", layer) + + + +asset.meta = { + Name = "MODIS Water Mask", + Version = "1.0", + Description = [[ MODIS Water Mask layer for Earth globe.]], + Author = "NASA EOSDIS Global Imagery Browse Services", + URL = "https://earthdata.nasa.gov/eosdis/science-system-description/".. + "eosdis-components/gibs", + License = "NASA" +} diff --git a/data/assets/scene/solarsystem/planets/earth/map_service_configs/GIBS/water/MODIS_Water_Mask.wms b/data/assets/scene/solarsystem/planets/earth/layers/watermasks/modis_water_mask.wms similarity index 100% rename from data/assets/scene/solarsystem/planets/earth/map_service_configs/GIBS/water/MODIS_Water_Mask.wms rename to data/assets/scene/solarsystem/planets/earth/layers/watermasks/modis_water_mask.wms diff --git a/data/assets/scene/solarsystem/planets/earth/magnetosphere/magnetosphere.asset b/data/assets/scene/solarsystem/planets/earth/magnetosphere/magnetosphere.asset index eb9a36404b..cb9afd3d94 100644 --- a/data/assets/scene/solarsystem/planets/earth/magnetosphere/magnetosphere.asset +++ b/data/assets/scene/solarsystem/planets/earth/magnetosphere/magnetosphere.asset @@ -1,5 +1,4 @@ -local assetHelper = asset.require('util/asset_helper') -local transforms = asset.require('./transforms_magnetosphere') +local transforms = asset.require("./transforms_magnetosphere") local transferFunction = asset.localResource("./CMR-illuminance2.txt") local fieldlinesDirectory = asset.syncedResource({ @@ -37,14 +36,22 @@ local earthMagnetosphere = { }, } -assetHelper.registerSceneGraphNodesAndExport(asset, { earthMagnetosphere }) +asset.onInitialize(function() + openspace.addSceneGraphNode(earthMagnetosphere) +end) + +asset.onDeinitialize(function() + openspace.removeSceneGraphNode(earthMagnetosphere) +end) + +asset.export(earthMagnetosphere) + asset.meta = { Name = "Static generic magnetosphere of fieldlines", - Version = "1.0", + Version = "1.1", Description = "Magnetic fieldlines for the bastille day CME event", Author = "CCMC", URL = "", - License = "", - Identifier = {"EarthMagnetosphere"} + License = "CC-BY" } diff --git a/data/assets/scene/solarsystem/planets/earth/magnetosphere/transforms_magnetosphere.asset b/data/assets/scene/solarsystem/planets/earth/magnetosphere/transforms_magnetosphere.asset index 3ceb18be2e..99491ba857 100644 --- a/data/assets/scene/solarsystem/planets/earth/magnetosphere/transforms_magnetosphere.asset +++ b/data/assets/scene/solarsystem/planets/earth/magnetosphere/transforms_magnetosphere.asset @@ -1,5 +1,4 @@ -local assetHelper = asset.require('util/asset_helper') -local transforms = asset.require('scene/solarsystem/planets/earth/transforms') +local transforms = asset.require("scene/solarsystem/planets/earth/transforms") asset.require("spice/base") local GSMKernel = asset.localResource("../kernels/GSM.ti") @@ -22,14 +21,22 @@ local GSMReferenceFrame = { } } -assetHelper.registerSceneGraphNodesAndExport(asset, { GSMReferenceFrame }) +asset.onInitialize(function() + openspace.addSceneGraphNode(GSMReferenceFrame) +end) + +asset.onDeinitialize(function() + openspace.removeSceneGraphNode(GSMReferenceFrame) +end) + +asset.export(GSMReferenceFrame) + asset.meta = { Name = "Earth magnetosphere transforms", - Version = "1.0", + Version = "1.1", Description = "Earth transforms: GSMReferenceFrame. Geocentric Solar Magnetospheric", Author = "CCMC", URL = "http://openspaceproject.com", - License = "MIT license", - Identifiers = {"GSMReferenceFrame"} + License = "MIT license" } diff --git a/data/assets/scene/solarsystem/planets/earth/map_service_configs/GIBS/Temporal_VIIRS_SNPP_CorrectedReflectance_TrueColor.wms b/data/assets/scene/solarsystem/planets/earth/map_service_configs/GIBS/Temporal_VIIRS_SNPP_CorrectedReflectance_TrueColor.wms deleted file mode 100644 index 0b1d8ea47b..0000000000 --- a/data/assets/scene/solarsystem/planets/earth/map_service_configs/GIBS/Temporal_VIIRS_SNPP_CorrectedReflectance_TrueColor.wms +++ /dev/null @@ -1,29 +0,0 @@ - - 2015-11-24 - Yesterday - 1d - YYYY-MM-DD - - - https://gibs.earthdata.nasa.gov/wmts/epsg4326/best/VIIRS_SNPP_CorrectedReflectance_TrueColor/default/${OpenSpaceTimeId}/250m/${z}/${y}/${x}.jpg - - - -180.0 - 90 - 396.0 - -198 - 8 - 2 - 1 - top - - EPSG:4326 - 512 - 512 - 3 - true - 400 - true - 5 - - diff --git a/data/assets/scene/solarsystem/planets/earth/map_service_configs/other/MLS_O3_46hPa_Day.wms b/data/assets/scene/solarsystem/planets/earth/map_service_configs/other/MLS_O3_46hPa_Day.wms deleted file mode 100644 index 888a1fcf2a..0000000000 --- a/data/assets/scene/solarsystem/planets/earth/map_service_configs/other/MLS_O3_46hPa_Day.wms +++ /dev/null @@ -1,20 +0,0 @@ - - - http://map1.vis.earthdata.nasa.gov/wmts-geo/MLS_O3_46hPa_Day/default/2013-08-21/EPSG4326_2km/${z}/${y}/${x}.png - - - -180.0 - 90 - 396.0 - -198 - 5 - 2 - 1 - top - - EPSG:4326 - 512 - 512 - 4 - 5 - \ No newline at end of file diff --git a/data/assets/scene/solarsystem/planets/earth/markers.asset b/data/assets/scene/solarsystem/planets/earth/markers.asset index 79971e6339..1d52f4682f 100644 --- a/data/assets/scene/solarsystem/planets/earth/markers.asset +++ b/data/assets/scene/solarsystem/planets/earth/markers.asset @@ -1,8 +1,12 @@ -local transforms = asset.require('./transforms') -local assetHelper = asset.require('util/asset_helper') -local texturesPath = asset.require('./earth_textures').TexturesPath +local transforms = asset.require("./transforms") +local texturesPath = asset.syncedResource({ + Name = "Earth Textures", + Type = "HttpSynchronization", + Identifier = "earth_textures", + Version = 2 +}) local EarthMarker = { Identifier = "EarthMarker", @@ -13,7 +17,7 @@ local EarthMarker = { Size = 3.0E11, Origin = "Center", Billboard = true, - Texture = texturesPath .. "/marker.png", + Texture = texturesPath .. "marker.png", BlendMode = "Additive" }, GUI = { @@ -22,15 +26,23 @@ local EarthMarker = { } } -assetHelper.registerSceneGraphNodesAndExport(asset, { EarthMarker }) +asset.onInitialize(function() + openspace.addSceneGraphNode(EarthMarker) +end) + +asset.onDeinitialize(function() + openspace.removeSceneGraphNode(EarthMarker) +end) + +asset.export(EarthMarker) + asset.meta = { Name = "Earth marker", - Version = "1.0", + Version = "1.1", Description = [[ Earth marker with name, sized for Solar System view]], Author = "OpenSpace Team", URL = "http://openspaceproject.com", - License = "MIT license", - Identifiers = {"EarthMarker"} + License = "MIT license" } diff --git a/data/assets/scene/solarsystem/planets/earth/moon/default_layers.asset b/data/assets/scene/solarsystem/planets/earth/moon/default_layers.asset index a3e6183411..8508881a65 100644 --- a/data/assets/scene/solarsystem/planets/earth/moon/default_layers.asset +++ b/data/assets/scene/solarsystem/planets/earth/moon/default_layers.asset @@ -1,23 +1,20 @@ -local colorLayersPath = "./layers/colorlayers" -local heightLayersPath = "./layers/heightlayers" - -- Color layers -local colorLayer = asset.require(colorLayersPath .. "/wac_utah") -asset.require(colorLayersPath .. "/wac_sweden") -asset.require(colorLayersPath .. "/clemuvvis_utah") -asset.require(colorLayersPath .. "/clemuvvis_sweden") -asset.require(colorLayersPath .. "/uvvishybrid_utah") -asset.require(colorLayersPath .. "/uvvishybrid_sweden") -asset.require(colorLayersPath .. "/kaguya_utah") -asset.require(colorLayersPath .. "/kaguya_sweden") -asset.require(colorLayersPath .. "/lola_clr_shade_utah") -asset.require(colorLayersPath .. "/lola_clr_shade_sweden") -asset.require(colorLayersPath .. "/lola_shade_utah") -asset.require(colorLayersPath .. "/lola_shade_sweden") +local colorLayer = asset.require("./layers/colorlayers/wac_utah") +asset.require("./layers/colorlayers/wac_sweden") +asset.require("./layers/colorlayers/clemuvvis_utah") +asset.require("./layers/colorlayers/clemuvvis_sweden") +asset.require("./layers/colorlayers/uvvishybrid_utah") +asset.require("./layers/colorlayers/uvvishybrid_sweden") +asset.require("./layers/colorlayers/kaguya_utah") +asset.require("./layers/colorlayers/kaguya_sweden") +asset.require("./layers/colorlayers/lola_clr_shade_utah") +asset.require("./layers/colorlayers/lola_clr_shade_sweden") +asset.require("./layers/colorlayers/lola_shade_utah") +asset.require("./layers/colorlayers/lola_shade_sweden") -- Height layers -local heightLayer = asset.require(heightLayersPath .. "/loladem_utah") -asset.require(heightLayersPath .. "/loladem_sweden") +local heightLayer = asset.require("./layers/heightlayers/loladem_utah") +asset.require("./layers/heightlayers/loladem_sweden") -- Set enabled layers (temporary solution) -- @TODO: do this using a boolean that's passed to the 'asset.require' instead @@ -27,3 +24,13 @@ asset.onInitialize(function () openspace.setPropertyValueSingle("Scene.Moon.Renderable.Layers.HeightLayers." .. heightLayer.layer.Identifier .. ".Enabled", true) end) + + +asset.meta = { + Name = "Default Moon layers", + Version = "1.0", + Description = [[This asset adds the default layers to the Moon globe.]], + Author = "OpenSpace Team", + URL = "http://openspaceproject.com", + License = "MIT license" +} diff --git a/data/assets/scene/solarsystem/planets/earth/moon/layers/colorlayers/clemuvvis_sweden.asset b/data/assets/scene/solarsystem/planets/earth/moon/layers/colorlayers/clemuvvis_sweden.asset index da78621a3d..36bbfc62c1 100644 --- a/data/assets/scene/solarsystem/planets/earth/moon/layers/colorlayers/clemuvvis_sweden.asset +++ b/data/assets/scene/solarsystem/planets/earth/moon/layers/colorlayers/clemuvvis_sweden.asset @@ -1,18 +1,37 @@ -local mapServiceConfigs = asset.localResource("./../../map_service_configs") -local globeIdentifier = asset.require("./../../moon").Moon.Identifier +local globeIdentifier = asset.require("../../moon").Moon.Identifier local layer = { Identifier = "ClemUvvis_Sweden", Name = "Clem Uvvis [Sweden]", - FilePath = mapServiceConfigs .. "/LiU/Clem_Uvvis.wms", + FilePath = asset.localResource("clemuvvis_sweden.wms"), Settings = { Gamma = 1.14, Multiplier = 1.4 - } + }, + Description = [[The Clementine Ultraviolet/Visible (UVVIS) Version 2 mosaic is a + grayscale data set representing the albedo (brightness of the lunar surface) as + measured at the 750 nanometer (nm) wavelength by the UVVIS camera (Lee, et al., 2009). + Resolution of this mosaic is 118 meters per pixel (m).]] } -asset.onInitialize(function () +asset.onInitialize(function() openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer) end) +asset.onDeinitialize(function() + openspace.globebrowsing.deleteLayer(globeIdentifier, "ColorLayers", layer) +end) + asset.export("layer", layer) + + + +asset.meta = { + Name = "Clem Uvvis [Sweden]", + Version = "1.1", + Description = [[Moon Clementine UVVIS Global Mosaic 118m v2 map of the Moon. This map + is hosted on the OpenSpace server in Sweden.]], + Author = "USGS", + URL = "https://astrogeology.usgs.gov/search/map/Moon/Clementine/UVVIS/Lunar_Clementine_UVVIS_750nm_Global_Mosaic_118m_v2", + License = "NASA/PDS" +} diff --git a/data/assets/scene/solarsystem/planets/earth/moon/map_service_configs/LiU/Clem_Uvvis.wms b/data/assets/scene/solarsystem/planets/earth/moon/layers/colorlayers/clemuvvis_sweden.wms similarity index 100% rename from data/assets/scene/solarsystem/planets/earth/moon/map_service_configs/LiU/Clem_Uvvis.wms rename to data/assets/scene/solarsystem/planets/earth/moon/layers/colorlayers/clemuvvis_sweden.wms diff --git a/data/assets/scene/solarsystem/planets/earth/moon/layers/colorlayers/clemuvvis_utah.asset b/data/assets/scene/solarsystem/planets/earth/moon/layers/colorlayers/clemuvvis_utah.asset index 6373dc4567..47de662ddf 100644 --- a/data/assets/scene/solarsystem/planets/earth/moon/layers/colorlayers/clemuvvis_utah.asset +++ b/data/assets/scene/solarsystem/planets/earth/moon/layers/colorlayers/clemuvvis_utah.asset @@ -1,18 +1,38 @@ -local mapServiceConfigs = asset.localResource("./../../map_service_configs") -local globeIdentifier = asset.require("./../../moon").Moon.Identifier +local globeIdentifier = asset.require("../../moon").Moon.Identifier local layer = { Identifier = "ClemUvvis_Utah", Name = "Clem Uvvis [Utah]", - FilePath = mapServiceConfigs .. "/Utah/ClemUvvis.wms", + FilePath = asset.localResource("clemuvvis_utah.wms"), Settings = { Gamma = 1.14, Multiplier = 1.4 - } + }, + Description = [[The Clementine Ultraviolet/Visible (UVVIS) Version 2 mosaic is a + grayscale data set representing the albedo (brightness of the lunar surface) as + measured at the 750 nanometer (nm) wavelength by the UVVIS camera (Lee, et al., 2009). + Resolution of this mosaic is 118 meters per pixel (m).]] } -asset.onInitialize(function () +asset.onInitialize(function() openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer) end) +asset.onDeinitialize(function() + openspace.globebrowsing.deleteLayer(globeIdentifier, "ColorLayers", layer) +end) + asset.export("layer", layer) + + + + +asset.meta = { + Name = "Clem Uvvis [Utah]", + Version = "1.1", + Description = [[Moon Clementine UVVIS Global Mosaic 118m v2 map of the Moon. This map + is hosted on the OpenSpace server in Utah.]], + Author = "USGS", + URL = "https://astrogeology.usgs.gov/search/map/Moon/Clementine/UVVIS/Lunar_Clementine_UVVIS_750nm_Global_Mosaic_118m_v2", + License = "NASA/PDS" +} diff --git a/data/assets/scene/solarsystem/planets/earth/moon/map_service_configs/Utah/ClemUvvis.wms b/data/assets/scene/solarsystem/planets/earth/moon/layers/colorlayers/clemuvvis_utah.wms similarity index 100% rename from data/assets/scene/solarsystem/planets/earth/moon/map_service_configs/Utah/ClemUvvis.wms rename to data/assets/scene/solarsystem/planets/earth/moon/layers/colorlayers/clemuvvis_utah.wms diff --git a/data/assets/scene/solarsystem/planets/earth/moon/layers/colorlayers/kaguya_sweden.asset b/data/assets/scene/solarsystem/planets/earth/moon/layers/colorlayers/kaguya_sweden.asset index 0189128dfa..b38d54fe8f 100644 --- a/data/assets/scene/solarsystem/planets/earth/moon/layers/colorlayers/kaguya_sweden.asset +++ b/data/assets/scene/solarsystem/planets/earth/moon/layers/colorlayers/kaguya_sweden.asset @@ -1,18 +1,36 @@ -local mapServiceConfigs = asset.localResource("./../../map_service_configs") -local globeIdentifier = asset.require("./../../moon").Moon.Identifier +local globeIdentifier = asset.require("../../moon").Moon.Identifier local layer = { Identifier = "Kaguya_Sweden", Name = "Kaguya [Sweden]", - FilePath = mapServiceConfigs .. "/LiU/Kaguya.vrt", + FilePath = asset.localResource("kaguya_sweden.vrt"), Settings = { Gamma = 1.0, Multiplier = 1.23 - } + }, + Description = [[This near-global mosaic was generated using data from the SELenological + and Engineering Explorer (SELENE) “Kaguya” Terrain Camera (TC) instrument. TC source + data originated as map-projected tiles at ~10 meters per pixel (m) spatial resolution.]] } -asset.onInitialize(function () +asset.onInitialize(function() openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer) end) +asset.onDeinitialize(function() + openspace.globebrowsing.deleteLayer(globeIdentifier, "ColorLayers", layer) +end) + asset.export("layer", layer) + + + +asset.meta = { + Name = "Kaguya [Sweden]", + Version = "1.1", + Description = [[Moon SELENE Kaguya TC Global Orthomosaic 474m v2 layer for Moon globe. + This map is hosted on the OpenSpace server in Sweden.]], + Author = "USGS", + URL = "https://astrogeology.usgs.gov/search/map/Moon/Kaguya/TC/Ortho/v02/Lunar_Kaguya_TC_Ortho_Global_64ppd_v02", + License = "NASA/PDS" +} diff --git a/data/assets/scene/solarsystem/planets/earth/moon/map_service_configs/Utah/Kaguya.vrt b/data/assets/scene/solarsystem/planets/earth/moon/layers/colorlayers/kaguya_sweden.vrt similarity index 90% rename from data/assets/scene/solarsystem/planets/earth/moon/map_service_configs/Utah/Kaguya.vrt rename to data/assets/scene/solarsystem/planets/earth/moon/layers/colorlayers/kaguya_sweden.vrt index e7ad44a020..7cbc265d32 100644 --- a/data/assets/scene/solarsystem/planets/earth/moon/map_service_configs/Utah/Kaguya.vrt +++ b/data/assets/scene/solarsystem/planets/earth/moon/layers/colorlayers/kaguya_sweden.vrt @@ -4,7 +4,7 @@ Gray - Kaguya.wms + kaguya_sweden.wms 1 @@ -15,7 +15,7 @@ Alpha 0 - Kaguya.wms + kaguya_sweden.wms 1 diff --git a/data/assets/scene/solarsystem/planets/earth/moon/map_service_configs/LiU/Kaguya.wms b/data/assets/scene/solarsystem/planets/earth/moon/layers/colorlayers/kaguya_sweden.wms similarity index 100% rename from data/assets/scene/solarsystem/planets/earth/moon/map_service_configs/LiU/Kaguya.wms rename to data/assets/scene/solarsystem/planets/earth/moon/layers/colorlayers/kaguya_sweden.wms diff --git a/data/assets/scene/solarsystem/planets/earth/moon/layers/colorlayers/kaguya_utah.asset b/data/assets/scene/solarsystem/planets/earth/moon/layers/colorlayers/kaguya_utah.asset index 3b9b74da33..42ccc9394e 100644 --- a/data/assets/scene/solarsystem/planets/earth/moon/layers/colorlayers/kaguya_utah.asset +++ b/data/assets/scene/solarsystem/planets/earth/moon/layers/colorlayers/kaguya_utah.asset @@ -1,18 +1,36 @@ -local mapServiceConfigs = asset.localResource("./../../map_service_configs") -local globeIdentifier = asset.require("./../../moon").Moon.Identifier +local globeIdentifier = asset.require("../../moon").Moon.Identifier local layer = { Identifier = "Kaguya_Utah", Name = "Kaguya [Utah]", - FilePath = mapServiceConfigs .. "/Utah/Kaguya.vrt", + FilePath = asset.localResource("kaguya_utah.vrt"), Settings = { Gamma = 1.0, Multiplier = 1.23 - } + }, + Description = [[This near-global mosaic was generated using data from the SELenological + and Engineering Explorer (SELENE) “Kaguya” Terrain Camera (TC) instrument. TC source + data originated as map-projected tiles at ~10 meters per pixel (m) spatial resolution.]] } -asset.onInitialize(function () +asset.onInitialize(function() openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer) end) +asset.onDeinitialize(function() + openspace.globebrowsing.deleteLayer(globeIdentifier, "ColorLayers", layer) +end) + asset.export("layer", layer) + + + +asset.meta = { + Name = "Kaguya [Utah]", + Version = "1.1", + Description = [[Moon SELENE Kaguya TC Global Orthomosaic 474m v2 layer for Moon globe. + This map is hosted on the OpenSpace server in Utah.]], + Author = "USGS", + URL = "https://astrogeology.usgs.gov/search/map/Moon/Kaguya/TC/Ortho/v02/Lunar_Kaguya_TC_Ortho_Global_64ppd_v02", + License = "NASA/PDS" +} diff --git a/data/assets/scene/solarsystem/planets/earth/moon/map_service_configs/LiU/Kaguya.vrt b/data/assets/scene/solarsystem/planets/earth/moon/layers/colorlayers/kaguya_utah.vrt similarity index 90% rename from data/assets/scene/solarsystem/planets/earth/moon/map_service_configs/LiU/Kaguya.vrt rename to data/assets/scene/solarsystem/planets/earth/moon/layers/colorlayers/kaguya_utah.vrt index e7ad44a020..083c93b573 100644 --- a/data/assets/scene/solarsystem/planets/earth/moon/map_service_configs/LiU/Kaguya.vrt +++ b/data/assets/scene/solarsystem/planets/earth/moon/layers/colorlayers/kaguya_utah.vrt @@ -4,7 +4,7 @@ Gray - Kaguya.wms + kaguya_utah.wms 1 @@ -15,7 +15,7 @@ Alpha 0 - Kaguya.wms + kaguya_utah.wms 1 diff --git a/data/assets/scene/solarsystem/planets/earth/moon/map_service_configs/Utah/Kaguya.wms b/data/assets/scene/solarsystem/planets/earth/moon/layers/colorlayers/kaguya_utah.wms similarity index 100% rename from data/assets/scene/solarsystem/planets/earth/moon/map_service_configs/Utah/Kaguya.wms rename to data/assets/scene/solarsystem/planets/earth/moon/layers/colorlayers/kaguya_utah.wms diff --git a/data/assets/scene/solarsystem/planets/earth/moon/layers/colorlayers/lola_clr_shade_sweden.asset b/data/assets/scene/solarsystem/planets/earth/moon/layers/colorlayers/lola_clr_shade_sweden.asset index 4fc3c33dca..e874b43ce9 100644 --- a/data/assets/scene/solarsystem/planets/earth/moon/layers/colorlayers/lola_clr_shade_sweden.asset +++ b/data/assets/scene/solarsystem/planets/earth/moon/layers/colorlayers/lola_clr_shade_sweden.asset @@ -1,14 +1,37 @@ -local mapServiceConfigs = asset.localResource("./../../map_service_configs") local globeIdentifier = asset.require("./../../moon").Moon.Identifier local layer = { Identifier = "Lola_Clr_Shade_Sweden", - Name = "Lola Color Shade [Sweden]", - FilePath = mapServiceConfigs .. "/LiU/Lola_Clr_Shade.wms" + Name = "LRO LOLA Color Shaded Relief 388m v4 [Sweden]", + Description = [[This is a colorized shaded-relief of a original polar digital elevation + model (DEM) from the Lunar Orbiter Laser Altimeter (LOLA; Smith et al., 2010), an + instrument on the National Aeronautics and Space Agency (NASA) Lunar Reconnaissance + Orbiter (LRO) spacecraft (Tooley et al., 2010). The DEM is a shape map (radius) of the + Moon at a resolution 100 meters per pixel (m) based on altimetry data acquired through + September, 2011 by the LOLA instrument. The ground tracks were interpolated using the + Generic Mapping Tools programs "surface" and "grdblend". Map values are referred to a + radius of 1,737,400 m.]], + FilePath = asset.localResource("lola_clr_shade_sweden.wms") } -asset.onInitialize(function () +asset.onInitialize(function() openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer) end) +asset.onDeinitialize(function() + openspace.globebrowsing.deleteLayer(globeIdentifier, "ColorLayers", layer) +end) + asset.export("layer", layer) + + + +asset.meta = { + Name = "Lola Color Shade [Sweden]", + Version = "1.1", + Description = [[Moon LRO LOLA Color Shaded Relief 388m v4 layer for Moon globe. This + map is hosted on the OpenSpace server in Sweden.]], + Author = "USGS", + URL = "https://astrogeology.usgs.gov/search/map/Moon/LMMP/LOLA-derived/Lunar_LRO_LOLA_ClrShade_Global_128ppd_v04", + License = "NASA/PDS" +} diff --git a/data/assets/scene/solarsystem/planets/earth/moon/map_service_configs/LiU/Lola_Clr_Shade.wms b/data/assets/scene/solarsystem/planets/earth/moon/layers/colorlayers/lola_clr_shade_sweden.wms similarity index 100% rename from data/assets/scene/solarsystem/planets/earth/moon/map_service_configs/LiU/Lola_Clr_Shade.wms rename to data/assets/scene/solarsystem/planets/earth/moon/layers/colorlayers/lola_clr_shade_sweden.wms diff --git a/data/assets/scene/solarsystem/planets/earth/moon/layers/colorlayers/lola_clr_shade_utah.asset b/data/assets/scene/solarsystem/planets/earth/moon/layers/colorlayers/lola_clr_shade_utah.asset index 6601a28585..c7a6b62336 100644 --- a/data/assets/scene/solarsystem/planets/earth/moon/layers/colorlayers/lola_clr_shade_utah.asset +++ b/data/assets/scene/solarsystem/planets/earth/moon/layers/colorlayers/lola_clr_shade_utah.asset @@ -1,14 +1,37 @@ -local mapServiceConfigs = asset.localResource("./../../map_service_configs") local globeIdentifier = asset.require("./../../moon").Moon.Identifier local layer = { Identifier = "Lola_Clr_Shade_Utah", - Name = "Lola Color Shade [Utah]", - FilePath = mapServiceConfigs .. "/Utah/LolaClrShade.wms" + Name = "LRO LOLA Color Shaded Relief 388m v4 [Utah]", + Description = [[This is a colorized shaded-relief of a original polar digital elevation + model (DEM) from the Lunar Orbiter Laser Altimeter (LOLA; Smith et al., 2010), an + instrument on the National Aeronautics and Space Agency (NASA) Lunar Reconnaissance + Orbiter (LRO) spacecraft (Tooley et al., 2010). The DEM is a shape map (radius) of the + Moon at a resolution 100 meters per pixel (m) based on altimetry data acquired through + September, 2011 by the LOLA instrument. The ground tracks were interpolated using the + Generic Mapping Tools programs "surface" and "grdblend". Map values are referred to a + radius of 1,737,400 m.]], + FilePath = asset.localResource("lola_clr_shade_utah.wms") } -asset.onInitialize(function () +asset.onInitialize(function() openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer) end) +asset.onDeinitialize(function() + openspace.globebrowsing.deleteLayer(globeIdentifier, "ColorLayers", layer) +end) + asset.export("layer", layer) + + + +asset.meta = { + Name = "Lola Color Shade [Utah]", + Version = "1.1", + Description = [[Moon LRO LOLA Color Shaded Relief 388m v4 layer for Moon globe. This + map is hosted on the OpenSpace server in Utah.]], + Author = "USGS", + URL = "https://astrogeology.usgs.gov/search/map/Moon/LMMP/LOLA-derived/Lunar_LRO_LOLA_ClrShade_Global_128ppd_v04", + License = "NASA/PDS" +} diff --git a/data/assets/scene/solarsystem/planets/earth/moon/map_service_configs/Utah/LolaClrShade.wms b/data/assets/scene/solarsystem/planets/earth/moon/layers/colorlayers/lola_clr_shade_utah.wms similarity index 100% rename from data/assets/scene/solarsystem/planets/earth/moon/map_service_configs/Utah/LolaClrShade.wms rename to data/assets/scene/solarsystem/planets/earth/moon/layers/colorlayers/lola_clr_shade_utah.wms diff --git a/data/assets/scene/solarsystem/planets/earth/moon/layers/colorlayers/lola_shade_sweden.asset b/data/assets/scene/solarsystem/planets/earth/moon/layers/colorlayers/lola_shade_sweden.asset index 142eb0a519..0b28493b38 100644 --- a/data/assets/scene/solarsystem/planets/earth/moon/layers/colorlayers/lola_shade_sweden.asset +++ b/data/assets/scene/solarsystem/planets/earth/moon/layers/colorlayers/lola_shade_sweden.asset @@ -1,14 +1,37 @@ -local mapServiceConfigs = asset.localResource("./../../map_service_configs") -local globeIdentifier = asset.require("./../../moon").Moon.Identifier +local globeIdentifier = asset.require("../../moon").Moon.Identifier local layer = { Identifier = "Lola_Shade_Sweden", Name = "Lola Shade [Sweden]", - FilePath = mapServiceConfigs .. "/LiU/Lola_Shade.wms" + Description = [[This is a shaded-relief of a original polar digital elevation model + (DEM) from the Lunar Orbiter Laser Altimeter (LOLA; Smith et al., 2010), an instrument + on the National Aeronautics and Space Agency (NASA) Lunar Reconnaissance Orbiter (LRO) + spacecraft (Tooley et al., 2010). The DEM is a shape map (radius) of the Moon at a + resolution 100 meters per pixel (m) based on altimetry data acquired through September, + 2011 by the LOLA instrument. The ground tracks were interpolated using the Generic + Mapping Tools programs "surface" and "grdblend". Map values are referred to a radius + of 1,737,400 m.]], + FilePath = asset.localResource("lola_shade_sweden.wms") } -asset.onInitialize(function () +asset.onInitialize(function() openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer) end) +asset.onDeinitialize(function() + openspace.globebrowsing.deleteLayer(globeIdentifier, "ColorLayers", layer) +end) + asset.export("layer", layer) + + + +asset.meta = { + Name = "Lola Shade [Sweden]", + Version = "1.1", + Description = [[Moon LRO LOLA Shaded Relief 237m v4 layer for Moon globe. This + map is hosted on the OpenSpace server in Sweden.]], + Author = "USGS", + URL = "https://astrogeology.usgs.gov/search/map/Moon/LMMP/LOLA-derived/Lunar_LRO_LOLA_Shade_Global_128ppd_v04", + License = "NASA/PDS" +} diff --git a/data/assets/scene/solarsystem/planets/earth/moon/map_service_configs/LiU/Lola_Shade.wms b/data/assets/scene/solarsystem/planets/earth/moon/layers/colorlayers/lola_shade_sweden.wms similarity index 100% rename from data/assets/scene/solarsystem/planets/earth/moon/map_service_configs/LiU/Lola_Shade.wms rename to data/assets/scene/solarsystem/planets/earth/moon/layers/colorlayers/lola_shade_sweden.wms diff --git a/data/assets/scene/solarsystem/planets/earth/moon/layers/colorlayers/lola_shade_utah.asset b/data/assets/scene/solarsystem/planets/earth/moon/layers/colorlayers/lola_shade_utah.asset index 90495dffed..4faaae1cb6 100644 --- a/data/assets/scene/solarsystem/planets/earth/moon/layers/colorlayers/lola_shade_utah.asset +++ b/data/assets/scene/solarsystem/planets/earth/moon/layers/colorlayers/lola_shade_utah.asset @@ -1,14 +1,38 @@ -local mapServiceConfigs = asset.localResource("./../../map_service_configs") -local globeIdentifier = asset.require("./../../moon").Moon.Identifier +local globeIdentifier = asset.require("../../moon").Moon.Identifier local layer = { Identifier = "Lola_Shade_Utah", Name = "Lola Shade [Utah]", - FilePath = mapServiceConfigs .. "/Utah/LolaShade.wms" + Description = [[This is a shaded-relief of a original polar digital elevation model + (DEM) from the Lunar Orbiter Laser Altimeter (LOLA; Smith et al., 2010), an instrument + on the National Aeronautics and Space Agency (NASA) Lunar Reconnaissance Orbiter (LRO) + spacecraft (Tooley et al., 2010). The DEM is a shape map (radius) of the Moon at a + resolution 100 meters per pixel (m) based on altimetry data acquired through September, + 2011 by the LOLA instrument. The ground tracks were interpolated using the Generic + Mapping Tools programs "surface" and "grdblend". Map values are referred to a radius + of 1,737,400 m.]], + FilePath = asset.localResource("lola_shade_utah.wms") } -asset.onInitialize(function () +asset.onInitialize(function() openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer) end) +asset.onDeinitialize(function() + openspace.globebrowsing.deleteLayer(globeIdentifier, "ColorLayers", layer) +end) + asset.export("layer", layer) + + + + +asset.meta = { + Name = "Lola Shade [Utah]", + Version = "1.1", + Description = [[Moon LRO LOLA Shaded Relief 237m v4 layer for Moon globe. This + map is hosted on the OpenSpace server in Utah.]], + Author = "USGS", + URL = "https://astrogeology.usgs.gov/search/map/Moon/LMMP/LOLA-derived/Lunar_LRO_LOLA_Shade_Global_128ppd_v04", + License = "NASA/PDS" +} diff --git a/data/assets/scene/solarsystem/planets/earth/moon/map_service_configs/Utah/LolaShade.wms b/data/assets/scene/solarsystem/planets/earth/moon/layers/colorlayers/lola_shade_utah.wms similarity index 100% rename from data/assets/scene/solarsystem/planets/earth/moon/map_service_configs/Utah/LolaShade.wms rename to data/assets/scene/solarsystem/planets/earth/moon/layers/colorlayers/lola_shade_utah.wms diff --git a/data/assets/scene/solarsystem/planets/earth/moon/layers/colorlayers/uvvishybrid_sweden.asset b/data/assets/scene/solarsystem/planets/earth/moon/layers/colorlayers/uvvishybrid_sweden.asset index 8cd547ae5b..16d8613ddc 100644 --- a/data/assets/scene/solarsystem/planets/earth/moon/layers/colorlayers/uvvishybrid_sweden.asset +++ b/data/assets/scene/solarsystem/planets/earth/moon/layers/colorlayers/uvvishybrid_sweden.asset @@ -1,18 +1,41 @@ -local mapServiceConfigs = asset.localResource("./../../map_service_configs") -local globeIdentifier = asset.require("./../../moon").Moon.Identifier +local globeIdentifier = asset.require("../../moon").Moon.Identifier local layer = { Identifier = "UvvisHybrid_Sweden", Name = "Uvvis Hybrid [Sweden]", - FilePath = mapServiceConfigs .. "/LiU/Uvvis_Hybrid.wms", + FilePath = asset.localResource("uvvishybrid_sweden.wms"), Settings = { Gamma = 0.52, Multiplier = 0.65 - } + }, + Description = [[The is a blend (or overlay) of the U.S. Geological Survey (USGS) + Clementine Ultraviolet/Visible (UVVIS) V2 mosaic and the original USGS Lunar Orbiter + mosaic. The Clementine 750 nm Version 2 mosaic is a grayscale data set representing the + albedo (brightness of the lunar surface) as measured at the 750 nm wavelength by the + UVVIS camera. The original base map was radiometrically and geometrically controlled, + photometrically modeled global image mosaic compiled using more than 43,000 images + from the 750 nanometer filter observations of the UVVIS (Lee et al., 2009).]] } -asset.onInitialize(function () +asset.onInitialize(function() openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer) end) +asset.onDeinitialize(function() + openspace.globebrowsing.deleteLayer(globeIdentifier, "ColorLayers", layer) +end) + asset.export("layer", layer) + + + + +asset.meta = { + Name = "Uvvis Hybrid [Sweden]", + Version = "1.1", + Description = [[Moon Lunar Orbiter - Clementine UVVISv2 Hybrid Mosaic 59m v1 + map of the Moon. This map is hosted on the OpenSpace server in Sweden.]], + Author = "USGS", + URL = "https://astrogeology.usgs.gov/search/map/Moon/Lunar-Orbiter/Lunar_LO_UVVISv2_Hybrid_Mosaic_Global_59m", + License = "NASA/PDS" +} diff --git a/data/assets/scene/solarsystem/planets/earth/moon/map_service_configs/LiU/Uvvis_Hybrid.wms b/data/assets/scene/solarsystem/planets/earth/moon/layers/colorlayers/uvvishybrid_sweden.wms similarity index 100% rename from data/assets/scene/solarsystem/planets/earth/moon/map_service_configs/LiU/Uvvis_Hybrid.wms rename to data/assets/scene/solarsystem/planets/earth/moon/layers/colorlayers/uvvishybrid_sweden.wms diff --git a/data/assets/scene/solarsystem/planets/earth/moon/layers/colorlayers/uvvishybrid_utah.asset b/data/assets/scene/solarsystem/planets/earth/moon/layers/colorlayers/uvvishybrid_utah.asset index 998b0e229f..3ee8388aa2 100644 --- a/data/assets/scene/solarsystem/planets/earth/moon/layers/colorlayers/uvvishybrid_utah.asset +++ b/data/assets/scene/solarsystem/planets/earth/moon/layers/colorlayers/uvvishybrid_utah.asset @@ -1,18 +1,40 @@ -local mapServiceConfigs = asset.localResource("./../../map_service_configs") -local globeIdentifier = asset.require("./../../moon").Moon.Identifier +local globeIdentifier = asset.require("../../moon").Moon.Identifier local layer = { Identifier = "UvvisHybrid_Utah", Name = "Uvvis Hybrid [Utah]", - FilePath = mapServiceConfigs .. "/Utah/UvvisHybrid.wms", + FilePath = asset.localResource("uvvishybrid_utah.wms"), Settings = { Gamma = 0.52, Multiplier = 0.65 - } + }, + Description = [[The is a blend (or overlay) of the U.S. Geological Survey (USGS) + Clementine Ultraviolet/Visible (UVVIS) V2 mosaic and the original USGS Lunar Orbiter + mosaic. The Clementine 750 nm Version 2 mosaic is a grayscale data set representing the + albedo (brightness of the lunar surface) as measured at the 750 nm wavelength by the + UVVIS camera. The original base map was radiometrically and geometrically controlled, + photometrically modeled global image mosaic compiled using more than 43,000 images + from the 750 nanometer filter observations of the UVVIS (Lee et al., 2009).]] } -asset.onInitialize(function () +asset.onInitialize(function() openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer) end) +asset.onDeinitialize(function() + openspace.globebrowsing.deleteLayer(globeIdentifier, "ColorLayers", layer) +end) + asset.export("layer", layer) + + + +asset.meta = { + Name = "Uvvis Hybrid [Utah]", + Version = "1.1", + Description = [[Moon Lunar Orbiter - Clementine UVVISv2 Hybrid Mosaic 59m v1 + map of the Moon. This map is hosted on the OpenSpace server in Utah.]], + Author = "USGS", + URL = "https://astrogeology.usgs.gov/search/map/Moon/Lunar-Orbiter/Lunar_LO_UVVISv2_Hybrid_Mosaic_Global_59m", + License = "NASA/PDS" +} diff --git a/data/assets/scene/solarsystem/planets/earth/moon/map_service_configs/Utah/UvvisHybrid.wms b/data/assets/scene/solarsystem/planets/earth/moon/layers/colorlayers/uvvishybrid_utah.wms similarity index 100% rename from data/assets/scene/solarsystem/planets/earth/moon/map_service_configs/Utah/UvvisHybrid.wms rename to data/assets/scene/solarsystem/planets/earth/moon/layers/colorlayers/uvvishybrid_utah.wms diff --git a/data/assets/scene/solarsystem/planets/earth/moon/layers/colorlayers/wac_sweden.asset b/data/assets/scene/solarsystem/planets/earth/moon/layers/colorlayers/wac_sweden.asset index 7dd38504d2..32f71977d8 100644 --- a/data/assets/scene/solarsystem/planets/earth/moon/layers/colorlayers/wac_sweden.asset +++ b/data/assets/scene/solarsystem/planets/earth/moon/layers/colorlayers/wac_sweden.asset @@ -1,15 +1,41 @@ -local mapServiceConfigs = asset.localResource("./../../map_service_configs") -local globeIdentifier = asset.require("./../../moon").Moon.Identifier +local globeIdentifier = asset.require("../../moon").Moon.Identifier local layer = { Identifier = "WAC_Sweden", Name = "WAC [Sweden]", - FilePath = mapServiceConfigs .. "/LiU/WAC.wms", + Description = [[Lunar Reconnaissance Orbiter Camera (LROC) Wide Angle + Camera (WAC) aboard the Lunar Reconnaissance Orbiter (LRO) has + allowed the instrument team to create a global mosaic comprised of + over 15,000 images acquired between November 2009 and February 2011. + The WAC maps the whole Moon in one month, however the solar incidence + angle at the equator changes about 28° from the beginning to the end + of the month. To even out the incidence angle variations (generally + angles between 55-75 degrees), this morphology mosaic (at 643 nm), + is comprised of data collected over three periods (1/20/2010 to + 1/28/2010, 5/30/2010 to 6/6/2010, 7/24/2010 to 7/31/2010). + (Description from URL).]], + FilePath = asset.localResource("wac_sweden.wms"), Settings = { Gamma = 0.84 } } -asset.onInitialize(function () +asset.onInitialize(function() openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer) end) +asset.onDeinitialize(function() + openspace.globebrowsing.deleteLayer(globeIdentifier, "ColorLayers", layer) +end) + asset.export("layer", layer) + + + +asset.meta = { + Name = "WAC [Sweden]", + Version = "1.1", + Description = [[Wide Angle Color map of the Moon. This map is hosted on + the OpenSpace server in Sweden.]], + Author = "USGS", + URL = "https://astrogeology.usgs.gov/search/map/Moon/LRO/LROC_WAC/Lunar_LRO_LROC-WAC_Mosaic_global_100m_June2013", + License = "NASA/PDS" +} diff --git a/data/assets/scene/solarsystem/planets/earth/moon/map_service_configs/LiU/WAC.wms b/data/assets/scene/solarsystem/planets/earth/moon/layers/colorlayers/wac_sweden.wms similarity index 100% rename from data/assets/scene/solarsystem/planets/earth/moon/map_service_configs/LiU/WAC.wms rename to data/assets/scene/solarsystem/planets/earth/moon/layers/colorlayers/wac_sweden.wms diff --git a/data/assets/scene/solarsystem/planets/earth/moon/layers/colorlayers/wac_utah.asset b/data/assets/scene/solarsystem/planets/earth/moon/layers/colorlayers/wac_utah.asset index cbdae49b2b..34c6fbd21d 100644 --- a/data/assets/scene/solarsystem/planets/earth/moon/layers/colorlayers/wac_utah.asset +++ b/data/assets/scene/solarsystem/planets/earth/moon/layers/colorlayers/wac_utah.asset @@ -1,15 +1,41 @@ -local mapServiceConfigs = asset.localResource("./../../map_service_configs") -local globeIdentifier = asset.require("./../../moon").Moon.Identifier +local globeIdentifier = asset.require("../../moon").Moon.Identifier local layer = { Identifier = "WAC_Utah", Name = "WAC [Utah]", - FilePath = mapServiceConfigs .. "/Utah/Wac.wms", - Settings = { Gamma = 0.84 } + FilePath = asset.localResource("wac_utah.wms"), + Settings = { Gamma = 0.84 }, + Description = [[Lunar Reconnaissance Orbiter Camera (LROC) Wide Angle + Camera (WAC) aboard the Lunar Reconnaissance Orbiter (LRO) has + allowed the instrument team to create a global mosaic comprised of + over 15,000 images acquired between November 2009 and February 2011. + The WAC maps the whole Moon in one month, however the solar incidence + angle at the equator changes about 28° from the beginning to the end + of the month. To even out the incidence angle variations (generally + angles between 55-75 degrees), this morphology mosaic (at 643 nm), + is comprised of data collected over three periods (1/20/2010 to + 1/28/2010, 5/30/2010 to 6/6/2010, 7/24/2010 to 7/31/2010). + (Description from URL).]] } -asset.onInitialize(function () +asset.onInitialize(function() openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer) end) +asset.onDeinitialize(function() + openspace.globebrowsing.deleteLayer(globeIdentifier, "ColorLayers", layer) +end) + asset.export("layer", layer) + + + +asset.meta = { + Name = "WAC [Utah]", + Version = "1.1", + Description = [[Wide Angle Color map of the Moon. This map is hosted on + the OpenSpace server in Utah.]], + Author = "USGS", + URL = "https://astrogeology.usgs.gov/search/map/Moon/LRO/LROC_WAC/Lunar_LRO_LROC-WAC_Mosaic_global_100m_June2013", + License = "NASA/PDS" +} diff --git a/data/assets/scene/solarsystem/planets/earth/moon/map_service_configs/Utah/Wac.wms b/data/assets/scene/solarsystem/planets/earth/moon/layers/colorlayers/wac_utah.wms similarity index 100% rename from data/assets/scene/solarsystem/planets/earth/moon/map_service_configs/Utah/Wac.wms rename to data/assets/scene/solarsystem/planets/earth/moon/layers/colorlayers/wac_utah.wms diff --git a/data/assets/scene/solarsystem/planets/earth/moon/layers/heightlayers/loladem_sweden.asset b/data/assets/scene/solarsystem/planets/earth/moon/layers/heightlayers/loladem_sweden.asset index bd26c272f3..3591bb2d7d 100644 --- a/data/assets/scene/solarsystem/planets/earth/moon/layers/heightlayers/loladem_sweden.asset +++ b/data/assets/scene/solarsystem/planets/earth/moon/layers/heightlayers/loladem_sweden.asset @@ -1,16 +1,31 @@ -local mapServiceConfigs = asset.localResource("./../../map_service_configs") -local globeIdentifier = asset.require("./../../moon").Moon.Identifier +local globeIdentifier = asset.require("../../moon").Moon.Identifier local layer = { Identifier = "LolaDem_Sweden", Name = "Lola DEM [Sweden]", - FilePath = mapServiceConfigs .. "/LiU/Lola_DEM.wms", + FilePath = asset.localResource("loladem_sweden.wms"), TilePixelSize = 64, Settings = { Multiplier = 0.5 } } -asset.onInitialize(function () +asset.onInitialize(function() openspace.globebrowsing.addLayer(globeIdentifier, "HeightLayers", layer) end) +asset.onDeinitialize(function() + openspace.globebrowsing.deleteLayer(globeIdentifier, "HeightLayers", layer) +end) + asset.export("layer", layer) + + + +asset.meta = { + Name = "Lola DEM [Sweden]", + Version = "1.1", + Description = [[Moon LRO LOLA DEM 118m v1 layer for Moon globe. This map is hosted on + the OpenSpace server in Sweden.]], + Author = "USGS", + URL = "https://astrogeology.usgs.gov/search/map/Moon/LRO/LOLA/Lunar_LRO_LOLA_Global_LDEM_118m_Mar2014", + License = "NASA/PDS" +} diff --git a/data/assets/scene/solarsystem/planets/earth/moon/map_service_configs/LiU/Lola_DEM.wms b/data/assets/scene/solarsystem/planets/earth/moon/layers/heightlayers/loladem_sweden.wms similarity index 100% rename from data/assets/scene/solarsystem/planets/earth/moon/map_service_configs/LiU/Lola_DEM.wms rename to data/assets/scene/solarsystem/planets/earth/moon/layers/heightlayers/loladem_sweden.wms diff --git a/data/assets/scene/solarsystem/planets/earth/moon/layers/heightlayers/loladem_utah.asset b/data/assets/scene/solarsystem/planets/earth/moon/layers/heightlayers/loladem_utah.asset index 9eea498607..fc1f0ca69b 100644 --- a/data/assets/scene/solarsystem/planets/earth/moon/layers/heightlayers/loladem_utah.asset +++ b/data/assets/scene/solarsystem/planets/earth/moon/layers/heightlayers/loladem_utah.asset @@ -1,16 +1,37 @@ -local mapServiceConfigs = asset.localResource("./../../map_service_configs") -local globeIdentifier = asset.require("./../../moon").Moon.Identifier +local globeIdentifier = asset.require("../../moon").Moon.Identifier local layer = { Identifier = "LolaDem_Utah", Name = "Lola DEM [Utah]", - FilePath = mapServiceConfigs .. "/Utah/LolaDem.wms", + FilePath = asset.localResource("loladem_utah.wms"), TilePixelSize = 64, - Settings = { Multiplier = 0.5 } + Settings = { Multiplier = 0.5 }, + Description = [[This digital elevation model (DEM) is based on data from the Lunar + Orbiter Laser Altimeter (LOLA; Smith et al., 2010), an instrument on the National + Aeronautics and Space Agency (NASA) Lunar Reconnaissance Orbiter (LRO) spacecraft + (Tooley et al., 2010). The created DEM represents more than 6.5 billion measurements + gathered between July 2009 and July 2013, adjusted for consistency in the coordinate + system described below, and then converted to lunar radii (Mazarico et al., 2012).]] } -asset.onInitialize(function () +asset.onInitialize(function() openspace.globebrowsing.addLayer(globeIdentifier, "HeightLayers", layer) end) +asset.onDeinitialize(function() + openspace.globebrowsing.deleteLayer(globeIdentifier, "HeightLayers", layer) +end) + asset.export("layer", layer) + + + +asset.meta = { + Name = "Lola DEM [Utah]", + Version = "1.1", + Description = [[Moon LRO LOLA DEM 118m v1 layer for Moon globe. This map is hosted on + the OpenSpace server in Utah.]], + Author = "USGS", + URL = "https://astrogeology.usgs.gov/search/map/Moon/LRO/LOLA/Lunar_LRO_LOLA_Global_LDEM_118m_Mar2014", + License = "NASA/PDS" +} diff --git a/data/assets/scene/solarsystem/planets/earth/moon/map_service_configs/Utah/LolaDem.wms b/data/assets/scene/solarsystem/planets/earth/moon/layers/heightlayers/loladem_utah.wms similarity index 100% rename from data/assets/scene/solarsystem/planets/earth/moon/map_service_configs/Utah/LolaDem.wms rename to data/assets/scene/solarsystem/planets/earth/moon/layers/heightlayers/loladem_utah.wms diff --git a/data/assets/scene/solarsystem/planets/earth/moon/layers/overlays/size_reference.asset b/data/assets/scene/solarsystem/planets/earth/moon/layers/overlays/size_reference.asset index bea21e595a..5f8e2a2513 100644 --- a/data/assets/scene/solarsystem/planets/earth/moon/layers/overlays/size_reference.asset +++ b/data/assets/scene/solarsystem/planets/earth/moon/layers/overlays/size_reference.asset @@ -1,4 +1,4 @@ -local moonAsset = asset.require("./../../moon").Moon +local moonAsset = asset.require("../../moon").Moon local globeIdentifier = moonAsset.Identifier local layer = { @@ -8,8 +8,23 @@ local layer = { Radii = moonAsset.Renderable.Radii } -asset.onInitialize(function () +asset.onInitialize(function() openspace.globebrowsing.addLayer(globeIdentifier, "Overlays", layer) end) +asset.onDeinitialize(function() + openspace.globebrowsing.deleteLayer(globeIdentifier, "Overlays", layer) +end) + asset.export("layer", layer) + + + +asset.meta = { + Name = "Moon Size Reference", + Version = "1.0", + Description = [[ Size reference layer for Moon globe.]], + Author = "OpenSpace Team", + URL = "http://openspaceproject.com", + License = "MIT license" +} diff --git a/data/assets/scene/solarsystem/planets/earth/moon/moon.asset b/data/assets/scene/solarsystem/planets/earth/moon/moon.asset index f3cd2cea9a..3d95a8d507 100644 --- a/data/assets/scene/solarsystem/planets/earth/moon/moon.asset +++ b/data/assets/scene/solarsystem/planets/earth/moon/moon.asset @@ -1,9 +1,14 @@ -local assetHelper = asset.require('util/asset_helper') -local transforms = asset.require('scene/solarsystem/planets/earth/transforms') -local sunAsset = asset.require('scene/solarsystem/sun/sun') -local earthAsset = asset.require('../earth') -asset.require('spice/base') -local labelsPath = asset.require('./moon_labels').LabelsPath +local transforms = asset.require("scene/solarsystem/planets/earth/transforms") +local sunAsset = asset.require("scene/solarsystem/sun/sun") +local earthAsset = asset.require("../earth") +asset.require("spice/base") + +local labelsPath = asset.syncedResource({ + Name = "Moon Labels", + Type = "HttpSynchronization", + Identifier = "moon_labels", + Version = 1 +}) local Moon = { Identifier = "Moon", @@ -35,7 +40,7 @@ local Moon = { }, Labels = { Enabled = false, - FileName = labelsPath .. "/moon.labels", + FileName = labelsPath .. "moon.labels", AlignmentOption = "Horizontally", -- or Circularly FontSize = 20.0, Size = 7.6, @@ -51,15 +56,23 @@ local Moon = { } } -assetHelper.registerSceneGraphNodesAndExport(asset, { Moon }) +asset.onInitialize(function() + openspace.addSceneGraphNode(Moon) +end) + +asset.onDeinitialize(function() + openspace.removeSceneGraphNode(Moon) +end) + +asset.export(Moon) + asset.meta = { Name = "Moon", - Version = "1.0", + Version = "1.1", Description = [[ Moon globe with labels. ]], Author = "OpenSpace Team", URL = "http://openspaceproject.com", - License = "MIT license", - Identifiers = {"Moon"} + License = "MIT license" } diff --git a/data/assets/scene/solarsystem/planets/earth/moon/moon_labels.asset b/data/assets/scene/solarsystem/planets/earth/moon/moon_labels.asset deleted file mode 100644 index 7cdc6f6c2a..0000000000 --- a/data/assets/scene/solarsystem/planets/earth/moon/moon_labels.asset +++ /dev/null @@ -1,8 +0,0 @@ -local LabelsPath = asset.syncedResource({ - Name = "Moon Labels", - Type = "HttpSynchronization", - Identifier = "moon_labels", - Version = 1 -}) - -asset.export("LabelsPath", LabelsPath) diff --git a/data/assets/scene/solarsystem/planets/earth/moon/trail.asset b/data/assets/scene/solarsystem/planets/earth/moon/trail.asset index 18d859d9ba..a5be241b0f 100644 --- a/data/assets/scene/solarsystem/planets/earth/moon/trail.asset +++ b/data/assets/scene/solarsystem/planets/earth/moon/trail.asset @@ -1,6 +1,5 @@ -local assetHelper = asset.require('util/asset_helper') -local transforms = asset.require('../transforms') -asset.require('spice/base') +local transforms = asset.require("../transforms") +asset.require("spice/base") @@ -25,16 +24,24 @@ local MoonTrail = { } } -assetHelper.registerSceneGraphNodesAndExport(asset, { MoonTrail }) +asset.onInitialize(function() + openspace.addSceneGraphNode(MoonTrail) +end) + +asset.onDeinitialize(function() + openspace.removeSceneGraphNode(MoonTrail) +end) + +asset.export(MoonTrail) + asset.meta = { Name = "Moon Trail", - Version = "1.0", + Version = "1.1", Description = [[ Moon Trail - This asset contains the trail of the Moon. Data from NASA Spice (see base spice asset)]], Author = "OpenSpace Team", URL = "http://openspaceproject.com", - License = "MIT license", - Identifiers = {"MoonTrail"} + License = "MIT license" } diff --git a/data/assets/scene/solarsystem/planets/earth/noaa-sos/atmosphere/2000_carbon_monoxide.asset b/data/assets/scene/solarsystem/planets/earth/noaa-sos/atmosphere/2000_carbon_monoxide.asset new file mode 100644 index 0000000000..2ad26a23d2 --- /dev/null +++ b/data/assets/scene/solarsystem/planets/earth/noaa-sos/atmosphere/2000_carbon_monoxide.asset @@ -0,0 +1,70 @@ +local globeIdentifier = asset.require("../../earth").Earth.Identifier + + +local Name = "Carbon Monoxide - 2000" +local Identifier = "noaa-sos-atmosphere-carbon_monoxide" +local Description = [[ Carbon monoxide is known as "The Silent Killer" because it is a +colorless, odorless, tasteless gas that is poisonous to humans and other oxygen breathing +organisms. It is also naturally occurring in the atmosphere. Only in high concentrations +is carbon monoxide deadly. At the Earth's surface the concentration of carbon monoxide is +100 ppb (parts per billion), however, in urban areas it can get up to 10 ppm (parts per +million) or 100 times higher. One of the main anthropogenic sources of carbon monoxide in +the atmosphere is emissions from automobiles. In areas with heavy traffic the carbon +monoxide can be measured at 50 ppm. The natural sources of carbon monoxide include +volcanoes and brush burning. Between the anthropogenic and natural sources, scientists +estimate that the annual production of carbon monoxide is 2-5 gigatons. ]] +local URL = "https://sos.noaa.gov/catalog/datasets/carbon-monoxide-2000/" + +local syncedDirectory = asset.syncedResource({ + Name = Name, + Type = "HttpSynchronization", + Identifier = Identifier, + Version = 1 +}) + +local imagesDestination = syncedDirectory .. "images" + +local layer = { + Identifier = Identifier, + Name = Name, + Type = "ImageSequenceTileLayer", + FolderPath = imagesDestination, + Description = Description +} + +local colorbar = { + Identifier = Identifier, + Name = Name, + Type = "ScreenSpaceImageLocal", + TexturePath = syncedDirectory .. "colorbar.png", + FaceCamera = false, + CartesianPosition = { 0.0, -0.5, -2.0 } +} + +asset.onInitialize(function() + if not openspace.directoryExists(imagesDestination) then + openspace.printInfo("Extracting " .. Name) + openspace.unzipFile(syncedDirectory .. "1024.zip", imagesDestination, true) + end + + openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer) + openspace.addScreenSpaceRenderable(colorbar); +end) + +asset.onDeinitialize(function() + openspace.globebrowsing.deleteLayer(globeIdentifier, "ColorLayers", layer) + openspace.removeScreenSpaceRenderable(colorbar) +end) + +asset.export(layer) +asset.export(colorbar) + + +asset.meta = { + Name = Name, + Version = "1.0", + Description = Description .. "Data provided by the National Oceanic and Atmospheric Administration.", + Author = "National Oceanic and Atmospheric Administration", + URL = URL, + License = "https://sos.noaa.gov/copyright/" +} diff --git a/data/assets/scene/solarsystem/planets/earth/noaa-sos/atmosphere/2004_ir_hurricane.asset b/data/assets/scene/solarsystem/planets/earth/noaa-sos/atmosphere/2004_ir_hurricane.asset new file mode 100644 index 0000000000..46c3081a6a --- /dev/null +++ b/data/assets/scene/solarsystem/planets/earth/noaa-sos/atmosphere/2004_ir_hurricane.asset @@ -0,0 +1,64 @@ +local globeIdentifier = asset.require("../../earth").Earth.Identifier + + +local Name = "Hurricane Season - 2004" +local Identifier = "noaa-sos-atmosphere-2004_ir_hurricane" +local Description = [[ The 2004 hurricane season started on July 31 with Hurricane Alex +and continued all the way through to December 2 with Tropical Storm Otto. The season +featured 15 tropical storms, 9 of which became hurricanes, and 6 of those were classified +as major hurricanes. This over-active hurricane season tallied up a bill of $42 billion +in damages, which at the time was record high. Florida took the brunt of the damage with +4 major hurricanes making landfall in the state. Two of the hurricanes, Frances and +Jeanne, landed in almost the same location on the east coast of Florida only 3 weeks +apart. It is estimated that one in every five homes in Florida was damaged in the 2004 +hurricane season. ]] +local URL = "https://sos.noaa.gov/catalog/datasets/hurricane-season-2004/" + + +local syncedDirectory = asset.syncedResource({ + Name = Name, + Type = "HttpSynchronization", + Identifier = Identifier, + Version = 1 +}) + +local imagesDestination = syncedDirectory .. "images" + +local layer = { + Identifier = Identifier, + Name = Name, + Type = "TemporalTileLayer", + Mode = "Folder", + Folder = { + Folder = imagesDestination, + -- See https://en.cppreference.com/w/cpp/io/manip/get_time for an explanation of the + -- time formatting string + Format = "cylir_%Y%m%d_%H%M.jpg" + }, + Description = Description +} + +asset.onInitialize(function() + if not openspace.directoryExists(imagesDestination) then + openspace.printInfo("Extracting " .. Name) + openspace.unzipFile(syncedDirectory .. "2048.zip", imagesDestination, true) + end + + openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer) +end) + +asset.onDeinitialize(function() + openspace.globebrowsing.deleteLayer(globeIdentifier, "ColorLayers", layer) +end) + +asset.export(layer) + + +asset.meta = { + Name = Name, + Version = "1.0", + Description = Description .. "Data provided by the National Oceanic and Atmospheric Administration.", + Author = "National Oceanic and Atmospheric Administration", + URL = URL, + License = "https://sos.noaa.gov/copyright/" +} diff --git a/data/assets/scene/solarsystem/planets/earth/noaa-sos/atmosphere/2005_hurricane-grayir.asset b/data/assets/scene/solarsystem/planets/earth/noaa-sos/atmosphere/2005_hurricane-grayir.asset new file mode 100644 index 0000000000..0f33967b5f --- /dev/null +++ b/data/assets/scene/solarsystem/planets/earth/noaa-sos/atmosphere/2005_hurricane-grayir.asset @@ -0,0 +1,76 @@ +local globeIdentifier = asset.require("../../earth").Earth.Identifier + + +local Name = "Hurricane Season - 2005" +local Identifier = "noaa-sos-atmosphere-2005_hurricane-grayir" +local Description = [[ "This hurricane season shattered records that have stood for +decades - most named storms, most hurricanes and most category five storms. Arguably, it +was the most devastating hurricane season the country has experienced in modern times," +said retired Navy Vice Adm. Conrad C. Lautenbacher, Jr., Ph.D., undersecretary of +commerce for oceans and atmosphere and NOAA administrator. ]] +local URL = "https://sos.noaa.gov/catalog/datasets/hurricane-season-2005/" + + +local syncedDirectory = asset.syncedResource({ + Name = Name, + Type = "HttpSynchronization", + Identifier = Identifier, + Version = 1 +}) + +local imagesDestination = syncedDirectory .. "images" + +local layer = { + Identifier = Identifier, + Name = Name, + Type = "TemporalTileLayer", + Mode = "Folder", + Folder = { + Folder = imagesDestination, + -- See https://en.cppreference.com/w/cpp/io/manip/get_time for an explanation of the + -- time formatting string + Format = "ir_combined_%Y%m%d_%H%M.jpg" + }, + Description = Description +} + +asset.onInitialize(function() + if not openspace.directoryExists(imagesDestination) then + openspace.printInfo("Extracting " .. Name) + openspace.unzipFile(syncedDirectory .. "4096-1.zip", imagesDestination, true) + openspace.unzipFile(syncedDirectory .. "4096-2.zip", imagesDestination, true) + openspace.unzipFile(syncedDirectory .. "4096-3.zip", imagesDestination, true) + openspace.unzipFile(syncedDirectory .. "4096-4.zip", imagesDestination, true) + openspace.unzipFile(syncedDirectory .. "4096-5.zip", imagesDestination, true) + openspace.unzipFile(syncedDirectory .. "4096-6.zip", imagesDestination, true) + openspace.unzipFile(syncedDirectory .. "4096-7.zip", imagesDestination, true) + openspace.unzipFile(syncedDirectory .. "4096-8.zip", imagesDestination, true) + openspace.unzipFile(syncedDirectory .. "4096-9.zip", imagesDestination, true) + openspace.unzipFile(syncedDirectory .. "4096-10.zip", imagesDestination, true) + openspace.unzipFile(syncedDirectory .. "4096-11.zip", imagesDestination, true) + openspace.unzipFile(syncedDirectory .. "4096-12.zip", imagesDestination, true) + openspace.unzipFile(syncedDirectory .. "4096-13.zip", imagesDestination, true) + openspace.unzipFile(syncedDirectory .. "4096-14.zip", imagesDestination, true) + openspace.unzipFile(syncedDirectory .. "4096-15.zip", imagesDestination, true) + openspace.unzipFile(syncedDirectory .. "4096-16.zip", imagesDestination, true) + openspace.unzipFile(syncedDirectory .. "4096-17.zip", imagesDestination, true) + end + + openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer) +end) + +asset.onDeinitialize(function() + openspace.globebrowsing.deleteLayer(globeIdentifier, "ColorLayers", layer) +end) + +asset.export(layer) + + +asset.meta = { + Name = Name, + Version = "1.0", + Description = Description .. "Data provided by the National Oceanic and Atmospheric Administration.", + Author = "National Oceanic and Atmospheric Administration", + URL = URL, + License = "https://sos.noaa.gov/copyright/" +} diff --git a/data/assets/scene/solarsystem/planets/earth/noaa-sos/atmosphere/2005_hurricane-wvsst.asset b/data/assets/scene/solarsystem/planets/earth/noaa-sos/atmosphere/2005_hurricane-wvsst.asset new file mode 100644 index 0000000000..45e5d246ec --- /dev/null +++ b/data/assets/scene/solarsystem/planets/earth/noaa-sos/atmosphere/2005_hurricane-wvsst.asset @@ -0,0 +1,60 @@ +local globeIdentifier = asset.require("../../earth").Earth.Identifier + + +local Name = "Hurricane Season: Water Vapor and SST - 2005" +local Identifier = "noaa-sos-atmosphere-2005_hurricane-wvsst" +local Description = [[ "This hurricane season shattered records that have stood for +decades - most named storms, most hurricanes and most category five storms. Arguably, it +was the most devastating hurricane season the country has experienced in modern times," +said retired Navy Vice Adm. Conrad C. Lautenbacher, Jr., Ph.D., undersecretary of +commerce for oceans and atmosphere and NOAA administrator. ]] +local URL = "https://sos.noaa.gov/catalog/datasets/hurricane-season-water-vapor-and-sst-2005/" + + +local syncedDirectory = asset.syncedResource({ + Name = Name, + Type = "HttpSynchronization", + Identifier = Identifier, + Version = 1 +}) + +local imagesDestination = syncedDirectory .. "images" + +local layer = { + Identifier = Identifier, + Name = Name, + Type = "TemporalTileLayer", + Mode = "Folder", + Folder = { + Folder = imagesDestination, + -- See https://en.cppreference.com/w/cpp/io/manip/get_time for an explanation of the + -- time formatting string + Format = "GI-WV-%y%j-%H%M.jpg" + }, + Description = Description +} + +asset.onInitialize(function() + if not openspace.directoryExists(imagesDestination) then + openspace.printInfo("Extracting " .. Name) + openspace.unzipFile(syncedDirectory .. "2048.zip", imagesDestination, true) + end + + openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer) +end) + +asset.onDeinitialize(function() + openspace.globebrowsing.deleteLayer(globeIdentifier, "ColorLayers", layer) +end) + +asset.export(layer) + + +asset.meta = { + Name = Name, + Version = "1.0", + Description = Description .. "Data provided by the National Oceanic and Atmospheric Administration.", + Author = "National Oceanic and Atmospheric Administration", + URL = URL, + License = "https://sos.noaa.gov/copyright/" +} diff --git a/data/assets/scene/solarsystem/planets/earth/noaa-sos/atmosphere/2012_hurricane.asset b/data/assets/scene/solarsystem/planets/earth/noaa-sos/atmosphere/2012_hurricane.asset new file mode 100644 index 0000000000..e5ff06d806 --- /dev/null +++ b/data/assets/scene/solarsystem/planets/earth/noaa-sos/atmosphere/2012_hurricane.asset @@ -0,0 +1,87 @@ +local globeIdentifier = asset.require("../../earth").Earth.Identifier + + +local Name = "Hurricane Season - 2012" +local Identifier = "noaa-sos-atmosphere-2012_hurricane" +local Description = [[ "It was an extremely devastating and destructive storm, hopefully +one that people will only see once in their lifetime," National Weather Service +meteorologist, Joe Pollina, said of Hurricane Sandy. The 2012 Atlantic Hurricane season +was tied with 1887, 1995, 2010 and 2011 as the third most active year in recorded +history, producing nineteen tropical cyclones and named storms, ten hurricanes and two +major hurricanes. Annual Atlantic hurricane predictions by NOAA and Colorado State +University fell short of the actual numbers despite raising their numbers after a record +active start to the season, which began on June 1st and ended on November 30th. The +Eastern Pacific season was moderately active. This dataset names all the Atlantic and +Pacific named tropical storms and hurricanes in 2012 from the Linear IR Satellite data +recorded by geostationary satellites. ]] +local URL = "https://sos.noaa.gov/catalog/datasets/hurricane-season-2012/" + + +local syncedDirectory = asset.syncedResource({ + Name = Name, + Type = "HttpSynchronization", + Identifier = Identifier, + Version = 1 +}) + +local namesDestination = syncedDirectory .. "names" +local satDestination = syncedDirectory .. "sat" + + +local layer_names = { + Identifier = Identifier .. "-names", + Name = Name .. " (Names)", + Type = "ImageSequenceTileLayer", + FolderPath = namesDestination, + Description = Description +} + +local layer_sat = { + Identifier = Identifier .. "-sat", + Name = Name .. " (Satellites)", + Type = "TemporalTileLayer", + Mode = "Folder", + Folder = { + Folder = satDestination, + -- See https://en.cppreference.com/w/cpp/io/manip/get_time for an explanation of the + -- time formatting string + Format = "linear_rgb_cyl_%Y%m%d_%H%M.jpg" + }, + Description = Description +} + +asset.onInitialize(function() + if not openspace.directoryExists(namesDestination) then + openspace.printInfo("Extracting " .. Name .. "Names") + openspace.unzipFile(syncedDirectory .. "names.zip", namesDestination, true) + end + + if not openspace.directoryExists(satDestination) then + openspace.printInfo("Extracting " .. Name) + openspace.unzipFile(syncedDirectory .. "sat-1.zip", satDestination, true) + openspace.unzipFile(syncedDirectory .. "sat-2.zip", satDestination, true) + openspace.unzipFile(syncedDirectory .. "sat-3.zip", satDestination, true) + openspace.unzipFile(syncedDirectory .. "sat-4.zip", satDestination, true) + end + + openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer_names) + openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer_sat) +end) + +asset.onDeinitialize(function() + openspace.globebrowsing.deleteLayer(globeIdentifier, "ColorLayers", layer_names) + openspace.globebrowsing.deleteLayer(globeIdentifier, "ColorLayers", layer_sat) +end) + +asset.export(layer_names) +asset.export(layer_sat) + + +asset.meta = { + Name = Name, + Version = "1.0", + Description = Description .. "Data provided by the National Oceanic and Atmospheric Administration.", + Author = "National Oceanic and Atmospheric Administration", + URL = URL, + License = "https://sos.noaa.gov/copyright/" +} diff --git a/data/assets/scene/solarsystem/planets/earth/noaa-sos/atmosphere/aerosol_blackcarbon.asset b/data/assets/scene/solarsystem/planets/earth/noaa-sos/atmosphere/aerosol_blackcarbon.asset new file mode 100644 index 0000000000..3ad4154a15 --- /dev/null +++ b/data/assets/scene/solarsystem/planets/earth/noaa-sos/atmosphere/aerosol_blackcarbon.asset @@ -0,0 +1,74 @@ +local globeIdentifier = asset.require("../../earth").Earth.Identifier + + +local Name = "Aerosols: Black Carbon" +local Identifier = "noaa-sos-atmosphere-aerosol-blackcarbon" +local Description = [[ With so many uncertainties attached to climate change, it is +important to look at all of the factors. As early as 1896, scientists have been analyzing +the presence of black carbon in the atmosphere. This group of three datasets looks at the +presence of aerosols in the Earth's atmosphere. The first dataset contains only black +carbon optical thickness, the second has sulfate optical thickness and the third has a +combination of both black carbon and sulfate optical thickness. The data is from January +31, 2007 and extends out 120 hours through February 4, 2007. Black carbon is commonly +known as soot. It is generated from burning fossil fuels and biomass fuels. Soot is the +result of incomplete combustion, especially of coal, diesel fuels, biofuels and other +biomass burnings. Sulfate is the result of sulfur dioxide and sulfur trioxide interacting +with other compounds in the atmosphere. Sulfate aerosols in the atmosphere are associated +with the combustion of fossil fuels and also the eruption of volcanoes like Mt. +Pinatubo. ]] +local URL = "https://sos.noaa.gov/catalog/datasets/aerosols-black-carbon/" + + +local syncedDirectory = asset.syncedResource({ + Name = Name, + Type = "HttpSynchronization", + Identifier = Identifier, + Version = 1 +}) + +local imagesDestination = syncedDirectory .. "images" + +local layer = { + Identifier = Identifier, + Name = Name, + Type = "ImageSequenceTileLayer", + FolderPath = imagesDestination, + Description = Description +} + +local colorbar = { + Identifier = Identifier, + Name = Name, + Type = "ScreenSpaceImageLocal", + TexturePath = syncedDirectory .. "colorbar.png", + FaceCamera = false, + CartesianPosition = { 0.0, -0.5, -2.0 } +} + +asset.onInitialize(function() + if not openspace.directoryExists(imagesDestination) then + openspace.printInfo("Extracting " .. Name) + openspace.unzipFile(syncedDirectory .. "2048_png.zip", imagesDestination, true) + end + + openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer) + openspace.addScreenSpaceRenderable(colorbar); +end) + +asset.onDeinitialize(function() + openspace.globebrowsing.deleteLayer(globeIdentifier, "ColorLayers", layer) + openspace.removeScreenSpaceRenderable(colorbar) +end) + +asset.export(layer) +asset.export(colorbar) + + +asset.meta = { + Name = Name, + Version = "1.0", + Description = Description .. "Data provided by the National Oceanic and Atmospheric Administration.", + Author = "National Oceanic and Atmospheric Administration", + URL = URL, + License = "https://sos.noaa.gov/copyright/" +} diff --git a/data/assets/scene/solarsystem/planets/earth/noaa-sos/atmosphere/aerosol_blackcarbon_and_sulfate.asset b/data/assets/scene/solarsystem/planets/earth/noaa-sos/atmosphere/aerosol_blackcarbon_and_sulfate.asset new file mode 100644 index 0000000000..881bdd51fc --- /dev/null +++ b/data/assets/scene/solarsystem/planets/earth/noaa-sos/atmosphere/aerosol_blackcarbon_and_sulfate.asset @@ -0,0 +1,74 @@ +local globeIdentifier = asset.require("../../earth").Earth.Identifier + + +local Name = "Aerosols: Black Carbon and Sulfate" +local Identifier = "noaa-sos-atmosphere-aerosol-blackcarbon_and_sulfate" +local Description = [[ With so many uncertainties attached to climate change, it is +important to look at all of the factors. As early as 1896, scientists have been analyzing +the presence of black carbon in the atmosphere. This group of three datasets looks at the +presence of aerosols in the Earth's atmosphere. The first dataset contains only black +carbon optical thickness, the second has sulfate optical thickness and the third has a +combination of both black carbon and sulfate optical thickness. The data is from January +31, 2007 and extends out 120 hours through February 4, 2007. Black carbon is commonly +known as soot. It is generated from burning fossil fuels and biomass fuels. Soot is the +result of incomplete combustion, especially of coal, diesel fuels, biofuels and other +biomass burnings. Sulfate is the result of sulfur dioxide and sulfur trioxide interacting +with other compounds in the atmosphere. Sulfate aerosols in the atmosphere are associated +with the combustion of fossil fuels and also the eruption of volcanoes like Mt. +Pinatubo. ]] +local URL = "https://sos.noaa.gov/catalog/datasets/aerosols-black-carbon-and-sulfate/" + + +local syncedDirectory = asset.syncedResource({ + Name = Name, + Type = "HttpSynchronization", + Identifier = Identifier, + Version = 1 +}) + +local imagesDestination = syncedDirectory .. "images" + +local layer = { + Identifier = Identifier, + Name = Name, + Type = "ImageSequenceTileLayer", + FolderPath = imagesDestination, + Description = Description +} + +local colorbar = { + Identifier = Identifier, + Name = Name, + Type = "ScreenSpaceImageLocal", + TexturePath = syncedDirectory .. "colorbar.png", + FaceCamera = false, + CartesianPosition = { 0.0, -0.5, -2.0 } +} + +asset.onInitialize(function() + if not openspace.directoryExists(imagesDestination) then + openspace.printInfo("Extracting " .. Name) + openspace.unzipFile(syncedDirectory .. "2048_png.zip", imagesDestination, true) + end + + openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer) + openspace.addScreenSpaceRenderable(colorbar); +end) + +asset.onDeinitialize(function() + openspace.globebrowsing.deleteLayer(globeIdentifier, "ColorLayers", layer) + openspace.removeScreenSpaceRenderable(colorbar) +end) + +asset.export(layer) +asset.export(colorbar) + + +asset.meta = { + Name = Name, + Version = "1.0", + Description = Description .. "Data provided by the National Oceanic and Atmospheric Administration.", + Author = "National Oceanic and Atmospheric Administration", + URL = URL, + License = "https://sos.noaa.gov/copyright/" +} diff --git a/data/assets/scene/solarsystem/planets/earth/noaa-sos/atmosphere/aerosol_sulfate.asset b/data/assets/scene/solarsystem/planets/earth/noaa-sos/atmosphere/aerosol_sulfate.asset new file mode 100644 index 0000000000..afadb4a0d9 --- /dev/null +++ b/data/assets/scene/solarsystem/planets/earth/noaa-sos/atmosphere/aerosol_sulfate.asset @@ -0,0 +1,74 @@ +local globeIdentifier = asset.require("../../earth").Earth.Identifier + + +local Name = "Aerosols: Sulfate" +local Identifier = "noaa-sos-atmosphere-aerosol-sulfate" +local Description = [[ With so many uncertainties attached to climate change, it is +important to look at all of the factors. As early as 1896, scientists have been analyzing +the presence of black carbon in the atmosphere. This group of three datasets looks at the +presence of aerosols in the Earth's atmosphere. The first dataset contains only black +carbon optical thickness, the second has sulfate optical thickness and the third has a +combination of both black carbon and sulfate optical thickness. The data is from January +31, 2007 and extends out 120 hours through February 4, 2007. Black carbon is commonly +known as soot. It is generated from burning fossil fuels and biomass fuels. Soot is the +result of incomplete combustion, especially of coal, diesel fuels, biofuels and other +biomass burnings. Sulfate is the result of sulfur dioxide and sulfur trioxide interacting +with other compounds in the atmosphere. Sulfate aerosols in the atmosphere are associated +with the combustion of fossil fuels and also the eruption of volcanoes like Mt. +Pinatubo. ]] +local URL = "https://sos.noaa.gov/catalog/datasets/aerosols-sulfate/" + + +local syncedDirectory = asset.syncedResource({ + Name = Name, + Type = "HttpSynchronization", + Identifier = Identifier, + Version = 1 +}) + +local imagesDestination = syncedDirectory .. "images" + +local layer = { + Identifier = Identifier, + Name = Name, + Type = "ImageSequenceTileLayer", + FolderPath = imagesDestination, + Description = Description +} + +local colorbar = { + Identifier = Identifier, + Name = Name, + Type = "ScreenSpaceImageLocal", + TexturePath = syncedDirectory .. "colorbar.png", + FaceCamera = false, + CartesianPosition = { 0.0, -0.5, -2.0 } +} + +asset.onInitialize(function() + if not openspace.directoryExists(imagesDestination) then + openspace.printInfo("Extracting " .. Name) + openspace.unzipFile(syncedDirectory .. "2048_png.zip", imagesDestination, true) + end + + openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer) + openspace.addScreenSpaceRenderable(colorbar); +end) + +asset.onDeinitialize(function() + openspace.globebrowsing.deleteLayer(globeIdentifier, "ColorLayers", layer) + openspace.removeScreenSpaceRenderable(colorbar) +end) + +asset.export(layer) +asset.export(colorbar) + + +asset.meta = { + Name = Name, + Version = "1.0", + Description = Description .. "Data provided by the National Oceanic and Atmospheric Administration.", + Author = "National Oceanic and Atmospheric Administration", + URL = URL, + License = "https://sos.noaa.gov/copyright/" +} diff --git a/data/assets/scene/solarsystem/planets/earth/noaa-sos/atmosphere/airtraffic.asset b/data/assets/scene/solarsystem/planets/earth/noaa-sos/atmosphere/airtraffic.asset new file mode 100644 index 0000000000..682e46efaa --- /dev/null +++ b/data/assets/scene/solarsystem/planets/earth/noaa-sos/atmosphere/airtraffic.asset @@ -0,0 +1,59 @@ +local globeIdentifier = asset.require("../../earth").Earth.Identifier + + +local Name = "Air Traffic" +local Identifier = "noaa-sos-atmosphere-air_traffic" +local Description = [[ "On any given day, more than 87,000 flights are in the skies in +the United States. Only one-third are commercial carriers, like American, United or +Southwest. On an average day, air traffic controllers handle 28,537 commercial flights +(major and regional airlines), 27,178 general aviation flights (private planes), 24,548 +air taxi flights (planes for hire), 5,260 military flights and 2,148 air cargo flights +(Federal Express, UPS, etc.). At any given moment, roughly 5,000 planes are in the skies +above the United States. In one year, controllers handle an average of 64 million +takeoffs and landings." - From the National Air Traffic Controllers Association webpage ]] +local URL = "https://sos.noaa.gov/catalog/datasets/air-traffic/" + + +local syncedDirectory = asset.syncedResource({ + Name = Name, + Type = "HttpSynchronization", + Identifier = Identifier, + Version = 1 +}) + +local imagesDestination = syncedDirectory .. "images" + +local layer = { + Identifier = Identifier, + Name = Name, + Type = "ImageSequenceTileLayer", + FolderPath = imagesDestination, + Description = Description +} + +asset.onInitialize(function() + if not openspace.directoryExists(imagesDestination) then + openspace.printInfo("Extracting " .. Name) + openspace.unzipFile(syncedDirectory .. "4096-1.zip", imagesDestination, true) + openspace.unzipFile(syncedDirectory .. "4096-2.zip", imagesDestination, true) + openspace.unzipFile(syncedDirectory .. "4096-3.zip", imagesDestination, true) + end + + openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer) +end) + +asset.onDeinitialize(function() + openspace.globebrowsing.deleteLayer(globeIdentifier, "ColorLayers", layer) +end) + +asset.export(layer) + + +asset.meta = { + Name = Name, + Version = "1.0", + Description = Description .. "Data provided by the National Oceanic and Atmospheric Administration.", + Author = "National Oceanic and Atmospheric Administration", + URL = URL, + License = "https://sos.noaa.gov/copyright/" +} diff --git a/data/assets/scene/solarsystem/planets/earth/noaa-sos/atmosphere/all_sats.asset b/data/assets/scene/solarsystem/planets/earth/noaa-sos/atmosphere/all_sats.asset new file mode 100644 index 0000000000..b49e04a9b8 --- /dev/null +++ b/data/assets/scene/solarsystem/planets/earth/noaa-sos/atmosphere/all_sats.asset @@ -0,0 +1,62 @@ +local globeIdentifier = asset.require("../../earth").Earth.Identifier + + +local Name = "Satellites: Paths and Positions" +local Identifier = "noaa-sos-atmosphere-all_sats" +local Description = [[ Satellites are a key tool for scientists to monitor and observe +the Earth's atmosphere from space. Geostationary satellites orbit around the Earth at the +same rate as the Earth rotates so that the satellites are over the same spot on Earth all +the time. This allows them to collect a continuous stream of data for one location so +that "movies" of the data can be made. The satellites are positioned 22,300 miles above +the Earth's surface in order to view the Earth's full disk and to maintain their +geostationary orbit. Geostationary satellites travel at about 7000mph in order to +maintain their geostationary orbit. In addition to geostationary satellites, scientists +also use polar orbiting satellites. These satellites circle the Earth, crossing the poles +on each orbit. Typically, polar orbiting satellites are about 500 miles above the Earth's +surface. The satellites travel at almost 17,000mph, allowing them to orbit the Earth in +roughly 100 minutes. A polar orbiting satellite is able to cover the whole Earth in less +than one day. ]] +local URL = "https://sos.noaa.gov/catalog/datasets/satellites-paths-and-positions/" + + +local syncedDirectory = asset.syncedResource({ + Name = Name, + Type = "HttpSynchronization", + Identifier = Identifier, + Version = 1 +}) + +local imagesDestination = syncedDirectory .. "images" + +local layer = { + Identifier = Identifier, + Name = Name, + Type = "ImageSequenceTileLayer", + FolderPath = imagesDestination, + Description = Description +} + +asset.onInitialize(function() + if not openspace.directoryExists(imagesDestination) then + openspace.printInfo("Extracting " .. Name) + openspace.unzipFile(syncedDirectory .. "2048.zip", imagesDestination, true) + end + + openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer) +end) + +asset.onDeinitialize(function() + openspace.globebrowsing.deleteLayer(globeIdentifier, "ColorLayers", layer) +end) + +asset.export(layer) + + +asset.meta = { + Name = Name, + Version = "1.0", + Description = Description .. "Data provided by the National Oceanic and Atmospheric Administration.", + Author = "National Oceanic and Atmospheric Administration", + URL = URL, + License = "https://sos.noaa.gov/copyright/" +} diff --git a/data/assets/scene/solarsystem/planets/earth/noaa-sos/atmosphere/aqua_swath.asset b/data/assets/scene/solarsystem/planets/earth/noaa-sos/atmosphere/aqua_swath.asset new file mode 100644 index 0000000000..74287aa4e4 --- /dev/null +++ b/data/assets/scene/solarsystem/planets/earth/noaa-sos/atmosphere/aqua_swath.asset @@ -0,0 +1,64 @@ +local globeIdentifier = asset.require("../../earth").Earth.Identifier + + +local Name = "Polar Orbiting: Aqua Satellite and MODIS Swath" +local Identifier = "noaa-sos-atmosphere-aqua_swath" +local Description = [[ Satellites are important to scientists because the instruments on +board can provide almost daily global coverage of the Earth that would otherwise not be +available. There are six instruments on board NASA's Aqua satellite. One of them is +MODIS, the Moderate Resolution Imaging Spectroradiometer. MODIS measures 36 spectral +frequencies of light, which provide a wealth of information about the physical properties +of the atmosphere and the biological and physical properties of the oceans and land. The +Aqua satellite with MODIS attached was launched May 4, 2002. Since then, Aqua has been +circling the Earth at an altitude of 438 miles (705 kilometers) every 99 minutes in a +polar orbit passing within 10 degrees of each pole every orbit. The orbit is +sun-synchronous, which means that the satellite passes over the same spot of the Earth at +about the same local time everyday. Aqua crosses the equator from south to north at about +1:30 pm local time. ]] +local URL = "https://sos.noaa.gov/catalog/datasets/polar-orbiting-aqua-satellite-and-modis-swath/" + + +local syncedDirectory = asset.syncedResource({ + Name = Name, + Type = "HttpSynchronization", + Identifier = Identifier, + Version = 1 +}) + +local imagesDestination = syncedDirectory .. "images" + +local layer = { + Identifier = Identifier, + Name = Name, + Type = "ImageSequenceTileLayer", + FolderPath = imagesDestination, + Description = Description +} + +asset.onInitialize(function() + if not openspace.directoryExists(imagesDestination) then + openspace.printInfo("Extracting " .. Name) + openspace.unzipFile(syncedDirectory .. "4096-1.zip", imagesDestination, true) + openspace.unzipFile(syncedDirectory .. "4096-2.zip", imagesDestination, true) + openspace.unzipFile(syncedDirectory .. "4096-3.zip", imagesDestination, true) + openspace.unzipFile(syncedDirectory .. "4096-4.zip", imagesDestination, true) + end + + openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer) +end) + +asset.onDeinitialize(function() + openspace.globebrowsing.deleteLayer(globeIdentifier, "ColorLayers", layer) +end) + +asset.export(layer) + + +asset.meta = { + Name = Name, + Version = "1.0", + Description = Description .. "Data provided by the National Oceanic and Atmospheric Administration.", + Author = "National Oceanic and Atmospheric Administration", + URL = URL, + License = "https://sos.noaa.gov/copyright/" +} diff --git a/data/assets/scene/solarsystem/planets/earth/noaa-sos/atmosphere/carbonflux.asset b/data/assets/scene/solarsystem/planets/earth/noaa-sos/atmosphere/carbonflux.asset new file mode 100644 index 0000000000..cca5f5a1f4 --- /dev/null +++ b/data/assets/scene/solarsystem/planets/earth/noaa-sos/atmosphere/carbonflux.asset @@ -0,0 +1,60 @@ +local globeIdentifier = asset.require("../../earth").Earth.Identifier + + +local Name = "Carbon Flux" +local Identifier = "noaa-sos-atmosphere-carbonflux" +local Description = [[ The Global Monitoring Division at NOAA diligently monitors carbon +dioxide and other trace gases in the atmosphere. One of the methods they use to sample +trace gases is collecting flasks of air from around the world that can be tested. They +have several other means for collecting samples as well. In this data set, the NOAA GMD +sampling network as of 2005 is portrayed. Circles are flask sampling locations, stars are +aircraft sites (12 flasks per flight are filled) and ships, which are only visible as +they race from Australia and New Zealand to the US west coast or Japan, or from Cape Town +to the US east coast. The coloration in the dataset represents the fluxes constructed by +the ocean, biosphere, and fossil fuel modules of the NOAA ESRL data assimilation system +for CO2 and related trace gases. The data set shows daily average fluxes constructed from +3-hour model output. ]] +local URL = "https://sos.noaa.gov/catalog/datasets/polar-orbiting-aqua-satellite-and-modis-swath/" + + +local syncedDirectory = asset.syncedResource({ + Name = Name, + Type = "HttpSynchronization", + Identifier = Identifier, + Version = 1 +}) + +local imagesDestination = syncedDirectory .. "images" + +local layer = { + Identifier = Identifier, + Name = Name, + Type = "ImageSequenceTileLayer", + FolderPath = imagesDestination, + Description = Description +} + +asset.onInitialize(function() + if not openspace.directoryExists(imagesDestination) then + openspace.printInfo("Extracting " .. Name) + openspace.unzipFile(syncedDirectory .. "2160.zip", imagesDestination, true) + end + + openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer) +end) + +asset.onDeinitialize(function() + openspace.globebrowsing.deleteLayer(globeIdentifier, "ColorLayers", layer) +end) + +asset.export(layer) + + +asset.meta = { + Name = Name, + Version = "1.0", + Description = Description .. "Data provided by the National Oceanic and Atmospheric Administration.", + Author = "National Oceanic and Atmospheric Administration", + URL = URL, + License = "https://sos.noaa.gov/copyright/" +} diff --git a/data/assets/scene/solarsystem/planets/earth/noaa-sos/atmosphere/carbontracker_2000_2100-fixed_scale.asset b/data/assets/scene/solarsystem/planets/earth/noaa-sos/atmosphere/carbontracker_2000_2100-fixed_scale.asset new file mode 100644 index 0000000000..f03e14c136 --- /dev/null +++ b/data/assets/scene/solarsystem/planets/earth/noaa-sos/atmosphere/carbontracker_2000_2100-fixed_scale.asset @@ -0,0 +1,112 @@ +local globeIdentifier = asset.require("../../earth").Earth.Identifier + + +local Name = "CarbonTracker: Fixed Scale" +local Identifier = "noaa-sos-atmosphere-carbontracker_2000_2100-fixed_scale" +local Description = [[ "NOAA encourages science that adds benefit to society and the +environment. CarbonTracker does both." said retired Navy Vice Admiral Conrad +Lautenbacher, Ph.D., former undersecretary of commerce for oceans and atmosphere and NOAA +administrator. CarbonTracker is a system to keep track of carbon dioxide uptake and +release at the Earth's surface over time. It was developed by the Carbon Cycle Greenhouse +Gases group at NOAA's Earth System Research Laboratory. As a scientific tool, +CarbonTracker has helped improve the understanding of carbon uptake and release from the +land and oceans, and how those sources and sinks are responding to the changing climate, +increasing levels of atmospheric CO2 (the CO2 fertilization effect), and human management +of land and oceans. CarbonTracker relies on the long-term monitoring of atmospheric CO2 +performed by the NOAA Global Monitoring Division and international partners. ]] +local URL = "https://sos.noaa.gov/catalog/datasets/carbon-tracker-fixed-scale/" + + +local syncedDirectory = asset.syncedResource({ + Name = Name, + Type = "HttpSynchronization", + Identifier = Identifier, + Version = 1 +}) + +local fieldDestination = syncedDirectory .. "field" +local obsDestination = syncedDirectory .. "obs" +local colorbarDestination = syncedDirectory .. "colorbar" + + +local layer_field = { + Identifier = Identifier .. "-field", + Name = Name .. " (Field)", + Type = "TemporalTileLayer", + Mode = "Folder", + Folder = { + Folder = fieldDestination, + -- See https://en.cppreference.com/w/cpp/io/manip/get_time for an explanation of the + -- time formatting string + Format = "co2wx_%Y%m%d.png" + }, + Description = Description +} + +local layer_obs = { + Identifier = Identifier .. "-obs", + Name = Name .. " (Observed)", + Type = "TemporalTileLayer", + Mode = "Folder", + Folder = { + Folder = obsDestination, + -- See https://en.cppreference.com/w/cpp/io/manip/get_time for an explanation of the + -- time formatting string + Format = "co2wx_%Y%m%d.obs.png" + }, + Description = Description +} + +local colorbar = { + Identifier = Identifier, + Name = Name, + Type = "ScreenSpaceImageLocal", + -- @TODO: We need a temporal provider for ScreenSpaceImages to handle this + TexturePath = colorbarDestination .. "/" .. "co2wx_20000101.cpt.png", + FaceCamera = false, + BackgroundColor = { 1.0, 1.0, 1.0, 1.0 }, + CartesianPosition = { 0.0, -0.5, -2.0 } +} + +asset.onInitialize(function() + if not openspace.directoryExists(fieldDestination) then + openspace.printInfo("Extracting " .. Name) + openspace.unzipFile(syncedDirectory .. "field-1.zip", fieldDestination, true) + openspace.unzipFile(syncedDirectory .. "field-2.zip", fieldDestination, true) + openspace.unzipFile(syncedDirectory .. "field-3.zip", fieldDestination, true) + end + + if not openspace.directoryExists(obsDestination) then + openspace.printInfo("Extracting " .. Name .. " Observed") + openspace.unzipFile(syncedDirectory .. "obs.zip", obsDestination, true) + end + + if not openspace.directoryExists(colorbarDestination) then + openspace.printInfo("Extracting " .. Name .. " Colorbar") + openspace.unzipFile(syncedDirectory .. "colorbar.zip", colorbarDestination, true) + end + + openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer_field) + openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer_obs) + openspace.addScreenSpaceRenderable(colorbar); +end) + +asset.onDeinitialize(function() + openspace.globebrowsing.deleteLayer(globeIdentifier, "ColorLayers", layer_field) + openspace.globebrowsing.deleteLayer(globeIdentifier, "ColorLayers", layer_obs) + openspace.removeScreenSpaceRenderable(colorbar) +end) + +asset.export(layer_field) +asset.export(layer_obs) +asset.export(colorbar) + + +asset.meta = { + Name = Name, + Version = "1.0", + Description = Description .. "Data provided by the National Oceanic and Atmospheric Administration.", + Author = "National Oceanic and Atmospheric Administration", + URL = URL, + License = "https://sos.noaa.gov/copyright/" +} diff --git a/data/assets/scene/solarsystem/planets/earth/noaa-sos/atmosphere/carbontracker_2000_2100-sliding_scale.asset b/data/assets/scene/solarsystem/planets/earth/noaa-sos/atmosphere/carbontracker_2000_2100-sliding_scale.asset new file mode 100644 index 0000000000..b6102f9191 --- /dev/null +++ b/data/assets/scene/solarsystem/planets/earth/noaa-sos/atmosphere/carbontracker_2000_2100-sliding_scale.asset @@ -0,0 +1,113 @@ +local globeIdentifier = asset.require("../../earth").Earth.Identifier + + +local Name = "CarbonTracker: Sliding Scale" +local Identifier = "noaa-sos-atmosphere-carbontracker_2000_2100-sliding_scale" +local Description = [[ "NOAA encourages science that adds benefit to society and the +environment. CarbonTracker does both." said retired Navy Vice Admiral Conrad +Lautenbacher, Ph.D., former undersecretary of commerce for oceans and atmosphere and NOAA +administrator. CarbonTracker is a system to keep track of carbon dioxide uptake and +release at the Earth's surface over time. It was developed by the Carbon Cycle Greenhouse +Gases group at NOAA's Earth System Research Laboratory. As a scientific tool, +CarbonTracker has helped improve the understanding of carbon uptake and release from the +land and oceans, and how those sources and sinks are responding to the changing climate, +increasing levels of atmospheric CO2 (the CO2 fertilization effect), and human management +of land and oceans. CarbonTracker relies on the long-term monitoring of atmospheric CO2 +performed by the NOAA Global Monitoring Division and international partners. ]] +local URL = "https://sos.noaa.gov/catalog/datasets/carbon-tracker-sliding-scale/" + + +local syncedDirectory = asset.syncedResource({ + Name = Name, + Type = "HttpSynchronization", + Identifier = Identifier, + Version = 1 +}) + +local fieldDestination = syncedDirectory .. "field" +local obsDestination = syncedDirectory .. "obs" +local colorbarDestination = syncedDirectory .. "colorbar" + +local layer_field = { + Identifier = Identifier .. "-field", + Name = Name .. " (Field)", + Type = "TemporalTileLayer", + Mode = "Folder", + Folder = { + Folder = fieldDestination, + -- See https://en.cppreference.com/w/cpp/io/manip/get_time for an explanation of the + -- time formatting string + Format = "co2wx_%Y%m%d.png" + }, + Description = Description +} + +local layer_obs = { + Identifier = Identifier .. "-obs", + Name = Name .. " (Observed)", + Type = "TemporalTileLayer", + Mode = "Folder", + Folder = { + Folder = obsDestination, + -- See https://en.cppreference.com/w/cpp/io/manip/get_time for an explanation of the + -- time formatting string + Format = "co2wx_%Y%m%d.obs.png" + }, + Description = Description +} + +local colorbar = { + Identifier = Identifier, + Name = Name, + Type = "ScreenSpaceImageLocal", + -- @TODO: We need a temporal provider for ScreenSpaceImages to handle this + TexturePath = colorbarDestination .. "/" .. "co2wx_20000101.cpt.png", + FaceCamera = false, + BackgroundColor = { 1.0, 1.0, 1.0, 1.0 }, + CartesianPosition = { 0.0, -0.5, -2.0 } +} + +asset.onInitialize(function() + if not openspace.directoryExists(fieldDestination) then + openspace.printInfo("Extracting " .. Name) + openspace.unzipFile(syncedDirectory .. "field-1.zip", fieldDestination, true) + openspace.unzipFile(syncedDirectory .. "field-2.zip", fieldDestination, true) + openspace.unzipFile(syncedDirectory .. "field-3.zip", fieldDestination, true) + openspace.unzipFile(syncedDirectory .. "field-4.zip", fieldDestination, true) + openspace.unzipFile(syncedDirectory .. "field-5.zip", fieldDestination, true) + end + + if not openspace.directoryExists(obsDestination) then + openspace.printInfo("Extracting " .. Name .. " Observed") + openspace.unzipFile(syncedDirectory .. "obs.zip", obsDestination, true) + end + + if not openspace.directoryExists(colorbarDestination) then + openspace.printInfo("Extracting " .. Name .. " Colorbar") + openspace.unzipFile(syncedDirectory .. "colorbar.zip", colorbarDestination, true) + end + + openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer_field) + openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer_obs) + openspace.addScreenSpaceRenderable(colorbar); +end) + +asset.onDeinitialize(function() + openspace.globebrowsing.deleteLayer(globeIdentifier, "ColorLayers", layer_field) + openspace.globebrowsing.deleteLayer(globeIdentifier, "ColorLayers", layer_obs) + openspace.removeScreenSpaceRenderable(colorbar) +end) + +asset.export(layer_field) +asset.export(layer_obs) +asset.export(colorbar) + + +asset.meta = { + Name = Name, + Version = "1.0", + Description = Description .. "Data provided by the National Oceanic and Atmospheric Administration.", + Author = "National Oceanic and Atmospheric Administration", + URL = URL, + License = "https://sos.noaa.gov/copyright/" +} diff --git a/data/assets/scene/solarsystem/planets/earth/noaa-sos/atmosphere/climate_niche.asset b/data/assets/scene/solarsystem/planets/earth/noaa-sos/atmosphere/climate_niche.asset new file mode 100644 index 0000000000..d54b10fdc2 --- /dev/null +++ b/data/assets/scene/solarsystem/planets/earth/noaa-sos/atmosphere/climate_niche.asset @@ -0,0 +1,98 @@ +local globeIdentifier = asset.require("../../earth").Earth.Identifier + + +local Name = "Human Climate Niche - 2020 and 2070" +local Identifier = "noaa-sos-atmosphere-climate_niche" +local Description = [[ The human climate niche are areas on Earth where humans have +historically lived due to favorable climate conditions related to temperature and +precipitation. For the past 6000 years, humans have mostly lived in the same climate +conditions as they do now. In addition to humans, this climate niche is also where the +production of crops and livestock typically takes place. The optimal mean annual +temperature of this identified niche is around 52 °F to 59 °F (~11 °C to 15 °C). But as +the climate changes, the areas that fit within the human climate niche will change as +well. This dataset identifies the current human climate niche, with land shaded to show +which areas are more or less suitable for people, and then projects the future human +climate niche in 2070 based on the climate projection scenario of RCP 8.5. Also included +as an additional layer that can be turned on and off is a map that shows the areas where +the mean annual temperature is greater than 84 °F (29 °C). Currently, only 0.8% of the +global land surface has a mean annual temperature greater than 84 °F, but in 2070 that is +projected to cover 19% of the global land and impact an estimated 3.5 billion people. ]] +local URL = "https://sos.noaa.gov/catalog/datasets/human-climate-niche-2020-and-2070/" + + +local syncedDirectory = asset.syncedResource({ + Name = Name, + Type = "HttpSynchronization", + Identifier = Identifier, + Version = 1 +}) + +local layer_precip_2020 = { + Identifier = Identifier .. "-2020", + Name = Name .. " (2020)", + FilePath = syncedDirectory .. "temp-precip-2020-current-4096.png", + Description = Description +} + +local layer_precip_2070 = { + Identifier = Identifier .. "-2070", + Name = Name .. " (2070)", + FilePath = syncedDirectory .. "temp-precip-2070-rcp85-4096.png", + Description = Description +} + +local layer_mat_2020 = { + Identifier = Identifier .. "-mat2020", + Name = Name .. " (MAT 2020)", + FilePath = syncedDirectory .. "MAT-29-2020-4096.png", + Description = Description +} + +local layer_mat_2070 = { + Identifier = Identifier .. "-mat2070", + Name = Name .. " (MAT 2070)", + FilePath = syncedDirectory .. "MAT-29-2070-4096.png", + Description = Description +} + +local colorbar = { + Identifier = Identifier, + Name = Name, + Type = "ScreenSpaceImageLocal", + TexturePath = syncedDirectory .. "niche-scale.png", + FaceCamera = false, + CartesianPosition = { 0.0, -0.5, -2.0 } +} + + +asset.onInitialize(function() + openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer_precip_2020) + openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer_precip_2070) + openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer_mat_2020) + openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer_mat_2070) + openspace.addScreenSpaceRenderable(colorbar); +end) + +asset.onDeinitialize(function() + openspace.globebrowsing.deleteLayer(globeIdentifier, "ColorLayers", layer_precip_2020) + openspace.globebrowsing.deleteLayer(globeIdentifier, "ColorLayers", layer_precip_2070) + openspace.globebrowsing.deleteLayer(globeIdentifier, "ColorLayers", layer_mat_2020) + openspace.globebrowsing.deleteLayer(globeIdentifier, "ColorLayers", layer_mat_2070) + openspace.removeScreenSpaceRenderable(colorbar) +end) + +asset.export(layer_precip_2020) +asset.export(layer_precip_2070) +asset.export(layer_mat_2020) +asset.export(layer_mat_2070) +asset.export(colorbar) + + +asset.meta = { + Name = Name, + Version = "1.0", + Description = Description .. "Data provided by the National Oceanic and Atmospheric Administration.", + Author = "National Oceanic and Atmospheric Administration", + URL = URL, + License = "https://sos.noaa.gov/copyright/" +} diff --git a/data/assets/scene/solarsystem/planets/earth/noaa-sos/atmosphere/co_gmd.asset b/data/assets/scene/solarsystem/planets/earth/noaa-sos/atmosphere/co_gmd.asset new file mode 100644 index 0000000000..c43a8b36e1 --- /dev/null +++ b/data/assets/scene/solarsystem/planets/earth/noaa-sos/atmosphere/co_gmd.asset @@ -0,0 +1,85 @@ +local globeIdentifier = asset.require("../../earth").Earth.Identifier + + +local Name = "Carbon Monoxide - 2008 - 2011" +local Identifier = "noaa-sos-atmosphere-co_gmd" +local Description = [[ Carbon Monoxide (CO) is a colorless, odorless gas existing in the +atmosphere at levels between 40 and 150 parts per billion (ppb). About 40% of that is +produced by burning (combustion) of fossil fuels (coal, oil and natural gas) and biomass +(for example, wood in forest fires). CO is the primary consumer of oxidant OH, the +"cleansing agent" of the atmosphere. For example, OH "cleanses the air" by converting +atmospheric methane (CH4) to CO2, which reduces its global warming potential because +methane is a stronger greenhouse gas. OH also breaks down a whole host of other compounds +such as benzene, isoprene and halocarbons, which would otherwise give rise to smog and +reduce air quality. Therefore, an excess of atmospheric CO leads to a reduction of OH's +cleansing capacity. Another reason for measuring CO concentrations is that it is an +indicator of combustion, such as forest fires and urban emissions. A large forest fire or +emissions from heavy traffic can produce CO concentrations of 200 - 5000 ppb. ]] +local URL = "https://sos.noaa.gov/catalog/datasets/carbon-monoxide-2008-2011/" + + +local syncedDirectory = asset.syncedResource({ + Name = Name, + Type = "HttpSynchronization", + Identifier = Identifier, + Version = 1 +}) + +local imagesDestination = syncedDirectory .. "images" + +local layer = { + Identifier = Identifier, + Name = Name, + Type = "TemporalTileLayer", + Mode = "Folder", + Folder = { + Folder = imagesDestination, + -- See https://en.cppreference.com/w/cpp/io/manip/get_time for an explanation of the + -- time formatting string + Format = "co_field_extended_%Y%m%d%H%M.png" + }, + Description = Description +} + +local colorbar = { + Identifier = Identifier, + Name = Name, + Type = "ScreenSpaceImageLocal", + TexturePath = syncedDirectory .. "colorbar.png", + FaceCamera = false, + BackgroundColor = { 1.0, 1.0, 1.0, 1.0 }, + CartesianPosition = { 0.0, -0.5, -2.0 } +} + +asset.onInitialize(function() + if not openspace.directoryExists(imagesDestination) then + openspace.printInfo("Extracting " .. Name) + openspace.unzipFile(syncedDirectory .. "3600-1.zip", imagesDestination, true) + openspace.unzipFile(syncedDirectory .. "3600-2.zip", imagesDestination, true) + openspace.unzipFile(syncedDirectory .. "3600-3.zip", imagesDestination, true) + openspace.unzipFile(syncedDirectory .. "3600-4.zip", imagesDestination, true) + openspace.unzipFile(syncedDirectory .. "3600-5.zip", imagesDestination, true) + openspace.unzipFile(syncedDirectory .. "3600-6.zip", imagesDestination, true) + end + + openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer) + openspace.addScreenSpaceRenderable(colorbar); +end) + +asset.onDeinitialize(function() + openspace.globebrowsing.deleteLayer(globeIdentifier, "ColorLayers", layer) + openspace.removeScreenSpaceRenderable(colorbar) +end) + +asset.export(layer) +asset.export(colorbar) + + +asset.meta = { + Name = Name, + Version = "1.0", + Description = Description .. "Data provided by the National Oceanic and Atmospheric Administration.", + Author = "National Oceanic and Atmospheric Administration", + URL = URL, + License = "https://sos.noaa.gov/copyright/" +} diff --git a/data/assets/scene/solarsystem/planets/earth/noaa-sos/atmosphere/fim_chem.asset b/data/assets/scene/solarsystem/planets/earth/noaa-sos/atmosphere/fim_chem.asset new file mode 100644 index 0000000000..48435ad71d --- /dev/null +++ b/data/assets/scene/solarsystem/planets/earth/noaa-sos/atmosphere/fim_chem.asset @@ -0,0 +1,69 @@ +local globeIdentifier = asset.require("../../earth").Earth.Identifier + + +local Name = "Aerosols: FIM Chem Model" +local Identifier = "noaa-sos-atmosphere-fim_chem" +local Description = [[ The Flow Following Finite Volume Icosahedral Model (FIM) was +developed by NOAA to produce weather forecasts. In fact, weather forecasts from the FIM +model are available for SOS here. Building upon the success of the FIM model, the +FIM-Chem model was created. The FIM-Chem is the FIM model with chemistry and aerosol +modules added. Aerosols are one of the biggest uncertainties in climate models due to +their varied affects on radiation and cloud physics. The FIM-Chem allows researchers to +forecast and study the behavior of aerosols in the atmosphere, leading to the potential +for better Earth system modeling for climate prediction. ]] +local URL = "https://sos.noaa.gov/catalog/datasets/aerosols-fim-chem-model/" + + +local syncedDirectory = asset.syncedResource({ + Name = Name, + Type = "HttpSynchronization", + Identifier = Identifier, + Version = 1 +}) + +local imagesDestination = syncedDirectory .. "images" + +local layer = { + Identifier = Identifier, + Name = Name, + Type = "ImageSequenceTileLayer", + FolderPath = imagesDestination, + Description = Description +} + +local colorbar = { + Identifier = Identifier, + Name = Name, + Type = "ScreenSpaceImageLocal", + TexturePath = syncedDirectory .. "colorbar.png", + FaceCamera = false, + CartesianPosition = { 0.0, -0.5, -2.0 } +} + +asset.onInitialize(function() + if not openspace.directoryExists(imagesDestination) then + openspace.printInfo("Extracting " .. Name) + openspace.unzipFile(syncedDirectory .. "composite.zip", imagesDestination, true) + end + + openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer) + openspace.addScreenSpaceRenderable(colorbar); +end) + +asset.onDeinitialize(function() + openspace.globebrowsing.deleteLayer(globeIdentifier, "ColorLayers", layer) + openspace.removeScreenSpaceRenderable(colorbar) +end) + +asset.export(layer) +asset.export(colorbar) + + +asset.meta = { + Name = Name, + Version = "1.0", + Description = Description .. "Data provided by the National Oceanic and Atmospheric Administration.", + Author = "National Oceanic and Atmospheric Administration", + URL = URL, + License = "https://sos.noaa.gov/copyright/" +} diff --git a/data/assets/scene/solarsystem/planets/earth/noaa-sos/atmosphere/fossil_fuel.asset b/data/assets/scene/solarsystem/planets/earth/noaa-sos/atmosphere/fossil_fuel.asset new file mode 100644 index 0000000000..a1d8bcd6e1 --- /dev/null +++ b/data/assets/scene/solarsystem/planets/earth/noaa-sos/atmosphere/fossil_fuel.asset @@ -0,0 +1,82 @@ +local globeIdentifier = asset.require("../../earth").Earth.Identifier + + +local Name = "Fossil Fuel: CO2 Release - 2011-2012" +local Identifier = "noaa-sos-atmosphere-fossil_fuel" +local Description = [[ This dataset shows the result of emitting carbon dioxide from +fossil fuel burning into the atmosphere over two years. A computer model of the +atmosphere called TM5 was used to create this powerful visualization. TM5 simulates the +movement of atmospheric gases globally, using winds and atmospheric mixing as derived +from the global weather forecast. The model has been used for the main greenhouse gases +carbon dioxide (CO2), methane (CH4), and nitrous oxide (N2O), chemically active species +such as ozone (O3), and various aerosols. Like CarbonTracker, a measurement and modeling +system to keep track of carbon sources and sinks around the world, this dataset was +developed by the Carbon Cycle Greenhouse Gases group at NOAA's Earth System Research +Laboratory. Unlike CarbonTracker, this simulation does not use information from actual +observations and instead visualizes the transport of fossil fuel emissions. +Visualizations such as this dataset and CarbonTracker, aim to improve our understanding +of atmospheric carbon and how various sources and sinks may respond to the changing +climate, increasing levels of atmospheric CO2 (via the CO2 fertilization effect), and +human management of global resources. ]] +local URL = "https://sos.noaa.gov/catalog/datasets/fossil-fuel-co2-release-2011-2012/" + + +local syncedDirectory = asset.syncedResource({ + Name = Name, + Type = "HttpSynchronization", + Identifier = Identifier, + Version = 1 +}) + +local imagesDestination = syncedDirectory .. "images" + +local layer = { + Identifier = Identifier, + Name = Name, + Type = "TemporalTileLayer", + Mode = "Folder", + Folder = { + Folder = imagesDestination, + -- See https://en.cppreference.com/w/cpp/io/manip/get_time for an explanation of the + -- time formatting string + Format = "%Y%m%d_fossil.png" + }, + Description = Description +} + +local colorbar = { + Identifier = Identifier, + Name = Name, + Type = "ScreenSpaceImageLocal", + TexturePath = syncedDirectory .. "colorbar.png", + FaceCamera = false, + CartesianPosition = { 0.0, -0.5, -2.0 } +} + +asset.onInitialize(function() + if not openspace.directoryExists(imagesDestination) then + openspace.printInfo("Extracting " .. Name) + openspace.unzipFile(syncedDirectory .. "3100.zip", imagesDestination, true) + end + + openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer) + openspace.addScreenSpaceRenderable(colorbar); +end) + +asset.onDeinitialize(function() + openspace.globebrowsing.deleteLayer(globeIdentifier, "ColorLayers", layer) + openspace.removeScreenSpaceRenderable(colorbar) +end) + +asset.export(layer) +asset.export(colorbar) + + +asset.meta = { + Name = Name, + Version = "1.0", + Description = Description .. "Data provided by the National Oceanic and Atmospheric Administration.", + Author = "National Oceanic and Atmospheric Administration", + URL = URL, + License = "https://sos.noaa.gov/copyright/" +} diff --git a/data/assets/scene/solarsystem/planets/earth/noaa-sos/atmosphere/fukushima.asset b/data/assets/scene/solarsystem/planets/earth/noaa-sos/atmosphere/fukushima.asset new file mode 100644 index 0000000000..bd55933421 --- /dev/null +++ b/data/assets/scene/solarsystem/planets/earth/noaa-sos/atmosphere/fukushima.asset @@ -0,0 +1,68 @@ +local globeIdentifier = asset.require("../../earth").Earth.Identifier + + +local Name = "Fukushima Radioactive Aerosol Dispersion Model" +local Identifier = "noaa-sos-atmosphere-fukushima" +local Description = [[ The Hybrid Single-Particle Lagrangian Integrated Trajectory +(HYSPLIT) model was developed by NOAA to follow the transport and dispersion of +pollutants in the atmosphere. In HYSPLIT, the computation is composed of four components: +transport by the mean wind, turbulent dispersion, scavenging and decay. A large number of +pollutant particles, which by convention are called "particles" but are just +computational "points" (particles or gases), are released at the source location and +passively follow the wind. ]] +local URL = "https://sos.noaa.gov/catalog/datasets/fukushima-radioactive-aerosol-dispersion-model/" + + +local syncedDirectory = asset.syncedResource({ + Name = Name, + Type = "HttpSynchronization", + Identifier = Identifier, + Version = 1 +}) + +local imagesDestination = syncedDirectory .. "images" + +local layer = { + Identifier = Identifier, + Name = Name, + Type = "ImageSequenceTileLayer", + FolderPath = imagesDestination, + Description = Description +} + +local colorbar = { + Identifier = Identifier, + Name = Name, + Type = "ScreenSpaceImageLocal", + TexturePath = syncedDirectory .. "colorbar.png", + FaceCamera = false, + CartesianPosition = { 0.0, -0.5, -2.0 } +} + +asset.onInitialize(function() + if not openspace.directoryExists(imagesDestination) then + openspace.printInfo("Extracting " .. Name) + openspace.unzipFile(syncedDirectory .. "2054.zip", imagesDestination, true) + end + + openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer) + openspace.addScreenSpaceRenderable(colorbar); +end) + +asset.onDeinitialize(function() + openspace.globebrowsing.deleteLayer(globeIdentifier, "ColorLayers", layer) + openspace.removeScreenSpaceRenderable(colorbar) +end) + +asset.export(layer) +asset.export(colorbar) + + +asset.meta = { + Name = Name, + Version = "1.0", + Description = Description .. "Data provided by the National Oceanic and Atmospheric Administration.", + Author = "National Oceanic and Atmospheric Administration", + URL = URL, + License = "https://sos.noaa.gov/copyright/" +} diff --git a/data/assets/scene/solarsystem/planets/earth/noaa-sos/atmosphere/geo_sat.asset b/data/assets/scene/solarsystem/planets/earth/noaa-sos/atmosphere/geo_sat.asset new file mode 100644 index 0000000000..141e7ad099 --- /dev/null +++ b/data/assets/scene/solarsystem/planets/earth/noaa-sos/atmosphere/geo_sat.asset @@ -0,0 +1,60 @@ +local globeIdentifier = asset.require("../../earth").Earth.Identifier + + +local Name = "Geostationary Satellites" +local Identifier = "noaa-sos-atmosphere-geo_sat" +local Description = [[ Geostationary satellites are a key tool for scientists to monitor +and observe the Earth's atmosphere. They are called geostationary due to their movement. +Geostationary satellites orbit around the Earth at the same rate as the Earth rotates so +that the satellites are over the same spot on Earth all the time. This allows them to +collect a continuous stream of data for one location so that "movies" of the data can be +made. The satellites are positioned 22,300 miles above the Earth's surface in order to +view the Earth's full disk and to maintain their geostationary orbit. Geostationary +satellites travel at about 7000mph in order to maintain their geostationary orbit. Over +the United States there are two such satellites, the GOES (Geostationary Operational +Environmental Satellite) - East and GOES-West. There are many such satellites +worldwide. ]] +local URL = "https://sos.noaa.gov/catalog/datasets/geostationary-satellites/" + + +local syncedDirectory = asset.syncedResource({ + Name = Name, + Type = "HttpSynchronization", + Identifier = Identifier, + Version = 1 +}) + +local imagesDestination = syncedDirectory .. "images" + +local layer = { + Identifier = Identifier, + Name = Name, + Type = "ImageSequenceTileLayer", + FolderPath = imagesDestination, + Description = Description +} + +asset.onInitialize(function() + if not openspace.directoryExists(imagesDestination) then + openspace.printInfo("Extracting " .. Name) + openspace.unzipFile(syncedDirectory .. "2048.zip", imagesDestination, true) + end + + openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer) +end) + +asset.onDeinitialize(function() + openspace.globebrowsing.deleteLayer(globeIdentifier, "ColorLayers", layer) +end) + +asset.export(layer) + + +asset.meta = { + Name = Name, + Version = "1.0", + Description = Description .. "Data provided by the National Oceanic and Atmospheric Administration.", + Author = "National Oceanic and Atmospheric Administration", + URL = URL, + License = "https://sos.noaa.gov/copyright/" +} diff --git a/data/assets/scene/solarsystem/planets/earth/noaa-sos/atmosphere/geo_scan.asset b/data/assets/scene/solarsystem/planets/earth/noaa-sos/atmosphere/geo_scan.asset new file mode 100644 index 0000000000..7e8d774ded --- /dev/null +++ b/data/assets/scene/solarsystem/planets/earth/noaa-sos/atmosphere/geo_scan.asset @@ -0,0 +1,60 @@ +local globeIdentifier = asset.require("../../earth").Earth.Identifier + + +local Name = "Geostationary Satellites: Scanning Pattern" +local Identifier = "noaa-sos-atmosphere-geo_scan" +local Description = [[ Geostationary satellites are a key tool for scientists to monitor +and observe the Earth's atmosphere. They are called geostationary due to their movement. +Geostationary satellites orbit around the Earth at the same rate as the Earth rotates so +that the satellites are over the same spot on Earth all the time. This allows them to +collect a continuous stream of data for one location so that "movies" of the data can be +made. The satellites are positioned 22,300 miles above the Earth's surface in order to +view the Earth's full disk and to maintain their geostationary orbit. Geostationary +satellites travel at about 7000mph in order to maintain their geostationary orbit. Over +the United States there are two such satellites, the GOES (Geostationary Operational +Environmental Satellite) - East and GOES-West. There are many such satellites +worldwide. ]] +local URL = "https://sos.noaa.gov/catalog/datasets/geostationary-satellites-scanning-pattern/" + + +local syncedDirectory = asset.syncedResource({ + Name = Name, + Type = "HttpSynchronization", + Identifier = Identifier, + Version = 1 +}) + +local imagesDestination = syncedDirectory .. "images" + +local layer = { + Identifier = Identifier, + Name = Name, + Type = "ImageSequenceTileLayer", + FolderPath = imagesDestination, + Description = Description +} + +asset.onInitialize(function() + if not openspace.directoryExists(imagesDestination) then + openspace.printInfo("Extracting " .. Name) + openspace.unzipFile(syncedDirectory .. "2048.zip", imagesDestination, true) + end + + openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer) +end) + +asset.onDeinitialize(function() + openspace.globebrowsing.deleteLayer(globeIdentifier, "ColorLayers", layer) +end) + +asset.export(layer) + + +asset.meta = { + Name = Name, + Version = "1.0", + Description = Description .. "Data provided by the National Oceanic and Atmospheric Administration.", + Author = "National Oceanic and Atmospheric Administration", + URL = URL, + License = "https://sos.noaa.gov/copyright/" +} diff --git a/data/assets/scene/solarsystem/planets/earth/noaa-sos/atmosphere/giss_temp_anom.asset b/data/assets/scene/solarsystem/planets/earth/noaa-sos/atmosphere/giss_temp_anom.asset new file mode 100644 index 0000000000..e87538d6af --- /dev/null +++ b/data/assets/scene/solarsystem/planets/earth/noaa-sos/atmosphere/giss_temp_anom.asset @@ -0,0 +1,65 @@ +local globeIdentifier = asset.require("../../earth").Earth.Identifier + + +local Name = "Temperature Anomaly: (NASA) - 1884 - 2012" +local Identifier = "noaa-sos-atmosphere-giss_temp_anom" +local Description = [[ These maps, developed by NASA's Goddard Institute for Space +Studies (GISS), depict how much various regions of the world have warmed or cooled when +compared with a base period of 1951-1980. They show temperature anomalies, or changes, +not absolute temperature. ]] +local URL = "https://sos.noaa.gov/catalog/datasets/temperature-anomaly-nasa-1884-2012/" + + +local syncedDirectory = asset.syncedResource({ + Name = Name, + Type = "HttpSynchronization", + Identifier = Identifier, + Version = 1 +}) + +local imagesDestination = syncedDirectory .. "images" + +local layer = { + Identifier = Identifier, + Name = Name, + Type = "ImageSequenceTileLayer", + FolderPath = imagesDestination, + Description = Description +} + +local colorbar = { + Identifier = Identifier, + Name = Name, + Type = "ScreenSpaceImageLocal", + TexturePath = syncedDirectory .. "colorbar.png", + FaceCamera = false, + CartesianPosition = { 0.0, -0.5, -2.0 } +} + +asset.onInitialize(function() + if not openspace.directoryExists(imagesDestination) then + openspace.printInfo("Extracting " .. Name) + openspace.unzipFile(syncedDirectory .. "2012.zip", imagesDestination, true) + end + + openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer) + openspace.addScreenSpaceRenderable(colorbar); +end) + +asset.onDeinitialize(function() + openspace.globebrowsing.deleteLayer(globeIdentifier, "ColorLayers", layer) + openspace.removeScreenSpaceRenderable(colorbar) +end) + +asset.export(layer) +asset.export(colorbar) + + +asset.meta = { + Name = Name, + Version = "1.0", + Description = Description .. "Data provided by the National Oceanic and Atmospheric Administration.", + Author = "National Oceanic and Atmospheric Administration", + URL = URL, + License = "https://sos.noaa.gov/copyright/" +} diff --git a/data/assets/scene/solarsystem/planets/earth/noaa-sos/atmosphere/globe-insolation.asset b/data/assets/scene/solarsystem/planets/earth/noaa-sos/atmosphere/globe-insolation.asset new file mode 100644 index 0000000000..f1655c3a67 --- /dev/null +++ b/data/assets/scene/solarsystem/planets/earth/noaa-sos/atmosphere/globe-insolation.asset @@ -0,0 +1,75 @@ +local globeIdentifier = asset.require("../../earth").Earth.Identifier + + +local Name = "Solar Insolation - Monthly (NASA)" +local Identifier = "noaa-sos-atmosphere-globe-insolation" +local Description = [[ These maps show where and how much sunlight fell on Earth's +surface during each month in 2018. Scientists call this measure solar insolation. Knowing +how much of the Sun's energy reaches the surface helps scientists understand weather and +climate patterns as well as patterns of plant growth around our world. Solar insolation +maps are also useful to engineers who design solar panels and batteries designed to +convert energy from the Sun into electricity to power appliances in our homes and work +places. ]] +local URL = "https://sos.noaa.gov/catalog/datasets/solar-insolation-monthly-nasa/" + + +local syncedDirectory = asset.syncedResource({ + Name = Name, + Type = "HttpSynchronization", + Identifier = Identifier, + Version = 1 +}) + +local imagesDestination = syncedDirectory .. "images" + +local layer = { + Identifier = Identifier, + Name = Name, + Type = "TemporalTileLayer", + Mode = "Folder", + Folder = { + Folder = imagesDestination, + -- See https://en.cppreference.com/w/cpp/io/manip/get_time for an explanation of the + -- time formatting string + Format = "CERES_INSOL_M_%Y-%m.PNG" + }, + Description = Description +} + +local colorbar = { + Identifier = Identifier, + Name = Name, + Type = "ScreenSpaceImageLocal", + TexturePath = syncedDirectory .. "colorbar.png", + FaceCamera = false, + BackgroundColor = { 1.0, 1.0, 1.0, 1.0 }, + CartesianPosition = { 0.0, -0.5, -2.0 } +} + +asset.onInitialize(function() + if not openspace.directoryExists(imagesDestination) then + openspace.printInfo("Extracting " .. Name) + openspace.unzipFile(syncedDirectory .. "1440.zip", imagesDestination, true) + end + + openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer) + openspace.addScreenSpaceRenderable(colorbar); +end) + +asset.onDeinitialize(function() + openspace.globebrowsing.deleteLayer(globeIdentifier, "ColorLayers", layer) + openspace.removeScreenSpaceRenderable(colorbar) +end) + +asset.export(layer) +asset.export(colorbar) + + +asset.meta = { + Name = Name, + Version = "1.0", + Description = Description .. "Data provided by the National Oceanic and Atmospheric Administration.", + Author = "National Oceanic and Atmospheric Administration", + URL = URL, + License = "https://sos.noaa.gov/copyright/" +} diff --git a/data/assets/scene/solarsystem/planets/earth/noaa-sos/atmosphere/globe-rainfall.asset b/data/assets/scene/solarsystem/planets/earth/noaa-sos/atmosphere/globe-rainfall.asset new file mode 100644 index 0000000000..2f15dee165 --- /dev/null +++ b/data/assets/scene/solarsystem/planets/earth/noaa-sos/atmosphere/globe-rainfall.asset @@ -0,0 +1,75 @@ +local globeIdentifier = asset.require("../../earth").Earth.Identifier + + +local Name = "Solar Rainfall - Monthly (NASA)" +local Identifier = "noaa-sos-atmosphere-globe-rainfall" +local Description = [[ Globally, rain is the main source of fresh water for plants and +animals rainfall is essential for life across Earth's landscapes. In addition to moving +tremendous amounts of water through Earth's atmosphere, rain clouds also move tremendous +amounts of energy. When water evaporates from the surface and rises as vapor into the +atmosphere, it carries heat from the sun-warmed surface with it. Later, when the water +vapor condenses to form cloud droplets and rain, the heat is released into the +atmosphere. This heating is a major part of Earth's energy budget and climate. ]] +local URL = "https://sos.noaa.gov/catalog/datasets/rainfall-monthly-nasa/" + + +local syncedDirectory = asset.syncedResource({ + Name = Name, + Type = "HttpSynchronization", + Identifier = Identifier, + Version = 1 +}) + +local imagesDestination = syncedDirectory .. "images" + +local layer = { + Identifier = Identifier, + Name = Name, + Type = "TemporalTileLayer", + Mode = "Folder", + Folder = { + Folder = imagesDestination, + -- See https://en.cppreference.com/w/cpp/io/manip/get_time for an explanation of the + -- time formatting string + Format = "TRMM_3B43M_%Y-%m.PNG" + }, + Description = Description +} + +local colorbar = { + Identifier = Identifier, + Name = Name, + Type = "ScreenSpaceImageLocal", + TexturePath = syncedDirectory .. "colorbar.png", + FaceCamera = false, + BackgroundColor = { 1.0, 1.0, 1.0, 1.0 }, + CartesianPosition = { 0.0, -0.5, -2.0 } +} + +asset.onInitialize(function() + if not openspace.directoryExists(imagesDestination) then + openspace.printInfo("Extracting " .. Name) + openspace.unzipFile(syncedDirectory .. "1440.zip", imagesDestination, true) + end + + openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer) + openspace.addScreenSpaceRenderable(colorbar); +end) + +asset.onDeinitialize(function() + openspace.globebrowsing.deleteLayer(globeIdentifier, "ColorLayers", layer) + openspace.removeScreenSpaceRenderable(colorbar) +end) + +asset.export(layer) +asset.export(colorbar) + + +asset.meta = { + Name = Name, + Version = "1.0", + Description = Description .. "Data provided by the National Oceanic and Atmospheric Administration.", + Author = "National Oceanic and Atmospheric Administration", + URL = URL, + License = "https://sos.noaa.gov/copyright/" +} diff --git a/data/assets/scene/solarsystem/planets/earth/noaa-sos/atmosphere/harvey-clouds_precip.asset b/data/assets/scene/solarsystem/planets/earth/noaa-sos/atmosphere/harvey-clouds_precip.asset new file mode 100644 index 0000000000..1eb5f35caf --- /dev/null +++ b/data/assets/scene/solarsystem/planets/earth/noaa-sos/atmosphere/harvey-clouds_precip.asset @@ -0,0 +1,86 @@ +local globeIdentifier = asset.require("../../earth").Earth.Identifier + + +local Name = "Hurricane Harvey: Clouds with Precipitation - 2017" +local Identifier = "noaa-sos-atmosphere-harvey-clouds_precip" +local Description = [[ Hurricane Harvey was an extremely destructive Atlantic hurricane +which became the first major hurricane to make landfall in the U.S. since Wilma in 2005. +In a four-day period, many areas of eastern Texas received over 40 inches of rain as the +system meandered along the gulf coast causing catastrophic flooding. With a record of +51.88 inches, Harvey is the wettest tropical hurricane on record in the contiguous U.S. +The resulting floods inundated hundreds of thousands of homes, displaces more than +30,000 people, and prompted more than 17,000 rescues. ]] +local URL = "https://sos.noaa.gov/catalog/datasets/hurricane-harvey-clouds-with-precipitation-2017/" + + +local syncedDirectory = asset.syncedResource({ + Name = Name, + Type = "HttpSynchronization", + Identifier = Identifier, + Version = 1 +}) + +local imagesDestination = syncedDirectory .. "images" + +local layer = { + Identifier = Identifier, + Name = Name, + Type = "TemporalTileLayer", + Mode = "Folder", + Folder = { + Folder = imagesDestination, + -- See https://en.cppreference.com/w/cpp/io/manip/get_time for an explanation of the + -- time formatting string + Format = "combined_image_%Y%m%d_%H%M.jpg" + }, + Description = Description +} + +local colorbar_rain = { + Identifier = Identifier .. "-rain", + Name = Name .. " (Rain)", + Type = "ScreenSpaceImageLocal", + TexturePath = syncedDirectory .. "rainbar_white.png", + FaceCamera = false, + CartesianPosition = { -0.5, -0.5, -2.0 } +} + +local colorbar_snow = { + Identifier = Identifier .. "-snow", + Name = Name .. " (Snow)", + Type = "ScreenSpaceImageLocal", + TexturePath = syncedDirectory .. "snowbar_white.png", + FaceCamera = false, + CartesianPosition = { 0.5, -0.5, -2.0 } +} + +asset.onInitialize(function() + if not openspace.directoryExists(imagesDestination) then + openspace.printInfo("Extracting " .. Name) + openspace.unzipFile(syncedDirectory .. "4096.zip", imagesDestination, true) + end + + openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer) + openspace.addScreenSpaceRenderable(colorbar_rain); + openspace.addScreenSpaceRenderable(colorbar_snow); +end) + +asset.onDeinitialize(function() + openspace.globebrowsing.deleteLayer(globeIdentifier, "ColorLayers", layer) + openspace.removeScreenSpaceRenderable(colorbar_rain) + openspace.removeScreenSpaceRenderable(colorbar_snow) +end) + +asset.export(layer) +asset.export(colorbar_rain) +asset.export(colorbar_snow) + + +asset.meta = { + Name = Name, + Version = "1.0", + Description = Description .. "Data provided by the National Oceanic and Atmospheric Administration.", + Author = "National Oceanic and Atmospheric Administration", + URL = URL, + License = "https://sos.noaa.gov/copyright/" +} diff --git a/data/assets/scene/solarsystem/planets/earth/noaa-sos/atmosphere/hurricane_season_2017.asset b/data/assets/scene/solarsystem/planets/earth/noaa-sos/atmosphere/hurricane_season_2017.asset new file mode 100644 index 0000000000..83a4548b29 --- /dev/null +++ b/data/assets/scene/solarsystem/planets/earth/noaa-sos/atmosphere/hurricane_season_2017.asset @@ -0,0 +1,68 @@ +local globeIdentifier = asset.require("../../earth").Earth.Identifier + + +local Name = "Hurricane Season - 2017" +local Identifier = "noaa-sos-atmosphere-hurricane_season_2017" +local Description = [[ After a long lull in major hurricanes striking the U.S. +(2005 - 2017), the 2017 season was an extremely destructive season, featuring 17 named +storms in just the Atlantic Ocean, tying it with 1936 as the fifth-most active season +since records began in 1851. All ten of the Atlantic hurricanes occurred in a row, the +greatest number of consecutive hurricanes in the satellite era. In addition, it is by far +the costliest season on record, with a preliminary total of over $368.66 billion (USD) in +damages, which is more than double the cost of 2005's total, and nearly all of which was +due to three of the season's major hurricanes — Harvey, Irma, and Maria. All three +occurred within one month in August - September, sending disaster aide efforts reeling +and calling on volunteers for help. ]] +local URL = "https://sos.noaa.gov/catalog/datasets/hurricane-season-2017/" + + +local syncedDirectory = asset.syncedResource({ + Name = Name, + Type = "HttpSynchronization", + Identifier = Identifier, + Version = 1 +}) + +local imagesDestination = syncedDirectory .. "images" + +local layer = { + Identifier = Identifier, + Name = Name, + Type = "TemporalTileLayer", + Mode = "Folder", + Folder = { + Folder = imagesDestination, + -- See https://en.cppreference.com/w/cpp/io/manip/get_time for an explanation of the + -- time formatting string + Format = "linear_rgb_cyl_%Y%m%d_%H%M.jpg" + }, + Description = Description +} + +asset.onInitialize(function() + if not openspace.directoryExists(imagesDestination) then + openspace.printInfo("Extracting " .. Name) + openspace.unzipFile(syncedDirectory .. "4096-1.zip", imagesDestination, true) + openspace.unzipFile(syncedDirectory .. "4096-2.zip", imagesDestination, true) + openspace.unzipFile(syncedDirectory .. "4096-3.zip", imagesDestination, true) + openspace.unzipFile(syncedDirectory .. "4096-4.zip", imagesDestination, true) + end + + openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer) +end) + +asset.onDeinitialize(function() + openspace.globebrowsing.deleteLayer(globeIdentifier, "ColorLayers", layer) +end) + +asset.export(layer) + + +asset.meta = { + Name = Name, + Version = "1.0", + Description = Description .. "Data provided by the National Oceanic and Atmospheric Administration.", + Author = "National Oceanic and Atmospheric Administration", + URL = URL, + License = "https://sos.noaa.gov/copyright/" +} diff --git a/data/assets/scene/solarsystem/planets/earth/noaa-sos/atmosphere/hurricane_season_2017_wvsst.asset b/data/assets/scene/solarsystem/planets/earth/noaa-sos/atmosphere/hurricane_season_2017_wvsst.asset new file mode 100644 index 0000000000..b5d44492dc --- /dev/null +++ b/data/assets/scene/solarsystem/planets/earth/noaa-sos/atmosphere/hurricane_season_2017_wvsst.asset @@ -0,0 +1,65 @@ +local globeIdentifier = asset.require("../../earth").Earth.Identifier + + +local Name = "Hurricane Season: Water Vapor and SST - 2017" +local Identifier = "noaa-sos-atmosphere-hurricane_season_2017_wvsst" +local Description = [[ After a long lull in major hurricanes striking the U.S. +(2005 - 2017), the 2017 season was an extremely destructive season, featuring 17 named +storms in just the Atlantic Ocean, tying it with 1936 as the fifth-most active season +since records began in 1851. All ten of the Atlantic hurricanes occurred in a row, the +greatest number of consecutive hurricanes in the satellite era. In addition, it is by far +the costliest season on record, with a preliminary total of over $368.66 billion (USD) in +damages, which is more than double the cost of 2005's total, and nearly all of which was +due to three of the season's major hurricanes — Harvey, Irma, and Maria. All three +occurred within one month in August - September, sending disaster aide efforts reeling +and calling on volunteers for help. ]] +local URL = "https://sos.noaa.gov/catalog/datasets/hurricane-season-water-vapor-and-sst-2017/" + + +local syncedDirectory = asset.syncedResource({ + Name = Name, + Type = "HttpSynchronization", + Identifier = Identifier, + Version = 1 +}) + +local imagesDestination = syncedDirectory .. "images" + +local layer = { + Identifier = Identifier, + Name = Name, + Type = "TemporalTileLayer", + Mode = "Folder", + Folder = { + Folder = imagesDestination, + -- See https://en.cppreference.com/w/cpp/io/manip/get_time for an explanation of the + -- time formatting string + Format = "wvsst-%y%j-%H.jpg" + }, + Description = Description +} + +asset.onInitialize(function() + if not openspace.directoryExists(imagesDestination) then + openspace.printInfo("Extracting " .. Name) + openspace.unzipFile(syncedDirectory .. "2048.zip", imagesDestination, true) + end + + openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer) +end) + +asset.onDeinitialize(function() + openspace.globebrowsing.deleteLayer(globeIdentifier, "ColorLayers", layer) +end) + +asset.export(layer) + + +asset.meta = { + Name = Name, + Version = "1.0", + Description = Description .. "Data provided by the National Oceanic and Atmospheric Administration.", + Author = "National Oceanic and Atmospheric Administration", + URL = URL, + License = "https://sos.noaa.gov/copyright/" +} diff --git a/data/assets/scene/solarsystem/planets/earth/noaa-sos/atmosphere/hurricane_tracks-cumulative.asset b/data/assets/scene/solarsystem/planets/earth/noaa-sos/atmosphere/hurricane_tracks-cumulative.asset new file mode 100644 index 0000000000..aa6165382b --- /dev/null +++ b/data/assets/scene/solarsystem/planets/earth/noaa-sos/atmosphere/hurricane_tracks-cumulative.asset @@ -0,0 +1,46 @@ +local globeIdentifier = asset.require("../../earth").Earth.Identifier + + +local Name = "Hurricane Tracks: Cumulative - 1950 - 2020" +local Identifier = "noaa-sos-atmosphere-hurricane_tracks-cumulative" +local Description = [[ Tracking historical hurricanes is an important way for hurricane +researchers to learn about the paths of future hurricanes. Because of this, records of +hurricane paths are archived and studied. Not all hurricanes follow the same path, but +there are certainly noticeable trends for hurricane paths. Many computer models that have +been created to predict hurricane paths include the historical data in their models. ]] +local URL = "https://sos.noaa.gov/catalog/datasets/hurricane-tracks-cumulative-1950-2005/" + + +local syncedDirectory = asset.syncedResource({ + Name = Name, + Type = "HttpSynchronization", + Identifier = Identifier, + Version = 1 +}) + +local layer = { + Identifier = Identifier, + Name = Name, + FilePath = syncedDirectory .. "4096.png", + Description = Description +} + +asset.onInitialize(function() + openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer) +end) + +asset.onDeinitialize(function() + openspace.globebrowsing.deleteLayer(globeIdentifier, "ColorLayers", layer) +end) + +asset.export(layer) + + +asset.meta = { + Name = Name, + Version = "1.0", + Description = Description .. "Data provided by the National Oceanic and Atmospheric Administration.", + Author = "National Oceanic and Atmospheric Administration", + URL = URL, + License = "https://sos.noaa.gov/copyright/" +} diff --git a/data/assets/scene/solarsystem/planets/earth/noaa-sos/atmosphere/isaac.asset b/data/assets/scene/solarsystem/planets/earth/noaa-sos/atmosphere/isaac.asset new file mode 100644 index 0000000000..e410f821c1 --- /dev/null +++ b/data/assets/scene/solarsystem/planets/earth/noaa-sos/atmosphere/isaac.asset @@ -0,0 +1,86 @@ +local globeIdentifier = asset.require("../../earth").Earth.Identifier + + +local Name = "Hurricane Isaac - 2012" +local Identifier = "noaa-sos-atmosphere-isaac" +local Description = [[ Hurricane Isaac formed as a tropical depression east of the Lesser +Antilles on August 21 and that same day was upgraded to a tropical storm. As a tropical +storm Hurricane Isaac passed over Hispaniola and Cuba, killing many people. It them +entered the Gulf of Mexico. Shortly before making landfall near the mouth of the +Mississippi River, Tropical Storm Isaac strengthened and became Hurricane Isaac on August +28. Isaac actually made landfall twice, briefly returning offshore after its first +landfall before returning to land. Isaac was a very slow moving storm after landfall and +brought significant amounts of rain to the southeastern United States. ]] +local URL = "https://sos.noaa.gov/catalog/datasets/hurricane-isaac-2012/" + + +local syncedDirectory = asset.syncedResource({ + Name = Name, + Type = "HttpSynchronization", + Identifier = Identifier, + Version = 1 +}) + +local radarDestination = syncedDirectory .. "radar" +local satDestination = syncedDirectory .. "sat" + +local layer_radar = { + Identifier = Identifier .. "-radar", + Name = Name .. " (Radar)", + Type = "TemporalTileLayer", + Mode = "Folder", + Folder = { + Folder = radarDestination, + -- See https://en.cppreference.com/w/cpp/io/manip/get_time for an explanation of the + -- time formatting string + Format = "%y%j%H%M.png" + }, + Description = Description +} + +local layer_sat = { + Identifier = Identifier .. "-sat", + Name = Name .. " (Sat)", + Type = "TemporalTileLayer", + Mode = "Folder", + Folder = { + Folder = satDestination, + -- See https://en.cppreference.com/w/cpp/io/manip/get_time for an explanation of the + -- time formatting string + Format = "linear_rgb_cyl_%Y%m%d_%H%M.jpg" + }, + Description = Description +} + +asset.onInitialize(function() + if not openspace.directoryExists(radarDestination) then + openspace.printInfo("Extracting " .. Name .. " Radar") + openspace.unzipFile(syncedDirectory .. "radar.zip", radarDestination, true) + end + + if not openspace.directoryExists(satDestination) then + openspace.printInfo("Extracting " .. Name .. " Sat") + openspace.unzipFile(syncedDirectory .. "sat.zip", satDestination, true) + end + + openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer_radar) + openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer_sat) +end) + +asset.onDeinitialize(function() + openspace.globebrowsing.deleteLayer(globeIdentifier, "ColorLayers", layer_radar) + openspace.globebrowsing.deleteLayer(globeIdentifier, "ColorLayers", layer_sat) +end) + +asset.export(layer_radar) +asset.export(layer_sat) + + +asset.meta = { + Name = Name, + Version = "1.0", + Description = Description .. "Data provided by the National Oceanic and Atmospheric Administration.", + Author = "National Oceanic and Atmospheric Administration", + URL = URL, + License = "https://sos.noaa.gov/copyright/" +} diff --git a/data/assets/scene/solarsystem/planets/earth/noaa-sos/atmosphere/iss_track.asset b/data/assets/scene/solarsystem/planets/earth/noaa-sos/atmosphere/iss_track.asset new file mode 100644 index 0000000000..da67b4c29a --- /dev/null +++ b/data/assets/scene/solarsystem/planets/earth/noaa-sos/atmosphere/iss_track.asset @@ -0,0 +1,52 @@ +local globeIdentifier = asset.require("../../earth").Earth.Identifier + + +local Name = "International Space Station Track" +local Identifier = "noaa-sos-atmosphere-iss_track" +local Description = [[ The first piece of the International Space Station was sent into +orbit in 1998. Following two more pieces, astronauts first entered the space station in +November of 2000. Since then, the space station has been continuously inhabited by at +least 2 people. The station is currently designed to house 3 crew members. The +International Space Station is a cooperative space research facility being constructed +cooperatively by many nations. Several space organizations had planned their own space +stations and the groups decided to merge and work together. The original space station +was a combination of NASA's Space Station Freedom, Russia's Mir-2, and the European +Space Agency's Columbus. The project now involves NASA, the Russian Space agency, RKA; +the European Space Agency, ESA; the Japanese Space agency, JAXA; and the Canadian Space +agency, CSA. ]] +local URL = "https://sos.noaa.gov/catalog/datasets/international-space-station-track/" + + +local syncedDirectory = asset.syncedResource({ + Name = Name, + Type = "HttpSynchronization", + Identifier = Identifier, + Version = 1 +}) + +local layer = { + Identifier = Identifier, + Name = Name, + FilePath = syncedDirectory .. "4096.jpg", + Description = Description +} + +asset.onInitialize(function() + openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer) +end) + +asset.onDeinitialize(function() + openspace.globebrowsing.deleteLayer(globeIdentifier, "ColorLayers", layer) +end) + +asset.export(layer) + + +asset.meta = { + Name = Name, + Version = "1.0", + Description = Description .. "Data provided by the National Oceanic and Atmospheric Administration.", + Author = "National Oceanic and Atmospheric Administration", + URL = URL, + License = "https://sos.noaa.gov/copyright/" +} diff --git a/data/assets/scene/solarsystem/planets/earth/noaa-sos/atmosphere/land_temp.asset b/data/assets/scene/solarsystem/planets/earth/noaa-sos/atmosphere/land_temp.asset new file mode 100644 index 0000000000..5240adfa05 --- /dev/null +++ b/data/assets/scene/solarsystem/planets/earth/noaa-sos/atmosphere/land_temp.asset @@ -0,0 +1,62 @@ +local globeIdentifier = asset.require("../../earth").Earth.Identifier + + +local Name = "Land Surface Temperature - 1950 - 1999" +local Identifier = "noaa-sos-atmosphere-land_temp" +local Description = [[ The temperature of the air varies dramatically in both time and +space. Because the Earth's rotational axis is at a 23° tilt, the Northern Hemisphere and +Southern Hemisphere simultaneously experience opposite seasons. This dataset displays the +gridded, monthly, historical terrestrial air temperature from 1950 - 1999. The original +data is from the Global Historical Climatology Network, which is part of NOAA's National +Climatic Data Center. The data was interpolated by the Center for Climatic Research at +the University of Delaware. ]] +local URL = "https://sos.noaa.gov/catalog/datasets/international-space-station-track/" + + +local syncedDirectory = asset.syncedResource({ + Name = Name, + Type = "HttpSynchronization", + Identifier = Identifier, + Version = 1 +}) + +local imagesDestination = syncedDirectory .. "images" + +local layer = { + Identifier = Identifier, + Name = Name, + Type = "TemporalTileLayer", + Mode = "Folder", + Folder = { + Folder = imagesDestination, + -- See https://en.cppreference.com/w/cpp/io/manip/get_time for an explanation of the + -- time formatting string + Format = "cyl_%Y_%m.jpg" + }, + Description = Description +} + +asset.onInitialize(function() + if not openspace.directoryExists(imagesDestination) then + openspace.printInfo("Extracting " .. Name) + openspace.unzipFile(syncedDirectory .. "4096.zip", imagesDestination, true) + end + + openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer) +end) + +asset.onDeinitialize(function() + openspace.globebrowsing.deleteLayer(globeIdentifier, "ColorLayers", layer) +end) + +asset.export(layer) + + +asset.meta = { + Name = Name, + Version = "1.0", + Description = Description .. "Data provided by the National Oceanic and Atmospheric Administration.", + Author = "National Oceanic and Atmospheric Administration", + URL = URL, + License = "https://sos.noaa.gov/copyright/" +} diff --git a/data/assets/scene/solarsystem/planets/earth/noaa-sos/atmosphere/lightning.asset b/data/assets/scene/solarsystem/planets/earth/noaa-sos/atmosphere/lightning.asset new file mode 100644 index 0000000000..ab7228928e --- /dev/null +++ b/data/assets/scene/solarsystem/planets/earth/noaa-sos/atmosphere/lightning.asset @@ -0,0 +1,62 @@ +local globeIdentifier = asset.require("../../earth").Earth.Identifier + + +local Name = "Lightning Flash Rate" +local Identifier = "noaa-sos-atmosphere-lightning" +local Description = [[ Typically, more than 2,000 thunderstorms are active throughout the +world at a given moment, producing on the order of 100 flashes per second. NASA has two +different sensors on satellites that measuring flash frequency, the Optical Transient +Detector, OTD, and the Lightning Imaging Sensor, LIS. Data from the OTD from 1995 - 2000 +and the LIS from 1998 - 2005 has been combined and averaged to create an average annual +lightning flash rate map. 11 year of data is included to remove any anomalies that might +be present in just one year. The color variations in the map display the average annual +number of lightning flashes per square kilometer. ]] +local URL = "https://sos.noaa.gov/catalog/datasets/lightning-flash-rate/" + + +local syncedDirectory = asset.syncedResource({ + Name = Name, + Type = "HttpSynchronization", + Identifier = Identifier, + Version = 1 +}) + +local layer = { + Identifier = Identifier, + Name = Name, + FilePath = syncedDirectory .. "2048.jpg", + Description = Description +} + +local colorbar = { + Identifier = Identifier, + Name = Name, + Type = "ScreenSpaceImageLocal", + TexturePath = syncedDirectory .. "colorbar.jpg", + FaceCamera = false, + Scale = 0.05, + CartesianPosition = { 0.75, 0.0, -2.0 } +} + +asset.onInitialize(function() + openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer) + openspace.addScreenSpaceRenderable(colorbar); +end) + +asset.onDeinitialize(function() + openspace.globebrowsing.deleteLayer(globeIdentifier, "ColorLayers", layer) + openspace.removeScreenSpaceRenderable(colorbar) +end) + +asset.export(layer) +asset.export(colorbar) + + +asset.meta = { + Name = Name, + Version = "1.0", + Description = Description .. "Data provided by the National Oceanic and Atmospheric Administration.", + Author = "National Oceanic and Atmospheric Administration", + URL = URL, + License = "https://sos.noaa.gov/copyright/" +} diff --git a/data/assets/scene/solarsystem/planets/earth/noaa-sos/atmosphere/ltg_vaisala.asset b/data/assets/scene/solarsystem/planets/earth/noaa-sos/atmosphere/ltg_vaisala.asset new file mode 100644 index 0000000000..e5e8368b91 --- /dev/null +++ b/data/assets/scene/solarsystem/planets/earth/noaa-sos/atmosphere/ltg_vaisala.asset @@ -0,0 +1,80 @@ +local globeIdentifier = asset.require("../../earth").Earth.Identifier + + +local Name = "Lightning Detection - Jun 2011 - Aug 2012" +local Identifier = "noaa-sos-atmosphere-ltg_vaisala" +local Description = [[ The Global Lightning Dataset GLD360 network detects between 1 and +3 million lightning events around the world every day of the year. Lightning activity is +not uniformly distributed across the globe. About ten times as many flashes occur over +land than over the oceans, and the majority of global lightning is concentrated in the +tropics. Over the course of a year, highest flash rate regions follow the inclination of +the sun. The northern hemisphere sees more activity during June through August; the +southern hemisphere has higher flash rates in January through March. These seasonal +patterns can be clearly seen in these images, which show the total number of events +detected in each month per square kilometer. The color scale ranges from less than .01 +lightning pulses per square kilometer in the corresponding month to over 20 pulses per +square kilometer. Each color range corresponds to a factor of two of increase in the +number of events. This dataset runs from June 2011 through August 2012. ]] +local URL = "c" + + +local syncedDirectory = asset.syncedResource({ + Name = Name, + Type = "HttpSynchronization", + Identifier = Identifier, + Version = 1 +}) + +local imagesDestination = syncedDirectory .. "images" + +local layer = { + Identifier = Identifier, + Name = Name, + Type = "TemporalTileLayer", + Mode = "Folder", + Folder = { + Folder = imagesDestination, + -- See https://en.cppreference.com/w/cpp/io/manip/get_time for an explanation of the + -- time formatting string + Format = "%Y_%m-1.png" + }, + Description = Description +} + +local colorbar = { + Identifier = Identifier, + Name = Name, + Type = "ScreenSpaceImageLocal", + TexturePath = syncedDirectory .. "colorbar.png", + FaceCamera = false, + Scale = 0.1, + CartesianPosition = { 0.75, 0.0, -2.0 } +} + +asset.onInitialize(function() + if not openspace.directoryExists(imagesDestination) then + openspace.printInfo("Extracting " .. Name) + openspace.unzipFile(syncedDirectory .. "2160.zip", imagesDestination, true) + end + + openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer) + openspace.addScreenSpaceRenderable(colorbar); +end) + +asset.onDeinitialize(function() + openspace.globebrowsing.deleteLayer(globeIdentifier, "ColorLayers", layer) + openspace.removeScreenSpaceRenderable(colorbar) +end) + +asset.export(layer) +asset.export(colorbar) + + +asset.meta = { + Name = Name, + Version = "1.0", + Description = Description .. "Data provided by the National Oceanic and Atmospheric Administration.", + Author = "National Oceanic and Atmospheric Administration", + URL = URL, + License = "https://sos.noaa.gov/copyright/" +} diff --git a/data/assets/scene/solarsystem/planets/earth/noaa-sos/atmosphere/nasa_sats.asset b/data/assets/scene/solarsystem/planets/earth/noaa-sos/atmosphere/nasa_sats.asset new file mode 100644 index 0000000000..085c54d657 --- /dev/null +++ b/data/assets/scene/solarsystem/planets/earth/noaa-sos/atmosphere/nasa_sats.asset @@ -0,0 +1,59 @@ +local globeIdentifier = asset.require("../../earth").Earth.Identifier + + +local Name = "Polar Orbiting: NASA A-Train Satellites" +local Identifier = "noaa-sos-atmosphere-nasa_sats" +local Description = [[ In order to enable coordinated science observations, the Earth +Observations System has created the A-Train. When finally completed in 2008, the A-Train +will consist of 6 polar-orbiting satellites that travel just minutes apart in a line. +Four of the satellites are NASA satellites, one is a French Centre National d'Etudes +Spatiales (CNES) satellite, and the other is a joint satellite between NASA and CNES. The +satellites have low polar orbits 438 miles (705 km) above Earth at an inclination of 98 +degrees. Together, their overlapping science instruments give a comprehensive picture of +Earth weather and climate. The "A" in the A-Train is for "afternoon" because the lead +satellite, Aqua, crosses the equator at the mean local time of approximately 1:30pm. Five +of the satellites are currently in orbit, and the sixth satellite is scheduled to be +launched in 2008. ]] +local URL = "https://sos.noaa.gov/catalog/datasets/polar-orbiting-nasa-a-train-satellites/" + +local syncedDirectory = asset.syncedResource({ + Name = Name, + Type = "HttpSynchronization", + Identifier = Identifier, + Version = 1 +}) + +local imagesDestination = syncedDirectory .. "images" + +local layer = { + Identifier = Identifier, + Name = Name, + Type = "ImageSequenceTileLayer", + FolderPath = imagesDestination, + Description = Description +} + +asset.onInitialize(function() + if not openspace.directoryExists(imagesDestination) then + openspace.printInfo("Extracting " .. Name) + openspace.unzipFile(syncedDirectory .. "2048.zip", imagesDestination, true) + end + + openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer) +end) + +asset.onDeinitialize(function() + openspace.globebrowsing.deleteLayer(globeIdentifier, "ColorLayers", layer) +end) + +asset.export(layer) + + +asset.meta = { + Name = Name, + Version = "1.0", + Description = Description .. "Data provided by the National Oceanic and Atmospheric Administration.", + Author = "National Oceanic and Atmospheric Administration", + URL = URL, + License = "https://sos.noaa.gov/copyright/" +} diff --git a/data/assets/scene/solarsystem/planets/earth/noaa-sos/atmosphere/nccs_models-carbon.asset b/data/assets/scene/solarsystem/planets/earth/noaa-sos/atmosphere/nccs_models-carbon.asset new file mode 100644 index 0000000000..869b7da8fc --- /dev/null +++ b/data/assets/scene/solarsystem/planets/earth/noaa-sos/atmosphere/nccs_models-carbon.asset @@ -0,0 +1,69 @@ +local globeIdentifier = asset.require("../../earth").Earth.Identifier + + +local Name = "Carbon Dioxide Concentration: GEOS-5 Model" +local Identifier = "noaa-sos-atmosphere-nccs_models-carbon" +local Description = [[ Models create a dynamic portrait of the Earth through numerical +experiments that simulate our current knowledge of the dynamical and physical processes +governing weather and climate variability. This new simulation of carbon dioxide in +Earth's atmosphere provides an ultra-high-resolution look at how the key greenhouse gas +moves around the globe and fluctuates in volume throughout the year. These three close-up +views show how local geography affects the transport of carbon dioxide in the +atmosphere. ]] +local URL = "https://sos.noaa.gov/catalog/datasets/carbon-dioxide-concentration-geos-5-model/" + + +local syncedDirectory = asset.syncedResource({ + Name = Name, + Type = "HttpSynchronization", + Identifier = Identifier, + Version = 1 +}) + +local imagesDestination = syncedDirectory .. "images" + +local layer = { + Identifier = Identifier, + Name = Name, + Type = "ImageSequenceTileLayer", + FolderPath = imagesDestination, + Description = Description +} + +local colorbar = { + Identifier = Identifier, + Name = Name, + Type = "ScreenSpaceImageLocal", + TexturePath = syncedDirectory .. "colorbar.png", + FaceCamera = false, + Scale = 0.4, + CartesianPosition = { 0.0, -0.5, -2.0 } +} + +asset.onInitialize(function() + if not openspace.directoryExists(imagesDestination) then + openspace.printInfo("Extracting " .. Name) + openspace.unzipFile(syncedDirectory .. "2048.zip", imagesDestination, true) + end + + openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer) + openspace.addScreenSpaceRenderable(colorbar); +end) + +asset.onDeinitialize(function() + openspace.globebrowsing.deleteLayer(globeIdentifier, "ColorLayers", layer) + openspace.removeScreenSpaceRenderable(colorbar) +end) + +asset.export(layer) +asset.export(colorbar) + + +asset.meta = { + Name = Name, + Version = "1.0", + Description = Description .. "Data provided by the National Oceanic and Atmospheric Administration.", + Author = "National Oceanic and Atmospheric Administration", + URL = URL, + License = "https://sos.noaa.gov/copyright/" +} diff --git a/data/assets/scene/solarsystem/planets/earth/noaa-sos/atmosphere/nccs_models-chem.asset b/data/assets/scene/solarsystem/planets/earth/noaa-sos/atmosphere/nccs_models-chem.asset new file mode 100644 index 0000000000..6865c8e6df --- /dev/null +++ b/data/assets/scene/solarsystem/planets/earth/noaa-sos/atmosphere/nccs_models-chem.asset @@ -0,0 +1,99 @@ +local globeIdentifier = asset.require("../../earth").Earth.Identifier + + +local Name = "Atmospheric Chemistry: GEOS-5 Model" +local Identifier = "noaa-sos-atmosphere-nccs_models-chem" +local Description = [[ Models create a dynamic portrait of the Earth through numerical +experiments that simulate our current knowledge of the dynamical and physical processes +governing weather and climate variability. The simulation visualized here captures how +winds lift up aerosols from the Earth's surface and transport them around the globe +during the period September 1, 2006 to March 17, 2007. Such simulations allow scientists +to identify the sources and pathways of these tiny particulates that influence weather +and climate. ]] +local URL = "https://sos.noaa.gov/catalog/datasets/atmospheric-chemistry-geos-5-model/" + + +local syncedDirectory = asset.syncedResource({ + Name = Name, + Type = "HttpSynchronization", + Identifier = Identifier, + Version = 1 +}) + +local imagesDestination = syncedDirectory .. "images" + +local layer = { + Identifier = Identifier, + Name = Name, + Type = "TemporalTileLayer", + Mode = "Folder", + Folder = { + Folder = imagesDestination, + -- See https://en.cppreference.com/w/cpp/io/manip/get_time for an explanation of the + -- time formatting string + Format = "chem_%Y-%m-%d_%H-%M.png" + }, + Description = Description +} + +local legend = { + Identifier = Identifier, + Name = Name, + Type = "ScreenSpaceImageLocal", + TexturePath = syncedDirectory .. "geos-5-legend.jpg", + FaceCamera = false, + CartesianPosition = { 0.0, -0.5, -2.0 } +} + +asset.onInitialize(function() + if not openspace.directoryExists(imagesDestination) then + openspace.printInfo("Extracting " .. Name) + openspace.unzipFile(syncedDirectory .. "4000-1.zip", imagesDestination, true) + openspace.unzipFile(syncedDirectory .. "4000-2.zip", imagesDestination, true) + openspace.unzipFile(syncedDirectory .. "4000-3.zip", imagesDestination, true) + openspace.unzipFile(syncedDirectory .. "4000-4.zip", imagesDestination, true) + openspace.unzipFile(syncedDirectory .. "4000-5.zip", imagesDestination, true) + openspace.unzipFile(syncedDirectory .. "4000-6.zip", imagesDestination, true) + openspace.unzipFile(syncedDirectory .. "4000-7.zip", imagesDestination, true) + openspace.unzipFile(syncedDirectory .. "4000-8.zip", imagesDestination, true) + openspace.unzipFile(syncedDirectory .. "4000-9.zip", imagesDestination, true) + openspace.unzipFile(syncedDirectory .. "4000-10.zip", imagesDestination, true) + openspace.unzipFile(syncedDirectory .. "4000-11.zip", imagesDestination, true) + openspace.unzipFile(syncedDirectory .. "4000-12.zip", imagesDestination, true) + openspace.unzipFile(syncedDirectory .. "4000-13.zip", imagesDestination, true) + openspace.unzipFile(syncedDirectory .. "4000-14.zip", imagesDestination, true) + openspace.unzipFile(syncedDirectory .. "4000-15.zip", imagesDestination, true) + openspace.unzipFile(syncedDirectory .. "4000-16.zip", imagesDestination, true) + openspace.unzipFile(syncedDirectory .. "4000-17.zip", imagesDestination, true) + openspace.unzipFile(syncedDirectory .. "4000-18.zip", imagesDestination, true) + openspace.unzipFile(syncedDirectory .. "4000-19.zip", imagesDestination, true) + openspace.unzipFile(syncedDirectory .. "4000-20.zip", imagesDestination, true) + openspace.unzipFile(syncedDirectory .. "4000-21.zip", imagesDestination, true) + openspace.unzipFile(syncedDirectory .. "4000-22.zip", imagesDestination, true) + openspace.unzipFile(syncedDirectory .. "4000-23.zip", imagesDestination, true) + openspace.unzipFile(syncedDirectory .. "4000-24.zip", imagesDestination, true) + openspace.unzipFile(syncedDirectory .. "4000-25.zip", imagesDestination, true) + openspace.unzipFile(syncedDirectory .. "4000-26.zip", imagesDestination, true) + end + + openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer) + openspace.addScreenSpaceRenderable(legend); +end) + +asset.onDeinitialize(function() + openspace.globebrowsing.deleteLayer(globeIdentifier, "ColorLayers", layer) + openspace.removeScreenSpaceRenderable(legend) +end) + +asset.export(layer) +asset.export(legend) + + +asset.meta = { + Name = Name, + Version = "1.0", + Description = Description .. "Data provided by the National Oceanic and Atmospheric Administration.", + Author = "National Oceanic and Atmospheric Administration", + URL = URL, + License = "https://sos.noaa.gov/copyright/" +} diff --git a/data/assets/scene/solarsystem/planets/earth/noaa-sos/atmosphere/nccs_models-winds.asset b/data/assets/scene/solarsystem/planets/earth/noaa-sos/atmosphere/nccs_models-winds.asset new file mode 100644 index 0000000000..adfae393cd --- /dev/null +++ b/data/assets/scene/solarsystem/planets/earth/noaa-sos/atmosphere/nccs_models-winds.asset @@ -0,0 +1,87 @@ +local globeIdentifier = asset.require("../../earth").Earth.Identifier + + +local Name = "Winds: GEOS-5 Model" +local Identifier = "noaa-sos-atmosphere-nccs_models-winds" +local Description = [[ Models create a dynamic portrait of the Earth through numerical +experiments that simulate our current knowledge of the dynamical and physical processes +governing weather and climate variability. The simulation visualized here captures the +speed of winds at the tropopause, about 6-9 miles above the Earth's surface during the +period September 1, 2006 to March 17, 2007. Such simulations allow scientists to view the +intensity and turbulence of the polar and sub-tropic jet streams, which carry weather +around the globe. Red, orange and yellow are used for the fastest moving air. ]] +local URL = "https://sos.noaa.gov/catalog/datasets/winds-geos-5-model/" + + +local syncedDirectory = asset.syncedResource({ + Name = Name, + Type = "HttpSynchronization", + Identifier = Identifier, + Version = 1 +}) + +local imagesDestination = syncedDirectory .. "images" + +local layer = { + Identifier = Identifier, + Name = Name, + Type = "TemporalTileLayer", + Mode = "Folder", + Folder = { + Folder = imagesDestination, + -- See https://en.cppreference.com/w/cpp/io/manip/get_time for an explanation of the + -- time formatting string + Format = "winds_%Y-%m-%d_%H-%M.png" + }, + Description = Description +} + +asset.onInitialize(function() + if not openspace.directoryExists(imagesDestination) then + openspace.printInfo("Extracting " .. Name) + openspace.unzipFile(syncedDirectory .. "4000-1.zip", imagesDestination, true) + openspace.unzipFile(syncedDirectory .. "4000-2.zip", imagesDestination, true) + openspace.unzipFile(syncedDirectory .. "4000-3.zip", imagesDestination, true) + openspace.unzipFile(syncedDirectory .. "4000-4.zip", imagesDestination, true) + openspace.unzipFile(syncedDirectory .. "4000-5.zip", imagesDestination, true) + openspace.unzipFile(syncedDirectory .. "4000-6.zip", imagesDestination, true) + openspace.unzipFile(syncedDirectory .. "4000-7.zip", imagesDestination, true) + openspace.unzipFile(syncedDirectory .. "4000-8.zip", imagesDestination, true) + openspace.unzipFile(syncedDirectory .. "4000-9.zip", imagesDestination, true) + openspace.unzipFile(syncedDirectory .. "4000-10.zip", imagesDestination, true) + openspace.unzipFile(syncedDirectory .. "4000-11.zip", imagesDestination, true) + openspace.unzipFile(syncedDirectory .. "4000-12.zip", imagesDestination, true) + openspace.unzipFile(syncedDirectory .. "4000-13.zip", imagesDestination, true) + openspace.unzipFile(syncedDirectory .. "4000-14.zip", imagesDestination, true) + openspace.unzipFile(syncedDirectory .. "4000-15.zip", imagesDestination, true) + openspace.unzipFile(syncedDirectory .. "4000-16.zip", imagesDestination, true) + openspace.unzipFile(syncedDirectory .. "4000-17.zip", imagesDestination, true) + openspace.unzipFile(syncedDirectory .. "4000-18.zip", imagesDestination, true) + openspace.unzipFile(syncedDirectory .. "4000-19.zip", imagesDestination, true) + openspace.unzipFile(syncedDirectory .. "4000-20.zip", imagesDestination, true) + openspace.unzipFile(syncedDirectory .. "4000-21.zip", imagesDestination, true) + openspace.unzipFile(syncedDirectory .. "4000-22.zip", imagesDestination, true) + openspace.unzipFile(syncedDirectory .. "4000-23.zip", imagesDestination, true) + openspace.unzipFile(syncedDirectory .. "4000-24.zip", imagesDestination, true) + openspace.unzipFile(syncedDirectory .. "4000-25.zip", imagesDestination, true) + openspace.unzipFile(syncedDirectory .. "4000-26.zip", imagesDestination, true) + end + + openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer) +end) + +asset.onDeinitialize(function() + openspace.globebrowsing.deleteLayer(globeIdentifier, "ColorLayers", layer) +end) + +asset.export(layer) + + +asset.meta = { + Name = Name, + Version = "1.0", + Description = Description .. "Data provided by the National Oceanic and Atmospheric Administration.", + Author = "National Oceanic and Atmospheric Administration", + URL = URL, + License = "https://sos.noaa.gov/copyright/" +} diff --git a/data/assets/scene/solarsystem/planets/earth/noaa-sos/atmosphere/no2_omsi.asset b/data/assets/scene/solarsystem/planets/earth/noaa-sos/atmosphere/no2_omsi.asset new file mode 100644 index 0000000000..bb418c4895 --- /dev/null +++ b/data/assets/scene/solarsystem/planets/earth/noaa-sos/atmosphere/no2_omsi.asset @@ -0,0 +1,75 @@ +local globeIdentifier = asset.require("../../earth").Earth.Identifier + + +local Name = "Nitrogen Dioxide" +local Identifier = "noaa-sos-atmosphere-no2_omsi" +local Description = [[ Nitrogen dioxide (NO2) is a key component of urban air pollution. +The nitrogen oxides ("NOx" of which NO2 is one component) are emitted from any combustion +process. Coal- and gas-fired power plants and vehicles constitute the major anthropogenic +(human-produced) sources. Forest fires and lightning are natural sources of NO2, but +globally it is clear that anthropogenic sources dominate. High levels of NO2 are +significant as they are associated with: 1) haze that reduces visibility; 2) irritation +of the eyes, nose, throat, and lungs; 3) acid rain; 4) reduced terrestrial plant growth; +5) oxygen-depleting algal blooms; and 6) corrosion of building materials. ]] +local URL = "https://sos.noaa.gov/catalog/datasets/nitrogen-dioxide/" + + +local syncedDirectory = asset.syncedResource({ + Name = Name, + Type = "HttpSynchronization", + Identifier = Identifier, + Version = 1 +}) + +local imagesDestination = syncedDirectory .. "images" + +local layer = { + Identifier = Identifier, + Name = Name, + Type = "TemporalTileLayer", + Mode = "Folder", + Folder = { + Folder = imagesDestination, + -- See https://en.cppreference.com/w/cpp/io/manip/get_time for an explanation of the + -- time formatting string + Format = "NO2monthlymean_%Y%m.png" + }, + Description = Description +} + +local colorbar = { + Identifier = Identifier, + Name = Name, + Type = "ScreenSpaceImageLocal", + TexturePath = syncedDirectory .. "color_bar.jpg", + FaceCamera = false, + CartesianPosition = { 0.0, -0.5, -2.0 } +} + +asset.onInitialize(function() + if not openspace.directoryExists(imagesDestination) then + openspace.printInfo("Extracting " .. Name) + openspace.unzipFile(syncedDirectory .. "2880.zip", imagesDestination, true) + end + + openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer) + openspace.addScreenSpaceRenderable(colorbar); +end) + +asset.onDeinitialize(function() + openspace.globebrowsing.deleteLayer(globeIdentifier, "ColorLayers", layer) + openspace.removeScreenSpaceRenderable(colorbar) +end) + +asset.export(layer) +asset.export(colorbar) + + +asset.meta = { + Name = Name, + Version = "1.0", + Description = Description .. "Data provided by the National Oceanic and Atmospheric Administration.", + Author = "National Oceanic and Atmospheric Administration", + URL = URL, + License = "https://sos.noaa.gov/copyright/" +} diff --git a/data/assets/scene/solarsystem/planets/earth/noaa-sos/atmosphere/noaa_sat-tracks.asset b/data/assets/scene/solarsystem/planets/earth/noaa-sos/atmosphere/noaa_sat-tracks.asset new file mode 100644 index 0000000000..ecf42296d5 --- /dev/null +++ b/data/assets/scene/solarsystem/planets/earth/noaa-sos/atmosphere/noaa_sat-tracks.asset @@ -0,0 +1,53 @@ +local globeIdentifier = asset.require("../../earth").Earth.Identifier + + +local Name = "Polar Orbiting: NOAA Satellite Tracks" +local Identifier = "noaa-sos-atmosphere-noaa_sat-tracks" +local Description = [[ NOAA has four POES, Polar Operational Environmental Satellites, +currently in orbit. The satellites are named chronologically, based on launch date. NOAA +15 was launched in 1998, NOAA 16 was launched in 2000, NOAA 17 was launched in 2002 and +NOAA 18 was launched in 2005. In May and August of 2007 two older satellites, NOAA 14 and +NOAA 12 respectively, were decommissioned. These satellites orbit the Earth in such a way +that they pass over the poles. Each orbit takes approximately 102.1 minutes, allowing the +satellites to circle the Earth about 14.1 times each day. The polar orbit enables the +satellites to collect daily global data for land, ocean, and atmospheric applications. +This data is used a large variety of environmental monitoring applications such as +weather analysis and forecasting, climate research and prediction, global sea surface +temperature measurements, ocean dynamics research, global vegetation analysis and many +other applications. ]] +local URL = "https://sos.noaa.gov/catalog/datasets/polar-orbiting-noaa-satellite-tracks/" + + +local syncedDirectory = asset.syncedResource({ + Name = Name, + Type = "HttpSynchronization", + Identifier = Identifier, + Version = 1 +}) + +local layer = { + Identifier = Identifier, + Name = Name, + FilePath = syncedDirectory .. "4096.jpg", + Description = Description +} + +asset.onInitialize(function() + openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer) +end) + +asset.onDeinitialize(function() + openspace.globebrowsing.deleteLayer(globeIdentifier, "ColorLayers", layer) +end) + +asset.export(layer) + + +asset.meta = { + Name = Name, + Version = "1.0", + Description = Description .. "Data provided by the National Oceanic and Atmospheric Administration.", + Author = "National Oceanic and Atmospheric Administration", + URL = URL, + License = "https://sos.noaa.gov/copyright/" +} diff --git a/data/assets/scene/solarsystem/planets/earth/noaa-sos/atmosphere/pclim.asset b/data/assets/scene/solarsystem/planets/earth/noaa-sos/atmosphere/pclim.asset new file mode 100644 index 0000000000..e4cb0d05b4 --- /dev/null +++ b/data/assets/scene/solarsystem/planets/earth/noaa-sos/atmosphere/pclim.asset @@ -0,0 +1,66 @@ +local globeIdentifier = asset.require("../../earth").Earth.Identifier + + +local Name = "Temperature Anomaly: Yearly - 500 - 2006 (Paleoclimate Evidence)" +local Identifier = "noaa-sos-atmosphere-pclim" +local Description = [[ This animation shows annual average temperature anomalies +(departure from normal) over the globe for the past 1,500 years compared to the average +temperature (normal) from 1961-1990. This data collected from over 1,000 paleoclimate +proxies. Areas shaded red are warmer than normal while areas shaded blue are cooler than +normal. ]] +local URL = "https://sos.noaa.gov/catalog/datasets/temperature-anomaly-yearly-500-2006-paleoclimate-evidence/" + + +local syncedDirectory = asset.syncedResource({ + Name = Name, + Type = "HttpSynchronization", + Identifier = Identifier, + Version = 1 +}) + +local imagesDestination = syncedDirectory .. "images" + +local layer = { + Identifier = Identifier, + Name = Name, + Type = "ImageSequenceTileLayer", + FolderPath = imagesDestination, + Description = Description +} + +local colorbar = { + Identifier = Identifier, + Name = Name, + Type = "ScreenSpaceImageLocal", + TexturePath = syncedDirectory .. "colorbar.jpg", + FaceCamera = false, + CartesianPosition = { 0.0, -0.5, -2.0 } +} + +asset.onInitialize(function() + if not openspace.directoryExists(imagesDestination) then + openspace.printInfo("Extracting " .. Name) + openspace.unzipFile(syncedDirectory .. "raw.zip", imagesDestination, true) + end + + openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer) + openspace.addScreenSpaceRenderable(colorbar); +end) + +asset.onDeinitialize(function() + openspace.globebrowsing.deleteLayer(globeIdentifier, "ColorLayers", layer) + openspace.removeScreenSpaceRenderable(colorbar) +end) + +asset.export(layer) +asset.export(colorbar) + + +asset.meta = { + Name = Name, + Version = "1.0", + Description = Description .. "Data provided by the National Oceanic and Atmospheric Administration.", + Author = "National Oceanic and Atmospheric Administration", + URL = URL, + License = "https://sos.noaa.gov/copyright/" +} diff --git a/data/assets/scene/solarsystem/planets/earth/noaa-sos/atmosphere/poes_sat.asset b/data/assets/scene/solarsystem/planets/earth/noaa-sos/atmosphere/poes_sat.asset new file mode 100644 index 0000000000..3fc4209024 --- /dev/null +++ b/data/assets/scene/solarsystem/planets/earth/noaa-sos/atmosphere/poes_sat.asset @@ -0,0 +1,63 @@ +local globeIdentifier = asset.require("../../earth").Earth.Identifier + + +local Name = "Polar Orbiting: NOAA-17 Satellite Coverage" +local Identifier = "noaa-sos-atmosphere-poes_sat" +local Description = [[ Satellites allow scientists to observe the Earth from above the +atmosphere. The National Oceanic and Atmospheric Administration, NOAA, has several +different types of satellites, including geostationary and polar orbiting satellites. +These datasets show the path of Polar-orbiting Operational Environmental Satellites, or +POES for short. NOAA has two POES in operation currently, a morning and afternoon +satellite. The morning satellite crosses the equator on the sun-light side of the Earth +in the morning, and the afternoon satellite crosses in the afternoon. Both satellites +orbit the Earth 14.1 times per day. ]] +local URL = "https://sos.noaa.gov/catalog/datasets/polar-orbiting-noaa-17-satellite-coverage/" + + +local syncedDirectory = asset.syncedResource({ + Name = Name, + Type = "HttpSynchronization", + Identifier = Identifier, + Version = 1 +}) + +local imagesDestination = syncedDirectory .. "images" + +local layer = { + Identifier = Identifier, + Name = Name, + Type = "TemporalTileLayer", + Mode = "Folder", + Folder = { + Folder = imagesDestination, + -- See https://en.cppreference.com/w/cpp/io/manip/get_time for an explanation of the + -- time formatting string + Format = "poes_cover_%Y%j%H%M.jpg" + }, + Description = Description +} + +asset.onInitialize(function() + if not openspace.directoryExists(imagesDestination) then + openspace.printInfo("Extracting " .. Name) + openspace.unzipFile(syncedDirectory .. "2048.zip", imagesDestination, true) + end + + openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer) +end) + +asset.onDeinitialize(function() + openspace.globebrowsing.deleteLayer(globeIdentifier, "ColorLayers", layer) +end) + +asset.export(layer) + + +asset.meta = { + Name = Name, + Version = "1.0", + Description = Description .. "Data provided by the National Oceanic and Atmospheric Administration.", + Author = "National Oceanic and Atmospheric Administration", + URL = URL, + License = "https://sos.noaa.gov/copyright/" +} diff --git a/data/assets/scene/solarsystem/planets/earth/noaa-sos/atmosphere/reanalysis-antarctic.asset b/data/assets/scene/solarsystem/planets/earth/noaa-sos/atmosphere/reanalysis-antarctic.asset new file mode 100644 index 0000000000..d058d8dfc5 --- /dev/null +++ b/data/assets/scene/solarsystem/planets/earth/noaa-sos/atmosphere/reanalysis-antarctic.asset @@ -0,0 +1,81 @@ +local globeIdentifier = asset.require("../../earth").Earth.Identifier + + +local Name = "Precipitable Water - Antarctic Expedition - 1902 - 1903" +local Identifier = "noaa-sos-atmosphere-reanalysis-antarctic" +local Description = [[ Until 2010, the longest globally-complete estimate of the +four-dimensional atmospheric circulation was from a dataset produced jointly by NOAA's +National Centers for Environmental Prediction and the National Center for Atmospheric +Research: the NCEP-NCAR Reanalysis. This dataset of computer-generated weather map +reconstructions or "reanalyses" starts from 1948, leaving many important climate events +such as 1930's Dust Bowl drought uncovered. To expand the coverage of global gridded +reanalyses, the 20th Century Reanalysis Project is an effort led by NOAA's Earth System +Research Laboratory Physical Sciences Division and the University of Colorado CIRES +Climate Diagnostics Center to produce a reanalysis dataset spanning the entire twentieth +century, assimilating only surface observations of synoptic pressure, monthly sea surface +temperature and sea ice distribution. The pressure observations have been assembled +through international cooperation under the auspices of the Atmospheric Circulation +Reconstructions over the Earth initiative, ACRE, and working groups of the Global Climate +Observing System and World Climate Research Program. The Project uses a +recently-developed Ensemble Filter data assimilation method which directly yields each +six-hourly reanalysis field or weather map as the most likely state of the global +atmosphere, and also estimates uncertainty in that map. This dataset will provide the +first estimates of global tropospheric variability spanning 1871 to present at six-hourly +temporal resolution and 2 degree longitude by 2 degree latitude resolution. ]] +local URL = "https://sos.noaa.gov/catalog/datasets/precipitable-water-antarctic-expedition-1902-1903/" + + +local syncedDirectory = asset.syncedResource({ + Name = Name, + Type = "HttpSynchronization", + Identifier = Identifier, + Version = 1 +}) + +local imagesDestination = syncedDirectory .. "images" + +local layer = { + Identifier = Identifier, + Name = Name, + Type = "ImageSequenceTileLayer", + FolderPath = imagesDestination, + Description = Description +} + +local colorbar = { + Identifier = Identifier, + Name = Name, + Type = "ScreenSpaceImageLocal", + TexturePath = syncedDirectory .. "colorbar.png", + FaceCamera = false, + BackgroundColor = { 1.0, 1.0, 1.0, 1.0 }, + CartesianPosition = { 0.0, -0.5, -2.0 } +} + +asset.onInitialize(function() + if not openspace.directoryExists(imagesDestination) then + openspace.printInfo("Extracting " .. Name) + openspace.unzipFile(syncedDirectory .. "2048.zip", imagesDestination, true) + end + + openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer) + openspace.addScreenSpaceRenderable(colorbar); +end) + +asset.onDeinitialize(function() + openspace.globebrowsing.deleteLayer(globeIdentifier, "ColorLayers", layer) + openspace.removeScreenSpaceRenderable(colorbar) +end) + +asset.export(layer) +asset.export(colorbar) + + +asset.meta = { + Name = Name, + Version = "1.0", + Description = Description .. "Data provided by the National Oceanic and Atmospheric Administration.", + Author = "National Oceanic and Atmospheric Administration", + URL = URL, + License = "https://sos.noaa.gov/copyright/" +} diff --git a/data/assets/scene/solarsystem/planets/earth/noaa-sos/atmosphere/reanalysis-elnino.asset b/data/assets/scene/solarsystem/planets/earth/noaa-sos/atmosphere/reanalysis-elnino.asset new file mode 100644 index 0000000000..55a561d92a --- /dev/null +++ b/data/assets/scene/solarsystem/planets/earth/noaa-sos/atmosphere/reanalysis-elnino.asset @@ -0,0 +1,81 @@ +local globeIdentifier = asset.require("../../earth").Earth.Identifier + + +local Name = "Precipitable Water - El Nino - 1917 - 1919" +local Identifier = "noaa-sos-atmosphere-reanalysis-elnino" +local Description = [[ Until 2010, the longest globally-complete estimate of the +four-dimensional atmospheric circulation was from a dataset produced jointly by NOAA's +National Centers for Environmental Prediction and the National Center for Atmospheric +Research: the NCEP-NCAR Reanalysis. This dataset of computer-generated weather map +reconstructions or "reanalyses" starts from 1948, leaving many important climate events +such as 1930's Dust Bowl drought uncovered. To expand the coverage of global gridded +reanalyses, the 20th Century Reanalysis Project is an effort led by NOAA's Earth System +Research Laboratory Physical Sciences Division and the University of Colorado CIRES +Climate Diagnostics Center to produce a reanalysis dataset spanning the entire twentieth +century, assimilating only surface observations of synoptic pressure, monthly sea surface +temperature and sea ice distribution. The pressure observations have been assembled +through international cooperation under the auspices of the Atmospheric Circulation +Reconstructions over the Earth initiative, ACRE, and working groups of the Global Climate +Observing System and World Climate Research Program. The Project uses a +recently-developed Ensemble Filter data assimilation method which directly yields each +six-hourly reanalysis field or weather map as the most likely state of the global +atmosphere, and also estimates uncertainty in that map. This dataset will provide the +first estimates of global tropospheric variability spanning 1871 to present at six-hourly +temporal resolution and 2 degree longitude by 2 degree latitude resolution. ]] +local URL = "https://sos.noaa.gov/catalog/datasets/precipitable-water-el-nino-1917-1919/" + + +local syncedDirectory = asset.syncedResource({ + Name = Name, + Type = "HttpSynchronization", + Identifier = Identifier, + Version = 1 +}) + +local imagesDestination = syncedDirectory .. "images" + +local layer = { + Identifier = Identifier, + Name = Name, + Type = "ImageSequenceTileLayer", + FolderPath = imagesDestination, + Description = Description +} + +local colorbar = { + Identifier = Identifier, + Name = Name, + Type = "ScreenSpaceImageLocal", + TexturePath = syncedDirectory .. "colorbar.png", + FaceCamera = false, + BackgroundColor = { 1.0, 1.0, 1.0, 1.0 }, + CartesianPosition = { 0.0, -0.5, -2.0 } +} + +asset.onInitialize(function() + if not openspace.directoryExists(imagesDestination) then + openspace.printInfo("Extracting " .. Name) + openspace.unzipFile(syncedDirectory .. "2048.zip", imagesDestination, true) + end + + openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer) + openspace.addScreenSpaceRenderable(colorbar); +end) + +asset.onDeinitialize(function() + openspace.globebrowsing.deleteLayer(globeIdentifier, "ColorLayers", layer) + openspace.removeScreenSpaceRenderable(colorbar) +end) + +asset.export(layer) +asset.export(colorbar) + + +asset.meta = { + Name = Name, + Version = "1.0", + Description = Description .. "Data provided by the National Oceanic and Atmospheric Administration.", + Author = "National Oceanic and Atmospheric Administration", + URL = URL, + License = "https://sos.noaa.gov/copyright/" +} diff --git a/data/assets/scene/solarsystem/planets/earth/noaa-sos/atmosphere/reanalysis-hurricane.asset b/data/assets/scene/solarsystem/planets/earth/noaa-sos/atmosphere/reanalysis-hurricane.asset new file mode 100644 index 0000000000..ece40e4edc --- /dev/null +++ b/data/assets/scene/solarsystem/planets/earth/noaa-sos/atmosphere/reanalysis-hurricane.asset @@ -0,0 +1,81 @@ +local globeIdentifier = asset.require("../../earth").Earth.Identifier + + +local Name = "Precipitable Water - Galveston Hurricane - 1900" +local Identifier = "noaa-sos-atmosphere-reanalysis-hurricane" +local Description = [[ Until 2010, the longest globally-complete estimate of the +four-dimensional atmospheric circulation was from a dataset produced jointly by NOAA's +National Centers for Environmental Prediction and the National Center for Atmospheric +Research: the NCEP-NCAR Reanalysis. This dataset of computer-generated weather map +reconstructions or "reanalyses" starts from 1948, leaving many important climate events +such as 1930's Dust Bowl drought uncovered. To expand the coverage of global gridded +reanalyses, the 20th Century Reanalysis Project is an effort led by NOAA's Earth System +Research Laboratory Physical Sciences Division and the University of Colorado CIRES +Climate Diagnostics Center to produce a reanalysis dataset spanning the entire twentieth +century, assimilating only surface observations of synoptic pressure, monthly sea surface +temperature and sea ice distribution. The pressure observations have been assembled +through international cooperation under the auspices of the Atmospheric Circulation +Reconstructions over the Earth initiative, ACRE, and working groups of the Global Climate +Observing System and World Climate Research Program. The Project uses a +recently-developed Ensemble Filter data assimilation method which directly yields each +six-hourly reanalysis field or weather map as the most likely state of the global +atmosphere, and also estimates uncertainty in that map. This dataset will provide the +first estimates of global tropospheric variability spanning 1871 to present at six-hourly +temporal resolution and 2 degree longitude by 2 degree latitude resolution. ]] +local URL = "https://sos.noaa.gov/catalog/datasets/precipitable-water-galveston-hurricane-1900/" + + +local syncedDirectory = asset.syncedResource({ + Name = Name, + Type = "HttpSynchronization", + Identifier = Identifier, + Version = 1 +}) + +local imagesDestination = syncedDirectory .. "images" + +local layer = { + Identifier = Identifier, + Name = Name, + Type = "ImageSequenceTileLayer", + FolderPath = imagesDestination, + Description = Description +} + +local colorbar = { + Identifier = Identifier, + Name = Name, + Type = "ScreenSpaceImageLocal", + TexturePath = syncedDirectory .. "colorbar.png", + FaceCamera = false, + BackgroundColor = { 1.0, 1.0, 1.0, 1.0 }, + CartesianPosition = { 0.0, -0.5, -2.0 } +} + +asset.onInitialize(function() + if not openspace.directoryExists(imagesDestination) then + openspace.printInfo("Extracting " .. Name) + openspace.unzipFile(syncedDirectory .. "2048_png.zip", imagesDestination, true) + end + + openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer) + openspace.addScreenSpaceRenderable(colorbar); +end) + +asset.onDeinitialize(function() + openspace.globebrowsing.deleteLayer(globeIdentifier, "ColorLayers", layer) + openspace.removeScreenSpaceRenderable(colorbar) +end) + +asset.export(layer) +asset.export(colorbar) + + +asset.meta = { + Name = Name, + Version = "1.0", + Description = Description .. "Data provided by the National Oceanic and Atmospheric Administration.", + Author = "National Oceanic and Atmospheric Administration", + URL = URL, + License = "https://sos.noaa.gov/copyright/" +} diff --git a/data/assets/scene/solarsystem/planets/earth/noaa-sos/atmosphere/sandy.asset b/data/assets/scene/solarsystem/planets/earth/noaa-sos/atmosphere/sandy.asset new file mode 100644 index 0000000000..e22de7049b --- /dev/null +++ b/data/assets/scene/solarsystem/planets/earth/noaa-sos/atmosphere/sandy.asset @@ -0,0 +1,58 @@ +local globeIdentifier = asset.require("../../earth").Earth.Identifier + + +local Name = "Hurricane Sandy: Linear IR - Oct. 2012" +local Identifier = "noaa-sos-atmosphere-sandy" +local Description = [[ Hurricane Sandy was a memorable and disastrous storm that hit the +Caribbean islands and the Mid-Atlantic States in October of 2012.It was the second +costliest storm in U.S. history, after Hurricane Katrina. ]] +local URL = "https://sos.noaa.gov/catalog/datasets/precipitable-water-galveston-hurricane-1900/" + + +local syncedDirectory = asset.syncedResource({ + Name = Name, + Type = "HttpSynchronization", + Identifier = Identifier, + Version = 1 +}) + +local imagesDestination = syncedDirectory .. "images" + +local layer = { + Identifier = Identifier, + Name = Name, + Type = "TemporalTileLayer", + Mode = "Folder", + Folder = { + Folder = imagesDestination, + -- See https://en.cppreference.com/w/cpp/io/manip/get_time for an explanation of the + -- time formatting string + Format = "linear_rgb_cyl_%Y%m%d_%H%M.jpg" + }, + Description = Description +} + +asset.onInitialize(function() + if not openspace.directoryExists(imagesDestination) then + openspace.printInfo("Extracting " .. Name) + openspace.unzipFile(syncedDirectory .. "4096.zip", imagesDestination, true) + end + + openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer) +end) + +asset.onDeinitialize(function() + openspace.globebrowsing.deleteLayer(globeIdentifier, "ColorLayers", layer) +end) + +asset.export(layer) + + +asset.meta = { + Name = Name, + Version = "1.0", + Description = Description .. "Data provided by the National Oceanic and Atmospheric Administration.", + Author = "National Oceanic and Atmospheric Administration", + URL = URL, + License = "https://sos.noaa.gov/copyright/" +} diff --git a/data/assets/scene/solarsystem/planets/earth/noaa-sos/atmosphere/sunsync_sat.asset b/data/assets/scene/solarsystem/planets/earth/noaa-sos/atmosphere/sunsync_sat.asset new file mode 100644 index 0000000000..ddd7a16019 --- /dev/null +++ b/data/assets/scene/solarsystem/planets/earth/noaa-sos/atmosphere/sunsync_sat.asset @@ -0,0 +1,63 @@ +local globeIdentifier = asset.require("../../earth").Earth.Identifier + + +local Name = "Polar Orbiting: NOAA-17 and NOAA-18" +local Identifier = "noaa-sos-atmosphere-sunsync_sat" +local Description = [[ Satellites allow scientists to observe the Earth from above the +atmosphere. The National Oceanic and Atmospheric Administration, NOAA, has several +different types of satellites, including geostationary and polar orbiting satellites. +These datasets show the path of Polar-orbiting Operational Environmental Satellites, or +POES for short. NOAA has two POES in operation currently, a morning and afternoon +satellite. The morning satellite crosses the equator on the sun-light side of the Earth +in the morning, and the afternoon satellite crosses in the afternoon. Both satellites +orbit the Earth 14.1 times per day. ]] +local URL = "https://sos.noaa.gov/catalog/datasets/polar-orbiting-noaa-17-and-noaa-18/" + + +local syncedDirectory = asset.syncedResource({ + Name = Name, + Type = "HttpSynchronization", + Identifier = Identifier, + Version = 1 +}) + +local imagesDestination = syncedDirectory .. "images" + +local layer = { + Identifier = Identifier, + Name = Name, + Type = "TemporalTileLayer", + Mode = "Folder", + Folder = { + Folder = imagesDestination, + -- See https://en.cppreference.com/w/cpp/io/manip/get_time for an explanation of the + -- time formatting string + Format = "sunsync_%Y%j%H%M.jpg" + }, + Description = Description +} + +asset.onInitialize(function() + if not openspace.directoryExists(imagesDestination) then + openspace.printInfo("Extracting " .. Name) + openspace.unzipFile(syncedDirectory .. "2048.zip", imagesDestination, true) + end + + openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer) +end) + +asset.onDeinitialize(function() + openspace.globebrowsing.deleteLayer(globeIdentifier, "ColorLayers", layer) +end) + +asset.export(layer) + + +asset.meta = { + Name = Name, + Version = "1.0", + Description = Description .. "Data provided by the National Oceanic and Atmospheric Administration.", + Author = "National Oceanic and Atmospheric Administration", + URL = URL, + License = "https://sos.noaa.gov/copyright/" +} diff --git a/data/assets/scene/solarsystem/planets/earth/noaa-sos/atmosphere/temp_anom.asset b/data/assets/scene/solarsystem/planets/earth/noaa-sos/atmosphere/temp_anom.asset new file mode 100644 index 0000000000..b1c3b1417b --- /dev/null +++ b/data/assets/scene/solarsystem/planets/earth/noaa-sos/atmosphere/temp_anom.asset @@ -0,0 +1,79 @@ +local globeIdentifier = asset.require("../../earth").Earth.Identifier + + +local Name = "Temperature Anomaly: Yearly (NOAA) - 1880 - Present" +local Identifier = "noaa-sos-atmosphere-temp_anom" +local Description = [[ This animation shows Earth's surface temperature from 1880 through +2019 compared to the 20th century average. Maps are based on data from NOAA's National +Climatic Data Center. In 2016, the combined land and ocean surface temperature was 1.69°F +(0.94°C) above the 20th century average, making the year the warmest since records began +in 1880. This is the third consecutive year a new global annual temperature record has +been set. The first eight months of 2016 set monthly temperatures records and the last +four months were ranked among the top five for each month's temperature records. To date, +all 16 years of the 21st century rank among the seventeen warmest on record (1998 is +currently the eighth warmest.) The five warmest years have all occurred since 2010. 2017 +was the third warmest, slightly cooler than the previous two. 2018 was the fourth +warmest. ]] +local URL = "https://sos.noaa.gov/catalog/datasets/temperature-anomaly-yearly-noaa-1880-present/" + + +local syncedDirectory = asset.syncedResource({ + Name = Name, + Type = "HttpSynchronization", + Identifier = Identifier, + Version = 1 +}) + +local imagesDestination = syncedDirectory .. "images" + +local layer = { + Identifier = Identifier, + Name = Name, + Type = "TemporalTileLayer", + Mode = "Folder", + Folder = { + Folder = imagesDestination, + -- See https://en.cppreference.com/w/cpp/io/manip/get_time for an explanation of the + -- time formatting string + Format = "ANOM.yearly.%Y.color.png" + }, + Description = Description +} + +local colorbar = { + Identifier = Identifier, + Name = Name, + Type = "ScreenSpaceImageLocal", + TexturePath = syncedDirectory .. "colorbar.png", + FaceCamera = false, + BackgroundColor = { 1.0, 1.0, 1.0, 1.0 }, + CartesianPosition = { 0.0, -0.5, -2.0 } +} + +asset.onInitialize(function() + if not openspace.directoryExists(imagesDestination) then + openspace.printInfo("Extracting " .. Name) + openspace.unzipFile(syncedDirectory .. "4096_new.zip", imagesDestination, true) + end + + openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer) + openspace.addScreenSpaceRenderable(colorbar); +end) + +asset.onDeinitialize(function() + openspace.globebrowsing.deleteLayer(globeIdentifier, "ColorLayers", layer) + openspace.removeScreenSpaceRenderable(colorbar) +end) + +asset.export(layer) +asset.export(colorbar) + + +asset.meta = { + Name = Name, + Version = "1.0", + Description = Description .. "Data provided by the National Oceanic and Atmospheric Administration.", + Author = "National Oceanic and Atmospheric Administration", + URL = URL, + License = "https://sos.noaa.gov/copyright/" +} diff --git a/data/assets/scene/solarsystem/planets/earth/noaa-sos/atmosphere/tropical_widening.asset b/data/assets/scene/solarsystem/planets/earth/noaa-sos/atmosphere/tropical_widening.asset new file mode 100644 index 0000000000..30018e37be --- /dev/null +++ b/data/assets/scene/solarsystem/planets/earth/noaa-sos/atmosphere/tropical_widening.asset @@ -0,0 +1,56 @@ +local globeIdentifier = asset.require("../../earth").Earth.Identifier + + +local Name = "Tropical Widening" +local Identifier = "noaa-sos-atmosphere-tropical_widening" +local Description = [[ This dataset was developed as part of the EarthNow project, and +shows the changes in the tropical zone boundaries over the last three decades. ]] +local URL = "https://sos.noaa.gov/catalog/datasets/tropical-widening/" + + +local syncedDirectory = asset.syncedResource({ + Name = Name, + Type = "HttpSynchronization", + Identifier = Identifier, + Version = 1 +}) + +local layer = { + Identifier = Identifier, + Name = Name, + FilePath = syncedDirectory .. "2048.png", + Description = Description +} + +local colorbar = { + Identifier = Identifier, + Name = Name, + Type = "ScreenSpaceImageLocal", + TexturePath = syncedDirectory .. "colorbar.jpg", + FaceCamera = false, + Scale = 0.175, + CartesianPosition = { 0.0, -0.3, -2.0 } +} + +asset.onInitialize(function() + openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer) + openspace.addScreenSpaceRenderable(colorbar); +end) + +asset.onDeinitialize(function() + openspace.globebrowsing.deleteLayer(globeIdentifier, "ColorLayers", layer) + openspace.removeScreenSpaceRenderable(colorbar) +end) + +asset.export(layer) +asset.export(colorbar) + + +asset.meta = { + Name = Name, + Version = "1.0", + Description = Description .. "Data provided by the National Oceanic and Atmospheric Administration.", + Author = "National Oceanic and Atmospheric Administration", + URL = URL, + License = "https://sos.noaa.gov/copyright/" +} diff --git a/data/assets/scene/solarsystem/planets/earth/noaa-sos/atmosphere/typhoon_haiyan-wvsst.asset b/data/assets/scene/solarsystem/planets/earth/noaa-sos/atmosphere/typhoon_haiyan-wvsst.asset new file mode 100644 index 0000000000..1e685a4c34 --- /dev/null +++ b/data/assets/scene/solarsystem/planets/earth/noaa-sos/atmosphere/typhoon_haiyan-wvsst.asset @@ -0,0 +1,64 @@ +local globeIdentifier = asset.require("../../earth").Earth.Identifier + + +local Name = "Typhoon Haiyan: Water Vapor and SST - Oct - Nov 2013" +local Identifier = "noaa-sos-atmosphere-typhoon_haiyan-wvsst" +local Description = [[ Typhoon Haiyan, also known in the Phillippines as Typhoon Yolanda, +may be the strongest recorded tropical cyclone to make landfall with sustained speeds up +to 195 mph. If confirmed, it would beat the previous record holder, Hurricane Camille +(1969). This dataset is taken from the Real-Time Linear IR satellite dataset and +Real-time: SST from October 30th to November 12th, 2013. ]] +local URL = "https://sos.noaa.gov/catalog/datasets/typhoon-haiyan-water-vapor-and-sst-oct-nov-2013/" + + +local syncedDirectory = asset.syncedResource({ + Name = Name, + Type = "HttpSynchronization", + Identifier = Identifier, + Version = 1 +}) + +local imagesDestination = syncedDirectory .. "images" + +local layer = { + Identifier = Identifier, + Name = Name, + Type = "ImageSequenceTileLayer", + FolderPath = imagesDestination, + Description = Description +} + +local track = { + Identifier = Identifier .. "-track", + Name = Name .. " (Track)", + FilePath = syncedDirectory .. "track.png", + Description = Description +} + +asset.onInitialize(function() + if not openspace.directoryExists(imagesDestination) then + openspace.printInfo("Extracting " .. Name) + openspace.unzipFile(syncedDirectory .. "2048.zip", imagesDestination, true) + end + + openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer) + openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", track) +end) + +asset.onDeinitialize(function() + openspace.globebrowsing.deleteLayer(globeIdentifier, "ColorLayers", layer) + openspace.globebrowsing.deleteLayer(globeIdentifier, "ColorLayers", track) +end) + +asset.export(layer) +asset.export(track) + + +asset.meta = { + Name = Name, + Version = "1.0", + Description = Description .. "Data provided by the National Oceanic and Atmospheric Administration.", + Author = "National Oceanic and Atmospheric Administration", + URL = URL, + License = "https://sos.noaa.gov/copyright/" +} diff --git a/data/assets/scene/solarsystem/planets/earth/noaa-sos/atmosphere/typhoon_haiyan.asset b/data/assets/scene/solarsystem/planets/earth/noaa-sos/atmosphere/typhoon_haiyan.asset new file mode 100644 index 0000000000..f22d909709 --- /dev/null +++ b/data/assets/scene/solarsystem/planets/earth/noaa-sos/atmosphere/typhoon_haiyan.asset @@ -0,0 +1,70 @@ +local globeIdentifier = asset.require("../../earth").Earth.Identifier + + +local Name = "Typhoon Haiyan - Oct - Nov 2013" +local Identifier = "noaa-sos-atmosphere-typhoon_haiyan" +local Description = [[ Typhoon Haiyan, also known in the Phillippines as Typhoon Yolanda, +may be the strongest recorded tropical cyclone to make landfall with sustained speeds up +to 195 mph. If confirmed, it would beat the previous record holder, Hurricane Camille +(1969). This dataset is taken from the Real-Time Linear IR satellite dataset from October +30th to November 12th, 2013. ]] +local URL = "https://sos.noaa.gov/catalog/datasets/typhoon-haiyan-oct-nov-2013/" + + +local syncedDirectory = asset.syncedResource({ + Name = Name, + Type = "HttpSynchronization", + Identifier = Identifier, + Version = 1 +}) + +local imagesDestination = syncedDirectory .. "images" + +local layer = { + Identifier = Identifier, + Name = Name, + Type = "TemporalTileLayer", + Mode = "Folder", + Folder = { + Folder = imagesDestination, + -- See https://en.cppreference.com/w/cpp/io/manip/get_time for an explanation of the + -- time formatting string + Format = "linear_rgb_cyl_%Y%m%d_%H%M.jpg" + }, + Description = Description +} + +local track = { + Identifier = Identifier .. "-track", + Name = Name .. " (Track)", + FilePath = syncedDirectory .. "track.png", + Description = Description +} + +asset.onInitialize(function() + if not openspace.directoryExists(imagesDestination) then + openspace.printInfo("Extracting " .. Name) + openspace.unzipFile(syncedDirectory .. "2048.zip", imagesDestination, true) + end + + openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer) + openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", track) +end) + +asset.onDeinitialize(function() + openspace.globebrowsing.deleteLayer(globeIdentifier, "ColorLayers", layer) + openspace.globebrowsing.deleteLayer(globeIdentifier, "ColorLayers", track) +end) + +asset.export(layer) +asset.export(track) + + +asset.meta = { + Name = Name, + Version = "1.0", + Description = Description .. "Data provided by the National Oceanic and Atmospheric Administration.", + Author = "National Oceanic and Atmospheric Administration", + URL = URL, + License = "https://sos.noaa.gov/copyright/" +} diff --git a/data/assets/scene/solarsystem/planets/earth/noaa-sos/atmosphere/volcano_ash.asset b/data/assets/scene/solarsystem/planets/earth/noaa-sos/atmosphere/volcano_ash.asset new file mode 100644 index 0000000000..55eb70e0e7 --- /dev/null +++ b/data/assets/scene/solarsystem/planets/earth/noaa-sos/atmosphere/volcano_ash.asset @@ -0,0 +1,60 @@ +local globeIdentifier = asset.require("../../earth").Earth.Identifier + + +local Name = "Volcanic Ash Eruption: Iceland" +local Identifier = "noaa-sos-atmosphere-volcano_ash" +local Description = [[ Eyjafjallajokull, a glacier covered volcano in southern Iceland, +erupted explosively on April 14, 2010. The name Eyjafjallajokull is Icelandic for +"island-mountain glacier." The volcano initially erupted on March 20, but this original +eruption was much smaller and only caused a brief evacuation of the local area. The April +14 event was 10 to 20 times more powerful and had international impacts. Locally, the +eruption and resulting lava melted the surrounding glacier, causing major flooding. +Internationally, air traffic was impacted for several days following the eruption. The +volcano ejected ash over 30,000ft into the atmosphere, causing significant disruptions to +the European and Trans-Atlantic air travel. Airspace over much of northern Europe was +closed from April 15 through April 23 for concerns over the abrasive volcanic ash causing +engine failures. ]] +local URL = "https://sos.noaa.gov/catalog/datasets/volcanic-ash-eruption-iceland/" + + +local syncedDirectory = asset.syncedResource({ + Name = Name, + Type = "HttpSynchronization", + Identifier = Identifier, + Version = 1 +}) + +local imagesDestination = syncedDirectory .. "images" + +local layer = { + Identifier = Identifier, + Name = Name, + Type = "ImageSequenceTileLayer", + FolderPath = imagesDestination, + Description = Description +} + +asset.onInitialize(function() + if not openspace.directoryExists(imagesDestination) then + openspace.printInfo("Extracting " .. Name) + openspace.unzipFile(syncedDirectory .. "2992.zip", imagesDestination, true) + end + + openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer) +end) + +asset.onDeinitialize(function() + openspace.globebrowsing.deleteLayer(globeIdentifier, "ColorLayers", layer) +end) + +asset.export(layer) + + +asset.meta = { + Name = Name, + Version = "1.0", + Description = Description .. "Data provided by the National Oceanic and Atmospheric Administration.", + Author = "National Oceanic and Atmospheric Administration", + URL = URL, + License = "https://sos.noaa.gov/copyright/" +} diff --git a/data/assets/scene/solarsystem/planets/earth/noaa-sos/land/agriculture-cropland.asset b/data/assets/scene/solarsystem/planets/earth/noaa-sos/land/agriculture-cropland.asset new file mode 100644 index 0000000000..ba03bb84af --- /dev/null +++ b/data/assets/scene/solarsystem/planets/earth/noaa-sos/land/agriculture-cropland.asset @@ -0,0 +1,70 @@ +local globeIdentifier = asset.require("../../earth").Earth.Identifier + + +local Name = "NOAA Science on a Sphere. Agriculture: Cropland Intensity" +local Identifier = "noaa-sos-land-agriculture-cropland" +local Description = [[ These visualizations, created by the University of Minnesota's +Institute on the Environment, show the global land use intensity for pastureland and +cropland. Cropland is land devoted to growing plants for humans use for food, material, +or fuel. Pastureland is land used for raising and grazing animals. Altogether, cropland +covers about 16 million square kilometers, an area of land approximately the size of +South America. Global pastureland occupies more than 30 million square kilometers, about +the area of Africa. ]] +local URL = "https://sos.noaa.gov/catalog/datasets/agriculture-cropland-intensity/" + + +local syncedDirectory = asset.syncedResource({ + Name = Name, + Type = "HttpSynchronization", + Identifier = Identifier, + Version = 1 +}) + +local layer = { + Identifier = Identifier, + Name = Name, + FilePath = syncedDirectory .. "4096.png", + Description = Description +} + +local layer_countries = { + Identifier = Identifier .. "-countries", + Name = Name .. " (w/ countries)", + FilePath = syncedDirectory .. "4096_countries.png", + Description = Description +} + +local legend = { + Identifier = Identifier, + Name = Name, + Type = "ScreenSpaceImageLocal", + TexturePath = syncedDirectory .. "legend.png", + FaceCamera = false, + CartesianPosition = { 0.0, -0.5, -2.0 } +} + +asset.onInitialize(function() + openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer) + openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer_countries) + openspace.addScreenSpaceRenderable(legend); +end) + +asset.onDeinitialize(function() + openspace.globebrowsing.deleteLayer(globeIdentifier, "ColorLayers", layer) + openspace.globebrowsing.deleteLayer(globeIdentifier, "ColorLayers", layer_countries) + openspace.removeScreenSpaceRenderable(legend) +end) + +asset.export(layer) +asset.export(layer_countries) +asset.export(legend) + + +asset.meta = { + Name = Name, + Version = "1.0", + Description = Description .. "Data provided by the National Oceanic and Atmospheric Administration.", + Author = "National Oceanic and Atmospheric Administration", + URL = URL, + License = "https://sos.noaa.gov/copyright/" +} diff --git a/data/assets/scene/solarsystem/planets/earth/noaa-sos/land/agriculture-pastureland.asset b/data/assets/scene/solarsystem/planets/earth/noaa-sos/land/agriculture-pastureland.asset new file mode 100644 index 0000000000..3fda0f5946 --- /dev/null +++ b/data/assets/scene/solarsystem/planets/earth/noaa-sos/land/agriculture-pastureland.asset @@ -0,0 +1,70 @@ +local globeIdentifier = asset.require("../../earth").Earth.Identifier + + +local Name = "NOAA Science on a Sphere. Agriculture: Pastureland Intensity" +local Identifier = "noaa-sos-land-agriculture-pastureland" +local Description = [[ These visualizations, created by the University of Minnesota's +Institute on the Environment, show the global land use intensity for pastureland and +cropland. Cropland is land devoted to growing plants for humans use for food, material, +or fuel. Pastureland is land used for raising and grazing animals. Altogether, cropland +covers about 16 million square kilometers, an area of land approximately the size of +South America. Global pastureland occupies more than 30 million square kilometers, about +the area of Africa. ]] +local URL = "https://sos.noaa.gov/catalog/datasets/agriculture-pastureland-intensity/" + + +local syncedDirectory = asset.syncedResource({ + Name = Name, + Type = "HttpSynchronization", + Identifier = Identifier, + Version = 1 +}) + +local layer = { + Identifier = Identifier, + Name = Name, + FilePath = syncedDirectory .. "4096.png", + Description = Description +} + +local layer_countries = { + Identifier = Identifier .. "-countries", + Name = Name .. " (w/ countries)", + FilePath = syncedDirectory .. "4096_countries.png", + Description = Description +} + +local legend = { + Identifier = Identifier, + Name = Name, + Type = "ScreenSpaceImageLocal", + TexturePath = syncedDirectory .. "legend.png", + FaceCamera = false, + CartesianPosition = { 0.0, -0.5, -2.0 } +} + +asset.onInitialize(function() + openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer) + openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer_countries) + openspace.addScreenSpaceRenderable(legend); +end) + +asset.onDeinitialize(function() + openspace.globebrowsing.deleteLayer(globeIdentifier, "ColorLayers", layer) + openspace.globebrowsing.deleteLayer(globeIdentifier, "ColorLayers", layer_countries) + openspace.removeScreenSpaceRenderable(legend) +end) + +asset.export(layer) +asset.export(layer_countries) +asset.export(legend) + + +asset.meta = { + Name = Name, + Version = "1.0", + Description = Description .. "Data provided by the National Oceanic and Atmospheric Administration.", + Author = "National Oceanic and Atmospheric Administration", + URL = URL, + License = "https://sos.noaa.gov/copyright/" +} diff --git a/data/assets/scene/solarsystem/planets/earth/noaa-sos/land/birds.asset b/data/assets/scene/solarsystem/planets/earth/noaa-sos/land/birds.asset new file mode 100644 index 0000000000..9d98b04ba8 --- /dev/null +++ b/data/assets/scene/solarsystem/planets/earth/noaa-sos/land/birds.asset @@ -0,0 +1,66 @@ +local globeIdentifier = asset.require("../../earth").Earth.Identifier + +local Name = "NOAA Science on a Sphere. Bird Migration Patterns - Western Hemisphere" +local Identifier = "noaa-sos-land-birds" +local Description = [[ This dataset shows the migration of 118 species of terrestrial +bird populations in the Western Hemisphere. Each dot represents the estimated location of +the center of each species' population for each day of the year. These estimations come +from millions of observations from the eBird citizen-science database. eBird is a +real-time, online checklist program, launched in 2002 by the Cornell Lab of Ornithology +and National Audubon Society, that allows birdwatchers to enter their observations. ]] +local URL = "https://sos.noaa.gov/catalog/datasets/bird-migration-patterns-western-hemisphere/" + + +local syncedDirectory = asset.syncedResource({ + Name = Name, + Type = "HttpSynchronization", + Identifier = Identifier, + Version = 1 +}) + +local imagesDestination = syncedDirectory .. "images" + +local layer = { + Identifier = Identifier, + Name = Name, + Type = "ImageSequenceTileLayer", + FolderPath = imagesDestination, + Description = Description +} + +local colorbar = { + Identifier = Identifier, + Name = Name, + Type = "ScreenSpaceImageLocal", + TexturePath = syncedDirectory .. "colorbar.png", + FaceCamera = false, + CartesianPosition = { 0.0, -0.5, -2.0 } +} + +asset.onInitialize(function() + if not openspace.directoryExists(imagesDestination) then + openspace.printInfo("Extracting " .. Name) + openspace.unzipFile(syncedDirectory .. "birds.zip", imagesDestination, true) + end + + openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer) + openspace.addScreenSpaceRenderable(colorbar); +end) + +asset.onDeinitialize(function() + openspace.globebrowsing.deleteLayer(globeIdentifier, "ColorLayers", layer) + openspace.removeScreenSpaceRenderable(colorbar) +end) + +asset.export(layer) +asset.export(colorbar) + + +asset.meta = { + Name = Name, + Version = "1.0", + Description = Description .. "Data provided by the National Oceanic and Atmospheric Administration.", + Author = "National Oceanic and Atmospheric Administration", + URL = URL, + License = "https://sos.noaa.gov/copyright/" +} diff --git a/data/assets/scene/solarsystem/planets/earth/noaa-sos/land/blue_marble-blue_marble.asset b/data/assets/scene/solarsystem/planets/earth/noaa-sos/land/blue_marble-blue_marble.asset new file mode 100644 index 0000000000..82ab35c64f --- /dev/null +++ b/data/assets/scene/solarsystem/planets/earth/noaa-sos/land/blue_marble-blue_marble.asset @@ -0,0 +1,48 @@ +local globeIdentifier = asset.require("../../earth").Earth.Identifier + + +local Name = "NOAA Science on a Sphere. Blue Marble: without Clouds" +local Identifier = "noaa-sos-land-blue_marble-blue_marble" +local Description = [[ The Blue Marble is an incredibly detailed, true-color depiction of +the Earth. NASA is responsible for this dataset made from a compilation of satellite +images throughout 2001. Most of the information came from NASA's MODIS, the Moderate +Resolution Imaging Spectroradiometer, which is attached to the Terra satellite 435 miles +above Earth. The background image of the land and oceans was created using data from June +through September of 2001. This could not be done in a single day or even a week because +on any given day clouds are blocking a significant portion of the surface. ]] +local URL = "https://sos.noaa.gov/catalog/datasets/blue-marble-without-clouds/" + + +local syncedDirectory = asset.syncedResource({ + Name = Name, + Type = "HttpSynchronization", + Identifier = Identifier, + Version = 1 +}) + +local layer = { + Identifier = Identifier, + Name = Name, + FilePath = syncedDirectory .. "4096.jpg", + Description = Description +} + +asset.onInitialize(function() + openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer) +end) + +asset.onDeinitialize(function() + openspace.globebrowsing.deleteLayer(globeIdentifier, "ColorLayers", layer) +end) + +asset.export(layer) + + +asset.meta = { + Name = Name, + Version = "1.0", + Description = Description .. "Data provided by the National Oceanic and Atmospheric Administration.", + Author = "National Oceanic and Atmospheric Administration", + URL = URL, + License = "https://sos.noaa.gov/copyright/" +} diff --git a/data/assets/scene/solarsystem/planets/earth/noaa-sos/land/blue_marble-blue_marble_topo.asset b/data/assets/scene/solarsystem/planets/earth/noaa-sos/land/blue_marble-blue_marble_topo.asset new file mode 100644 index 0000000000..80ae191923 --- /dev/null +++ b/data/assets/scene/solarsystem/planets/earth/noaa-sos/land/blue_marble-blue_marble_topo.asset @@ -0,0 +1,61 @@ +local globeIdentifier = asset.require("../../earth").Earth.Identifier + + +local Name = "Blue Marble: with Topography - Seasonal" +local Identifier = "noaa-sos-land-blue_marble-next_gen-topo" +local Description = [[ The Blue Marble is an incredibly detailed, true-color depiction of +the Earth. The Blue Marble Next Generation is an update on the original that has greater +detail. "The original Blue Marble was a composite of four months of MODIS observations +with a spatial resolution (level of detail) of 1 square kilometer per pixel. Blue Marble: +Next Generation offers a years worth of monthly composites at a spatial resolution of +500 meters.". ]] +local URL = "https://sos.noaa.gov/catalog/datasets/blue-marble-with-topography-seasonal/" + + +local syncedDirectory = asset.syncedResource({ + Name = Name, + Type = "HttpSynchronization", + Identifier = Identifier, + Version = 1 +}) + +local imagesDestination = syncedDirectory .. "images" + +local layer = { + Identifier = Identifier, + Name = Name, + Type = "TemporalTileLayer", + Mode = "Folder", + Folder = { + Folder = imagesDestination, + -- See https://en.cppreference.com/w/cpp/io/manip/get_time for an explanation of the + -- time formatting string + Format = "world.%Y%m.3x5400x2700.jpg" + }, + Description = Description +} + +asset.onInitialize(function() + if not openspace.directoryExists(imagesDestination) then + openspace.printInfo("Extracting " .. Name) + openspace.unzipFile(syncedDirectory .. "5400.zip", imagesDestination, true) + end + + openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer) +end) + +asset.onDeinitialize(function() + openspace.globebrowsing.deleteLayer(globeIdentifier, "ColorLayers", layer) +end) + +asset.export(layer) + + +asset.meta = { + Name = Name, + Version = "1.0", + Description = Description .. "Data provided by the National Oceanic and Atmospheric Administration.", + Author = "National Oceanic and Atmospheric Administration", + URL = URL, + License = "https://sos.noaa.gov/copyright/" +} diff --git a/data/assets/scene/solarsystem/planets/earth/noaa-sos/land/blue_marble-blue_marble_topo_bathy.asset b/data/assets/scene/solarsystem/planets/earth/noaa-sos/land/blue_marble-blue_marble_topo_bathy.asset new file mode 100644 index 0000000000..d45c913042 --- /dev/null +++ b/data/assets/scene/solarsystem/planets/earth/noaa-sos/land/blue_marble-blue_marble_topo_bathy.asset @@ -0,0 +1,61 @@ +local globeIdentifier = asset.require("../../earth").Earth.Identifier + + +local Name = "Blue Marble: with Topography and Bathymetry" +local Identifier = "noaa-sos-land-blue_marble-next_gen-topo_bathy" +local Description = [[ The Blue Marble is an incredibly detailed, true-color depiction of +the Earth. The Blue Marble Next Generation is an update on the original that has greater +detail. "The original Blue Marble was a composite of four months of MODIS observations +with a spatial resolution (level of detail) of 1 square kilometer per pixel. Blue Marble: +Next Generation offers a years worth of monthly composites at a spatial resolution of +500 meters.". ]] +local URL = "https://sos.noaa.gov/catalog/datasets/blue-marble-with-topography-seasonal/" + + +local syncedDirectory = asset.syncedResource({ + Name = Name, + Type = "HttpSynchronization", + Identifier = Identifier, + Version = 1 +}) + +local imagesDestination = syncedDirectory .. "images" + +local layer = { + Identifier = Identifier, + Name = Name, + Type = "TemporalTileLayer", + Mode = "Folder", + Folder = { + Folder = imagesDestination, + -- See https://en.cppreference.com/w/cpp/io/manip/get_time for an explanation of the + -- time formatting string + Format = "world.topo.bathy.%Y%m.3x5400x2700.jpg" + }, + Description = Description +} + +asset.onInitialize(function() + if not openspace.directoryExists(imagesDestination) then + openspace.printInfo("Extracting " .. Name) + openspace.unzipFile(syncedDirectory .. "5400.zip", imagesDestination, true) + end + + openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer) +end) + +asset.onDeinitialize(function() + openspace.globebrowsing.deleteLayer(globeIdentifier, "ColorLayers", layer) +end) + +asset.export(layer) + + +asset.meta = { + Name = Name, + Version = "1.0", + Description = Description .. "Data provided by the National Oceanic and Atmospheric Administration.", + Author = "National Oceanic and Atmospheric Administration", + URL = URL, + License = "https://sos.noaa.gov/copyright/" +} diff --git a/data/assets/scene/solarsystem/planets/earth/noaa-sos/land/blue_marble-nightlights.asset b/data/assets/scene/solarsystem/planets/earth/noaa-sos/land/blue_marble-nightlights.asset new file mode 100644 index 0000000000..c978409898 --- /dev/null +++ b/data/assets/scene/solarsystem/planets/earth/noaa-sos/land/blue_marble-nightlights.asset @@ -0,0 +1,66 @@ +local globeIdentifier = asset.require("../../earth").Earth.Identifier + + +local Name = "Blue Marble and Nighttime Lights" +local Identifier = "noaa-sos-land-bluemarble_nightlights" +local Description = [[ This dataset shows the Earth with daytime and nighttime views of +the Earth, to demonstrate how only half of the Earth is illumintated at one time. The +Blue Marble is an incredibly detailed, true-color depiction of the Earth, and is shown on +the daylight side of the Earth in this dataset. NASA is responsible for The Blue Marble, +made from a compilation of satellite images throughout 2001. Most of the information came +from NASA's MODIS, the Moderate Resolution Imaging Spectroradiometer, which is attached +to the Terra satellite 435 miles above Earth. The background image of the land and oceans +was created using data from June through September of 2001. This could not be done in a +single day or even a week because on any given day clouds are blocking a significant +portion of the surface. The cloud image is a composite of three days worth of data. The +first two days of data were collected in the visible wavelength and the third day was +needed to get a view of the clouds over the poles using thermal infrared imagery. ]] +local URL = "https://sos.noaa.gov/catalog/datasets/blue-marble-and-nighttime-lights/" + + +local syncedDirectory = asset.syncedResource({ + Name = Name, + Type = "HttpSynchronization", + Identifier = Identifier, + Version = 1 +}) + +local imagesDestination = syncedDirectory .. "images" + +local layer = { + Identifier = Identifier, + Name = Name, + Type = "ImageSequenceTileLayer", + FolderPath = imagesDestination, + Description = Description +} + +asset.onInitialize(function() + if not openspace.directoryExists(imagesDestination) then + openspace.printInfo("Extracting " .. Name) + openspace.unzipFile(syncedDirectory .. "4096-1.zip", imagesDestination, true) + openspace.unzipFile(syncedDirectory .. "4096-2.zip", imagesDestination, true) + openspace.unzipFile(syncedDirectory .. "4096-3.zip", imagesDestination, true) + openspace.unzipFile(syncedDirectory .. "4096-4.zip", imagesDestination, true) + openspace.unzipFile(syncedDirectory .. "4096-5.zip", imagesDestination, true) + openspace.unzipFile(syncedDirectory .. "4096-6.zip", imagesDestination, true) + end + + openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer) +end) + +asset.onDeinitialize(function() + openspace.globebrowsing.deleteLayer(globeIdentifier, "ColorLayers", layer) +end) + +asset.export(layer) + + +asset.meta = { + Name = Name, + Version = "1.0", + Description = Description .. "Data provided by the National Oceanic and Atmospheric Administration.", + Author = "National Oceanic and Atmospheric Administration", + URL = URL, + License = "https://sos.noaa.gov/copyright/" +} diff --git a/data/assets/scene/solarsystem/planets/earth/noaa-sos/land/blue_marble-seasonal_blue_marble.asset b/data/assets/scene/solarsystem/planets/earth/noaa-sos/land/blue_marble-seasonal_blue_marble.asset new file mode 100644 index 0000000000..f9076a3a43 --- /dev/null +++ b/data/assets/scene/solarsystem/planets/earth/noaa-sos/land/blue_marble-seasonal_blue_marble.asset @@ -0,0 +1,62 @@ +local globeIdentifier = asset.require("../../earth").Earth.Identifier + + +local Name = "Blue Marble - Seasonal" +local Identifier = "noaa-sos-land-seasonal_blue_marble" +local Description = [[ The Blue Marble is an incredibly detailed, true-color depiction of +the Earth. NASA is responsible for this dataset made from a compilation of satellite +images throughout 2001. Most of the information came from NASA's MODIS, the Moderate +Resolution Imaging Spectroradiometer, which is attached to the Terra satellite 435 miles +above Earth. The background image of the land and oceans was created using data from June +through September of 2001. This could not be done in a single day or even a week because +on any given day clouds are blocking a significant portion of the surface. ]] +local URL = "https://sos.noaa.gov/catalog/datasets/blue-marble-seasonal/" + + +local syncedDirectory = asset.syncedResource({ + Name = Name, + Type = "HttpSynchronization", + Identifier = Identifier, + Version = 1 +}) + +local imagesDestination = syncedDirectory .. "images" + +local layer = { + Identifier = Identifier, + Name = Name, + Type = "TemporalTileLayer", + Mode = "Folder", + Folder = { + Folder = imagesDestination, + -- See https://en.cppreference.com/w/cpp/io/manip/get_time for an explanation of the + -- time formatting string + Format = "world%Y%jx4kx2k.jpg" + }, + Description = Description +} + +asset.onInitialize(function() + if not openspace.directoryExists(imagesDestination) then + openspace.printInfo("Extracting " .. Name) + openspace.unzipFile(syncedDirectory .. "4096.zip", imagesDestination, true) + end + + openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer) +end) + +asset.onDeinitialize(function() + openspace.globebrowsing.deleteLayer(globeIdentifier, "ColorLayers", layer) +end) + +asset.export(layer) + + +asset.meta = { + Name = Name, + Version = "1.0", + Description = Description .. "Data provided by the National Oceanic and Atmospheric Administration.", + Author = "National Oceanic and Atmospheric Administration", + URL = URL, + License = "https://sos.noaa.gov/copyright/" +} diff --git a/data/assets/scene/solarsystem/planets/earth/noaa-sos/land/dams-global.asset b/data/assets/scene/solarsystem/planets/earth/noaa-sos/land/dams-global.asset new file mode 100644 index 0000000000..9fa2b53633 --- /dev/null +++ b/data/assets/scene/solarsystem/planets/earth/noaa-sos/land/dams-global.asset @@ -0,0 +1,54 @@ +local globeIdentifier = asset.require("../../earth").Earth.Identifier + + +local Name = "Dams and Reservoirs - 1800 - 2010" +local Identifier = "noaa-sos-land-dams-global" +local Description = [[ Humans have manipulated rivers for thousands of years, but over +the last 200 years dams on rivers have become rampant. Reservoirs and dams are +constructed for water storage, to reduce the risk of river flooding, and for the +generation of power. They are one of the major footprints of humans on Earth and change +the world's hydrological cycle. ]] +local URL = "https://sos.noaa.gov/catalog/datasets/dams-and-reservoirs-1800-2010/" + + +local syncedDirectory = asset.syncedResource({ + Name = Name, + Type = "HttpSynchronization", + Identifier = Identifier, + Version = 1 +}) + +local imagesDestination = syncedDirectory .. "images" + +local layer_images = { + Identifier = Identifier, + Name = Name, + Type = "ImageSequenceTileLayer", + FolderPath = imagesDestination, + Description = Description +} + +asset.onInitialize(function() + if not openspace.directoryExists(imagesDestination) then + openspace.printInfo("Extracting " .. Name) + openspace.unzipFile(syncedDirectory .. "4096.zip", imagesDestination, true) + end + + openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer_images) +end) + +asset.onDeinitialize(function() + openspace.globebrowsing.deleteLayer(globeIdentifier, "ColorLayers", layer_images) +end) + +asset.export(layer_images) + + +asset.meta = { + Name = Name, + Version = "1.0", + Description = Description .. "Data provided by the National Oceanic and Atmospheric Administration.", + Author = "National Oceanic and Atmospheric Administration", + URL = URL, + License = "https://sos.noaa.gov/copyright/" +} diff --git a/data/assets/scene/solarsystem/planets/earth/noaa-sos/land/dams-mississippi.asset b/data/assets/scene/solarsystem/planets/earth/noaa-sos/land/dams-mississippi.asset new file mode 100644 index 0000000000..83bd8e4534 --- /dev/null +++ b/data/assets/scene/solarsystem/planets/earth/noaa-sos/land/dams-mississippi.asset @@ -0,0 +1,54 @@ +local globeIdentifier = asset.require("../../earth").Earth.Identifier + + +local Name = "Dams and Reservoirs: Mississippi River - 1800 - 2010" +local Identifier = "noaa-sos-land-dams-mississippi" +local Description = [[ This dataset illustrates the construction of dams in the +Mississippi River Basin from 1800 to the present. We display all dams listed in the +Global Reservoir and Dam Database (GRanD). All dams that have a reservoir with a storage +capacity of more than 0.1 cubic kilometers are included, and many smaller dams were added +where data were available. ]] +local URL = "https://sos.noaa.gov/catalog/datasets/dams-and-reservoirs-mississippi-river-1800-2010/" + + +local syncedDirectory = asset.syncedResource({ + Name = Name, + Type = "HttpSynchronization", + Identifier = Identifier, + Version = 1 +}) + +local imagesDestination = syncedDirectory .. "images" + +local layer = { + Identifier = Identifier, + Name = Name, + Type = "ImageSequenceTileLayer", + FolderPath = imagesDestination, + Description = Description +} + +asset.onInitialize(function() + if not openspace.directoryExists(imagesDestination) then + openspace.printInfo("Extracting " .. Name) + openspace.unzipFile(syncedDirectory .. "4096.zip", imagesDestination, true) + end + + openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer) +end) + +asset.onDeinitialize(function() + openspace.globebrowsing.deleteLayer(globeIdentifier, "ColorLayers", layer) +end) + +asset.export(layer) + + +asset.meta = { + Name = Name, + Version = "1.0", + Description = Description .. "Data provided by the National Oceanic and Atmospheric Administration.", + Author = "National Oceanic and Atmospheric Administration", + URL = URL, + License = "https://sos.noaa.gov/copyright/" +} diff --git a/data/assets/scene/solarsystem/planets/earth/noaa-sos/land/dams-yangtze.asset b/data/assets/scene/solarsystem/planets/earth/noaa-sos/land/dams-yangtze.asset new file mode 100644 index 0000000000..6a6a3e6320 --- /dev/null +++ b/data/assets/scene/solarsystem/planets/earth/noaa-sos/land/dams-yangtze.asset @@ -0,0 +1,54 @@ +local globeIdentifier = asset.require("../../earth").Earth.Identifier + + +local Name = "Dams and Reservoirs: Yangtze - 1800 - 2010" +local Identifier = "noaa-sos-land-dams-yangtze" +local Description = [[ Humans have manipulated rivers for thousands of years, but over +the last 200 years dams on rivers have become rampant. Reservoirs and dams are +constructed for water storage, to reduce the risk of river flooding, and for the +generation of power. They are one of the major footprints of humans on Earth and change +the world's hydrological cycle. ]] +local URL = "https://sos.noaa.gov/catalog/datasets/dams-and-reservoirs-yangtze-1800-2010/" + + +local syncedDirectory = asset.syncedResource({ + Name = Name, + Type = "HttpSynchronization", + Identifier = Identifier, + Version = 1 +}) + +local imagesDestination = syncedDirectory .. "images" + +local layer = { + Identifier = Identifier, + Name = Name, + Type = "ImageSequenceTileLayer", + FolderPath = imagesDestination, + Description = Description +} + +asset.onInitialize(function() + if not openspace.directoryExists(imagesDestination) then + openspace.printInfo("Extracting " .. Name) + openspace.unzipFile(syncedDirectory .. "4096.zip", imagesDestination, true) + end + + openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer) +end) + +asset.onDeinitialize(function() + openspace.globebrowsing.deleteLayer(globeIdentifier, "ColorLayers", layer) +end) + +asset.export(layer) + + +asset.meta = { + Name = Name, + Version = "1.0", + Description = Description .. "Data provided by the National Oceanic and Atmospheric Administration.", + Author = "National Oceanic and Atmospheric Administration", + URL = URL, + License = "https://sos.noaa.gov/copyright/" +} diff --git a/data/assets/scene/solarsystem/planets/earth/noaa-sos/land/day_night-06z_only.asset b/data/assets/scene/solarsystem/planets/earth/noaa-sos/land/day_night-06z_only.asset new file mode 100644 index 0000000000..21d4a962f2 --- /dev/null +++ b/data/assets/scene/solarsystem/planets/earth/noaa-sos/land/day_night-06z_only.asset @@ -0,0 +1,62 @@ +local globeIdentifier = asset.require("../../earth").Earth.Identifier + + +local Name = "Day/Night Terminator (daily)" +local Identifier = "noaa-sos-land-day_night-06z_only" +local Description = [[ The line that separates day and night is called the terminator. It +is also referred to as the "grey line" and the "twilight zone." It is a fuzzy line due to +our atmosphere bending sunlight. In fact, the atmosphere bends sunlight by half a degree, +which is about 37 miles (60 km). It is commonly thought that while half of the Earth is +covered in darkness, the other half is covered in sunlight. This is actually not true +because of the bending of the sunlight results in the land covered by sunlight having +greater area than the land covered by darkness. ]] +local URL = "https://sos.noaa.gov/catalog/datasets/daynight-terminator-daily/" + + +local syncedDirectory = asset.syncedResource({ + Name = Name, + Type = "HttpSynchronization", + Identifier = Identifier, + Version = 1 +}) + +local imagesDestination = syncedDirectory .. "images" + +local layer = { + Identifier = Identifier, + Name = Name, + Type = "TemporalTileLayer", + Mode = "Folder", + Folder = { + Folder = imagesDestination, + -- See https://en.cppreference.com/w/cpp/io/manip/get_time for an explanation of the + -- time formatting string + Format = "daynite_%Y%j%H%M.jpg" + }, + Description = Description +} + +asset.onInitialize(function() + if not openspace.directoryExists(imagesDestination) then + openspace.printInfo("Extracting " .. Name) + openspace.unzipFile(syncedDirectory .. "2048.zip", imagesDestination, true) + end + + openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer) +end) + +asset.onDeinitialize(function() + openspace.globebrowsing.deleteLayer(globeIdentifier, "ColorLayers", layer) +end) + +asset.export(layer) + + +asset.meta = { + Name = Name, + Version = "1.0", + Description = Description .. "Data provided by the National Oceanic and Atmospheric Administration.", + Author = "National Oceanic and Atmospheric Administration", + URL = URL, + License = "https://sos.noaa.gov/copyright/" +} diff --git a/data/assets/scene/solarsystem/planets/earth/noaa-sos/land/day_night-full_year.asset b/data/assets/scene/solarsystem/planets/earth/noaa-sos/land/day_night-full_year.asset new file mode 100644 index 0000000000..ca3ee5b8c8 --- /dev/null +++ b/data/assets/scene/solarsystem/planets/earth/noaa-sos/land/day_night-full_year.asset @@ -0,0 +1,64 @@ +local globeIdentifier = asset.require("../../earth").Earth.Identifier + + +local Name = "Day/Night Terminator (hourly)" +local Identifier = "noaa-sos-land-day_night-full_year" +local Description = [[ The line that separates day and night is called the terminator. It +is also referred to as the "grey line" and the "twilight zone." It is a fuzzy line due to +our atmosphere bending sunlight. In fact, the atmosphere bends sunlight by half a degree, +which is about 37 miles (60 km). It is commonly thought that while half of the Earth is +covered in darkness, the other half is covered in sunlight. This is actually not true +because of the bending of the sunlight results in the land covered by sunlight having +greater area than the land covered by darkness. ]] +local URL = "https://sos.noaa.gov/catalog/datasets/daynight-terminator-hourly/" + + +local syncedDirectory = asset.syncedResource({ + Name = Name, + Type = "HttpSynchronization", + Identifier = Identifier, + Version = 1 +}) + +local imagesDestination = syncedDirectory .. "images" + +local layer = { + Identifier = Identifier, + Name = Name, + Type = "TemporalTileLayer", + Mode = "Folder", + Folder = { + Folder = imagesDestination, + -- See https://en.cppreference.com/w/cpp/io/manip/get_time for an explanation of the + -- time formatting string + Format = "daynite_%Y%j%H%M.jpg" + }, + Description = Description +} + +asset.onInitialize(function() + if not openspace.directoryExists(imagesDestination) then + openspace.printInfo("Extracting " .. Name) + openspace.unzipFile(syncedDirectory .. "2048-1.zip", imagesDestination, true) + openspace.unzipFile(syncedDirectory .. "2048-2.zip", imagesDestination, true) + openspace.unzipFile(syncedDirectory .. "2048-3.zip", imagesDestination, true) + end + + openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer) +end) + +asset.onDeinitialize(function() + openspace.globebrowsing.deleteLayer(globeIdentifier, "ColorLayers", layer) +end) + +asset.export(layer) + + +asset.meta = { + Name = Name, + Version = "1.0", + Description = Description .. "Data provided by the National Oceanic and Atmospheric Administration.", + Author = "National Oceanic and Atmospheric Administration", + URL = URL, + License = "https://sos.noaa.gov/copyright/" +} diff --git a/data/assets/scene/solarsystem/planets/earth/noaa-sos/land/day_night-oneday.asset b/data/assets/scene/solarsystem/planets/earth/noaa-sos/land/day_night-oneday.asset new file mode 100644 index 0000000000..18727ba3c3 --- /dev/null +++ b/data/assets/scene/solarsystem/planets/earth/noaa-sos/land/day_night-oneday.asset @@ -0,0 +1,56 @@ +local globeIdentifier = asset.require("../../earth").Earth.Identifier + + +local Name = "Day/Night Terminator (single day)" +local Identifier = "noaa-sos-land-day_night-oneday" +local Description = [[ The line that separates day and night is called the terminator. It +is also referred to as the "grey line" and the "twilight zone." It is a fuzzy line due to +our atmosphere bending sunlight. In fact, the atmosphere bends sunlight by half a degree, +which is about 37 miles (60 km). It is commonly thought that while half of the Earth is +covered in darkness, the other half is covered in sunlight. This is actually not true +because of the bending of the sunlight results in the land covered by sunlight having +greater area than the land covered by darkness. ]] +local URL = "https://sos.noaa.gov/catalog/datasets/daynight-terminator-single-day/" + + +local syncedDirectory = asset.syncedResource({ + Name = Name, + Type = "HttpSynchronization", + Identifier = Identifier, + Version = 1 +}) + +local imagesDestination = syncedDirectory .. "images" + +local layer = { + Identifier = Identifier, + Name = Name, + Type = "ImageSequenceTileLayer", + FolderPath = imagesDestination, + Description = Description +} + +asset.onInitialize(function() + if not openspace.directoryExists(imagesDestination) then + openspace.printInfo("Extracting " .. Name) + openspace.unzipFile(syncedDirectory .. "2048.zip", imagesDestination, true) + end + + openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer) +end) + +asset.onDeinitialize(function() + openspace.globebrowsing.deleteLayer(globeIdentifier, "ColorLayers", layer) +end) + +asset.export(layer) + + +asset.meta = { + Name = Name, + Version = "1.0", + Description = Description .. "Data provided by the National Oceanic and Atmospheric Administration.", + Author = "National Oceanic and Atmospheric Administration", + URL = URL, + License = "https://sos.noaa.gov/copyright/" +} diff --git a/data/assets/scene/solarsystem/planets/earth/noaa-sos/land/earth_night-1992_2002.asset b/data/assets/scene/solarsystem/planets/earth/noaa-sos/land/earth_night-1992_2002.asset new file mode 100644 index 0000000000..efb3d03922 --- /dev/null +++ b/data/assets/scene/solarsystem/planets/earth/noaa-sos/land/earth_night-1992_2002.asset @@ -0,0 +1,57 @@ +local globeIdentifier = asset.require("../../earth").Earth.Identifier + + +local Name = "Nighttime Lights Comparison - 1992 and 2002" +local Identifier = "noaa-sos-land-earth_night-1992_2002" +local Description = [[ The data was recorded by the Defense Meteorological Satellite +Program (DMSP) in the National Geophysical Data Center (NGDC), now part of NOAA National +Centers for Environmental Information (NCEI). The data was collected using polar orbiting +satellites that provide full cover of the globe twice a day. The satellites have an +Operation Linescan system which allows them to detect low levels of visible-near infrared +radiance at night. ]] +local URL = "https://sos.noaa.gov/catalog/datasets/nighttime-lights-comparison-1992-and-2002/" + + +local syncedDirectory = asset.syncedResource({ + Name = Name, + Type = "HttpSynchronization", + Identifier = Identifier, + Version = 1 +}) + +local layer_1992 = { + Identifier = Identifier .. "-1992", + Name = Name .. " (1992)", + FilePath = syncedDirectory .. "Nightlights_1992.jpg", + Description = Description +} + +local layer_2002 = { + Identifier = Identifier .. "-2002", + Name = Name .. " (2002)", + FilePath = syncedDirectory .. "Nightlights_2002.jpg", + Description = Description +} + +asset.onInitialize(function() + openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer_1992) + openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer_2002) +end) + +asset.onDeinitialize(function() + openspace.globebrowsing.deleteLayer(globeIdentifier, "ColorLayers", layer_1992) + openspace.globebrowsing.deleteLayer(globeIdentifier, "ColorLayers", layer_2002) +end) + +asset.export(layer_1992) +asset.export(layer_2002) + + +asset.meta = { + Name = Name, + Version = "1.0", + Description = Description .. "Data provided by the National Oceanic and Atmospheric Administration.", + Author = "National Oceanic and Atmospheric Administration", + URL = URL, + License = "https://sos.noaa.gov/copyright/" +} diff --git a/data/assets/scene/solarsystem/planets/earth/noaa-sos/land/earth_night-1992_2008.asset b/data/assets/scene/solarsystem/planets/earth/noaa-sos/land/earth_night-1992_2008.asset new file mode 100644 index 0000000000..d4e2851d92 --- /dev/null +++ b/data/assets/scene/solarsystem/planets/earth/noaa-sos/land/earth_night-1992_2008.asset @@ -0,0 +1,47 @@ +local globeIdentifier = asset.require("../../earth").Earth.Identifier + + +local Name = "Nighttime Lights Comparison - 1992, 2000, and 2008" +local Identifier = "noaa-sos-land-earth_night-1992_2008" +local Description = [[ The data was recorded by the Defense Meteorological Satellite +Program (DMSP) in the National Geophysical Data Center (NGDC), now part of NOAA National +Centers for Environmental Information (NCEI). The data was collected using polar orbiting +satellites that provide full cover of the globe twice a day. The satellites have an +Operation Linescan system which allows them to detect low levels of visible-near +infrared radiance at night. ]] +local URL = "https://sos.noaa.gov/catalog/datasets/nighttime-lights-comparison-1992-2000-and-2008/" + + +local syncedDirectory = asset.syncedResource({ + Name = Name, + Type = "HttpSynchronization", + Identifier = Identifier, + Version = 1 +}) + +local layer = { + Identifier = Identifier, + Name = Name, + FilePath = syncedDirectory .. "8000.png", + Description = Description +} + +asset.onInitialize(function() + openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer) +end) + +asset.onDeinitialize(function() + openspace.globebrowsing.deleteLayer(globeIdentifier, "ColorLayers", layer) +end) + +asset.export(layer) + + +asset.meta = { + Name = Name, + Version = "1.0", + Description = Description .. "Data provided by the National Oceanic and Atmospheric Administration.", + Author = "National Oceanic and Atmospheric Administration", + URL = URL, + License = "https://sos.noaa.gov/copyright/" +} diff --git a/data/assets/scene/solarsystem/planets/earth/noaa-sos/land/earth_night-1992_2009.asset b/data/assets/scene/solarsystem/planets/earth/noaa-sos/land/earth_night-1992_2009.asset new file mode 100644 index 0000000000..01a235a422 --- /dev/null +++ b/data/assets/scene/solarsystem/planets/earth/noaa-sos/land/earth_night-1992_2009.asset @@ -0,0 +1,59 @@ +local globeIdentifier = asset.require("../../earth").Earth.Identifier + + +local Name = "Nighttime Lights Comparison - 1992 and 2009" +local Identifier = "noaa-sos-land-earth_night-1992_2009" +local Description = [[ The data was recorded by the Defense Meteorological Satellite +Program (DMSP) in the National Geophysical Data Center (NGDC), now part of NOAA National +Centers for Environmental Information (NCEI). The data was collected using polar orbiting +satellites that provide full cover of the globe twice a day. The satellites have an +Operation Linescan system which allows them to detect low levels of visible-near infrared +radiance at night. ]] +local URL = "https://sos.noaa.gov/catalog/datasets/nighttime-lights-comparison-1992-and-2009/" + + +local syncedDirectory = asset.syncedResource({ + Name = Name, + Type = "HttpSynchronization", + Identifier = Identifier, + Version = 1 +}) + +local layer = { + Identifier = Identifier, + Name = Name, + FilePath = syncedDirectory .. "5000.png", + Description = Description +} + +local colorbar = { + Identifier = Identifier, + Name = Name, + Type = "ScreenSpaceImageLocal", + TexturePath = syncedDirectory .. "colorbar.png", + FaceCamera = false, + CartesianPosition = { 0.0, -0.5, -2.0 } +} + +asset.onInitialize(function() + openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer) + openspace.addScreenSpaceRenderable(colorbar); +end) + +asset.onDeinitialize(function() + openspace.globebrowsing.deleteLayer(globeIdentifier, "ColorLayers", layer) + openspace.removeScreenSpaceRenderable(colorbar) +end) + +asset.export(layer) +asset.export(colorbar) + + +asset.meta = { + Name = Name, + Version = "1.0", + Description = Description .. "Data provided by the National Oceanic and Atmospheric Administration.", + Author = "National Oceanic and Atmospheric Administration", + URL = URL, + License = "https://sos.noaa.gov/copyright/" +} diff --git a/data/assets/scene/solarsystem/planets/earth/noaa-sos/land/earth_night-2012.asset b/data/assets/scene/solarsystem/planets/earth/noaa-sos/land/earth_night-2012.asset new file mode 100644 index 0000000000..66785d457d --- /dev/null +++ b/data/assets/scene/solarsystem/planets/earth/noaa-sos/land/earth_night-2012.asset @@ -0,0 +1,45 @@ +local globeIdentifier = asset.require("../../earth").Earth.Identifier + + +local Name = "Nighttime Lights - 2012" +local Identifier = "noaa-sos-land-earth_night-2012" +local Description = [[ Earth at Night has been an SOS-user favorite dataset for many +years. Black Marble 2012 is the newest version of the spectacular view of our planet from +near-Earth orbit at night, which is the result of a partnership between NOAA, NASA, and +the Department of Defense. ]] +local URL = "https://sos.noaa.gov/catalog/datasets/nighttime-lights-2012/" + + +local syncedDirectory = asset.syncedResource({ + Name = Name, + Type = "HttpSynchronization", + Identifier = Identifier, + Version = 1 +}) + +local layer = { + Identifier = Identifier, + Name = Name, + FilePath = syncedDirectory .. "3600.jpg", + Description = Description +} + +asset.onInitialize(function() + openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer) +end) + +asset.onDeinitialize(function() + openspace.globebrowsing.deleteLayer(globeIdentifier, "ColorLayers", layer) +end) + +asset.export(layer) + + +asset.meta = { + Name = Name, + Version = "1.0", + Description = Description .. "Data provided by the National Oceanic and Atmospheric Administration.", + Author = "National Oceanic and Atmospheric Administration", + URL = URL, + License = "https://sos.noaa.gov/copyright/" +} diff --git a/data/assets/scene/solarsystem/planets/earth/noaa-sos/land/earth_night-color_nightlights.asset b/data/assets/scene/solarsystem/planets/earth/noaa-sos/land/earth_night-color_nightlights.asset new file mode 100644 index 0000000000..ed2b6c3dd2 --- /dev/null +++ b/data/assets/scene/solarsystem/planets/earth/noaa-sos/land/earth_night-color_nightlights.asset @@ -0,0 +1,50 @@ +local globeIdentifier = asset.require("../../earth").Earth.Identifier + + +local Name = "Nighttime Lights (colorized)" +local Identifier = "noaa-sos-land-earth_night-color_nightlights" +local Description = [[ The data was recorded by the Defense Meteorological Satellite +Program (DMSP) in the National Geophysical Data Center (NGDC), now part of NOAA National +Centers for Environmental Information (NCEI). The data was collected using polar orbiting +satellites that provide full cover of the globe twice a day. The satellites have an +Operation Linescan system which allows them to detect low levels of visible-near infrared +radiance at night. With this data, it is possible to detect clouds illuminated by +moonlight, lights from cities and towns, industrial sites, gas flares, fires, lightning, +and aurora. The Nighttime Lights of the World data set was complied from Defense +Meteorological Satellite Program (DMSP) data spanning October 1994 - March 1995. ]] +local URL = "https://sos.noaa.gov/catalog/datasets/nighttime-lights-colorized/" + + +local syncedDirectory = asset.syncedResource({ + Name = Name, + Type = "HttpSynchronization", + Identifier = Identifier, + Version = 1 +}) + +local layer = { + Identifier = Identifier, + Name = Name, + FilePath = syncedDirectory .. "4096.png", + Description = Description +} + +asset.onInitialize(function() + openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer) +end) + +asset.onDeinitialize(function() + openspace.globebrowsing.deleteLayer(globeIdentifier, "ColorLayers", layer) +end) + +asset.export(layer) + + +asset.meta = { + Name = Name, + Version = "1.0", + Description = Description .. "Data provided by the National Oceanic and Atmospheric Administration.", + Author = "National Oceanic and Atmospheric Administration", + URL = URL, + License = "https://sos.noaa.gov/copyright/" +} diff --git a/data/assets/scene/solarsystem/planets/earth/noaa-sos/land/earth_night-nightlights.asset b/data/assets/scene/solarsystem/planets/earth/noaa-sos/land/earth_night-nightlights.asset new file mode 100644 index 0000000000..9505ff905f --- /dev/null +++ b/data/assets/scene/solarsystem/planets/earth/noaa-sos/land/earth_night-nightlights.asset @@ -0,0 +1,50 @@ +local globeIdentifier = asset.require("../../earth").Earth.Identifier + + +local Name = "Nighttime Lights" +local Identifier = "noaa-sos-land-earth_night-nightlights" +local Description = [[ The data was recorded by the Defense Meteorological Satellite +Program (DMSP) in the National Geophysical Data Center (NGDC), now part of NOAA National +Centers for Environmental Information (NCEI). The data was collected using polar orbiting +satellites that provide full cover of the globe twice a day. The satellites have an +Operation Linescan system which allows them to detect low levels of visible-near infrared +radiance at night. With this data, it is possible to detect clouds illuminated by +moonlight, lights from cities and towns, industrial sites, gas flares, fires, lightning, +and aurora. The Nighttime Lights of the World data set was complied from Defense +Meteorological Satellite Program (DMSP) data spanning October 1994 - March 1995. ]] +local URL = "https://sos.noaa.gov/catalog/datasets/nighttime-lights/" + + +local syncedDirectory = asset.syncedResource({ + Name = Name, + Type = "HttpSynchronization", + Identifier = Identifier, + Version = 1 +}) + +local layer = { + Identifier = Identifier, + Name = Name, + FilePath = syncedDirectory .. "4800.jpg", + Description = Description +} + +asset.onInitialize(function() + openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer) +end) + +asset.onDeinitialize(function() + openspace.globebrowsing.deleteLayer(globeIdentifier, "ColorLayers", layer) +end) + +asset.export(layer) + + +asset.meta = { + Name = Name, + Version = "1.0", + Description = Description .. "Data provided by the National Oceanic and Atmospheric Administration.", + Author = "National Oceanic and Atmospheric Administration", + URL = URL, + License = "https://sos.noaa.gov/copyright/" +} diff --git a/data/assets/scene/solarsystem/planets/earth/noaa-sos/land/earthquake-1980_1995_quakes.asset b/data/assets/scene/solarsystem/planets/earth/noaa-sos/land/earthquake-1980_1995_quakes.asset new file mode 100644 index 0000000000..96944d0dcd --- /dev/null +++ b/data/assets/scene/solarsystem/planets/earth/noaa-sos/land/earthquake-1980_1995_quakes.asset @@ -0,0 +1,102 @@ +local globeIdentifier = asset.require("../../earth").Earth.Identifier + + +local Name = "Earthquakes: Cumulative - 1980 - 1995" +local Identifier = "noaa-sos-land-earthquake-1980_1995_quakes" +local Description = [[ It is estimated that there are 500,000 detectable earthquakes in +the world each year. Of those, 100,000 can be felt and 100 of them cause damage. Anything +that causes seismic waves to radiate throughout the Earth is an earthquake. The cause of +earthquakes can be natural, such as one tectonic plate slipping below another, or +anthropogenic (cause by humans), such as drilling for fossil fuels, extraction of +minerals, huge explosions, and the collapse of large buildings. Because most natural +earthquakes occur due to slipping plates, the boundaries between tectonic plates are "hot +spots" for earthquakes. In the Pacific Ocean, the Pacific Plate is referred to as the +Ring of Fire because this is one of the most active plates where earthquakes and +volcanoes frequently occur. In order to rate the strength and magnitude of earthquakes, +the Richter magnitude scale was created. It is a base-10 logarithm scale of ground motion +100km from the epicenter. Every whole-number increase in magnitude means the amplitude of +the seismic wave is ten times greater. 4.0 - 4.9 on the scale is considered light, with +some shaking of indoor items and significant damage unlikely. ]] +local URL = "https://sos.noaa.gov/catalog/datasets/earthquakes-cumulative-1980-1995/" + + +local syncedDirectory = asset.syncedResource({ + Name = Name, + Type = "HttpSynchronization", + Identifier = Identifier, + Version = 1 +}) + +local imagesDestination = syncedDirectory .. "images" + +local layer = { + Identifier = Identifier, + Name = Name, + Type = "ImageSequenceTileLayer", + FolderPath = imagesDestination, + Description = Description +} + +local legend = { + Identifier = Identifier .. "-legend", + Name = Name .. " (Legend)", + Type = "ScreenSpaceImageLocal", + TexturePath = syncedDirectory .. "legend.png", + FaceCamera = false, + Scale = 0.3, + CartesianPosition = { 0.0, -0.6, -2.0 } +} + +local quakebar = { + Identifier = Identifier .. "-quake", + Name = Name .. " (Quake)", + Type = "ScreenSpaceImageLocal", + TexturePath = syncedDirectory .. "quakebar.png", + FaceCamera = false, + CartesianPosition = { 0.0, -0.3, -2.0 } +} + +local quakebar_combined = { + Identifier = Identifier .. "-combined", + Name = Name .. " (Combined)", + Type = "ScreenSpaceImageLocal", + Enabled = false, + TexturePath = syncedDirectory .. "quakebar_combined.png", + FaceCamera = false, + Scale = 0.6, + CartesianPosition = { 0.5, -0.5, -2.0 } +} + +asset.onInitialize(function() + if not openspace.directoryExists(imagesDestination) then + openspace.printInfo("Extracting " .. Name) + openspace.unzipFile(syncedDirectory .. "1024.zip", imagesDestination, true) + end + + openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer) + openspace.addScreenSpaceRenderable(legend); + openspace.addScreenSpaceRenderable(quakebar); + openspace.addScreenSpaceRenderable(quakebar_combined); +end) + +asset.onDeinitialize(function() + openspace.globebrowsing.deleteLayer(globeIdentifier, "ColorLayers", layer) + openspace.removeScreenSpaceRenderable(legend) + openspace.removeScreenSpaceRenderable(quakebar) + openspace.removeScreenSpaceRenderable(quakebar_combined) +end) + +asset.export(layer) +asset.export(legend) +asset.export(quakebar) +asset.export(quakebar_combined) + + +asset.meta = { + Name = Name, + Version = "1.0", + Description = Description .. "Data provided by the National Oceanic and Atmospheric Administration.", + Author = "National Oceanic and Atmospheric Administration", + URL = URL, + License = "https://sos.noaa.gov/copyright/" +} diff --git a/data/assets/scene/solarsystem/planets/earth/noaa-sos/land/earthquake-2001_2015.asset b/data/assets/scene/solarsystem/planets/earth/noaa-sos/land/earthquake-2001_2015.asset new file mode 100644 index 0000000000..ddb01347e0 --- /dev/null +++ b/data/assets/scene/solarsystem/planets/earth/noaa-sos/land/earthquake-2001_2015.asset @@ -0,0 +1,103 @@ +local globeIdentifier = asset.require("../../earth").Earth.Identifier + + +local Name = "Earthquakes - 2001-2015" +local Identifier = "noaa-sos-land-earthquake-2001_2015" +local Description = [[ This animation shows every recorded earthquake in sequence as they +occurred from January 1, 2001, through December 31, 2015, at a rate of 30 days per +second. The earthquake hypocenters first appear as flashes then remain as colored circles +before shrinking with time so as not to obscure subsequent earthquakes. The size of the +circle represents the earthquake magnitude while the color represents its depth within +the earth. At the end of the animation it will first show all quakes in this 15-year +period. Next, it will show only those earthquakes greater than magnitude 6.5, the +smallest earthquake size known to make a tsunami. Finally it will only show those +earthquakes with magnitudes of magnitude 8.0 or larger, the "great" earthquakes most +likely to pose a tsunami threat when they occur under the ocean or near a coastline and +when they are shallow within the earth (less than 100 km or 60 mi. deep). ]] +local URL = "https://sos.noaa.gov/catalog/datasets/earthquakes-2001-2015/" + + +local syncedDirectory = asset.syncedResource({ + Name = Name, + Type = "HttpSynchronization", + Identifier = Identifier, + Version = 1 +}) + +local layer_allquakes = { + Identifier = Identifier .. "-allquakes", + Name = Name .. " (All Quakes)", + FilePath = syncedDirectory .. "All_Quakes_2001-2015_4k.jpg", + Description = Description +} + +local layer_quake_basemap = { + Identifier = Identifier .. "-quake-basemap", + Name = Name .. " (Quake Basemap)", + FilePath = syncedDirectory .. "quake_basemap_4k.jpg", + Description = Description +} + +local layer_tsunami_basemap = { + Identifier = Identifier .. "-tsunami-basemap", + Name = Name .. " (Tsunami Basemap)", + FilePath = syncedDirectory .. "Tsunami_basemap_4k.jpg", + Description = Description +} + +local layer_quakes_gte6_5 = { + Identifier = Identifier .. "-gte6_5", + Name = Name .. " (GTE 6.5)", + FilePath = syncedDirectory .. "Quakes_gte6.5_2001-2015_4k.jpg", + Description = Description +} + +local layer_quakes_gte8 = { + Identifier = Identifier .. "-gte8", + Name = Name .. " (GTE 8.0)", + FilePath = syncedDirectory .. "Quakes_gte8_2001-2015_4k.jpg", + Description = Description +} + +local legend = { + Identifier = Identifier, + Name = Name, + Type = "ScreenSpaceImageLocal", + TexturePath = syncedDirectory .. "Earthquake_Legend.png", + FaceCamera = false, + CartesianPosition = { 0.0, -0.5, -2.0 } +} + +asset.onInitialize(function() + openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer_allquakes) + openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer_quake_basemap) + openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer_tsunami_basemap) + openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer_quakes_gte6_5) + openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer_quakes_gte8) + openspace.addScreenSpaceRenderable(legend); +end) + +asset.onDeinitialize(function() + openspace.globebrowsing.deleteLayer(globeIdentifier, "ColorLayers", layer_allquakes) + openspace.globebrowsing.deleteLayer(globeIdentifier, "ColorLayers", layer_quake_basemap) + openspace.globebrowsing.deleteLayer(globeIdentifier, "ColorLayers", layer_tsunami_basemap) + openspace.globebrowsing.deleteLayer(globeIdentifier, "ColorLayers", layer_quakes_gte6_5) + openspace.globebrowsing.deleteLayer(globeIdentifier, "ColorLayers", layer_quakes_gte8) + openspace.removeScreenSpaceRenderable(legend) +end) + +asset.export(layer_allquakes) +asset.export(layer_quake_basemap) +asset.export(layer_tsunami_basemap) +asset.export(layer_quakes_gte6_5) +asset.export(layer_quakes_gte8) + + +asset.meta = { + Name = Name, + Version = "1.0", + Description = Description .. "Data provided by the National Oceanic and Atmospheric Administration.", + Author = "National Oceanic and Atmospheric Administration", + URL = URL, + License = "https://sos.noaa.gov/copyright/" +} diff --git a/data/assets/scene/solarsystem/planets/earth/noaa-sos/land/earthquakes_1901_2000.asset b/data/assets/scene/solarsystem/planets/earth/noaa-sos/land/earthquakes_1901_2000.asset new file mode 100644 index 0000000000..6d6bc694b8 --- /dev/null +++ b/data/assets/scene/solarsystem/planets/earth/noaa-sos/land/earthquakes_1901_2000.asset @@ -0,0 +1,104 @@ +local globeIdentifier = asset.require("../../earth").Earth.Identifier + + +local Name = "Earthquakes of the 20th Century" +local Identifier = "noaa-sos-land-earthquakes_1901_2000" +local Description = [[ This animation shows every recorded earthquake in sequence as they +occurred from January 1, 1901, through December 31, 2000, at a rate of 1 year per second. +The earthquake hypocenters first appear as flashes then remain as colored circles before +shrinking with time so as not to obscure subsequent earthquakes. The size of the circle +represents the earthquake magnitude while the color represents its depth within the +earth. At the end of the animation it will first show all quakes in this 100-year period. +Next, it will show only those earthquakes greater than magnitude 6.5, the smallest +earthquake size known to make a tsunami. It will then show only those earthquakes with +magnitudes of 8.0 or larger, the "great" earthquakes most likely to pose a tsunami +threat when they occur under the ocean or near a coastline and when they are shallow +within the earth (less than 100 km or 60 mi. deep). The animation concludes by showing +the plate boundary faults responsible for the majority of all of these earthquakes. ]] +local URL = "https://sos.noaa.gov/catalog/datasets/earthquakes-of-the-20th-century/" + + +local syncedDirectory = asset.syncedResource({ + Name = Name, + Type = "HttpSynchronization", + Identifier = Identifier, + Version = 1 +}) + +local layer_allquakes = { + Identifier = Identifier .. "-allquakes", + Name = Name .. " (All Quakes)", + FilePath = syncedDirectory .. "All_Quakes_1901-2000_4k.jpg", + Description = Description +} + +local layer_quake_basemap = { + Identifier = Identifier .. "-quake-basemap", + Name = Name .. " (Quake Basemap)", + FilePath = syncedDirectory .. "quake_basemap_4k.jpg", + Description = Description +} + +local layer_plate_boundaries = { + Identifier = Identifier .. "-plate_boundaries", + Name = Name .. " (Plate Boundaries)", + FilePath = syncedDirectory .. "Plate_Boundaries_4k.jpg", + Description = Description +} + +local layer_quakes_gte6_5 = { + Identifier = Identifier .. "-gte6_5", + Name = Name .. " (GTE 6.5)", + FilePath = syncedDirectory .. "Quakes_gte6.5_1901-2000_4k.jpg", + Description = Description +} + +local layer_quakes_gte8 = { + Identifier = Identifier .. "-gte8", + Name = Name .. " (GTE 8.0)", + FilePath = syncedDirectory .. "Quakes_gte8_1901-2000_4k.jpg", + Description = Description +} + +local legend = { + Identifier = Identifier, + Name = Name, + Type = "ScreenSpaceImageLocal", + TexturePath = syncedDirectory .. "Earthquake_Legend.png", + FaceCamera = false, + CartesianPosition = { 0.0, -0.5, -2.0 } +} + +asset.onInitialize(function() + openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer_allquakes) + openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer_quake_basemap) + openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer_plate_boundaries) + openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer_quakes_gte6_5) + openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer_quakes_gte8) + openspace.addScreenSpaceRenderable(legend); +end) + +asset.onDeinitialize(function() + openspace.globebrowsing.deleteLayer(globeIdentifier, "ColorLayers", layer_allquakes) + openspace.globebrowsing.deleteLayer(globeIdentifier, "ColorLayers", layer_quake_basemap) + openspace.globebrowsing.deleteLayer(globeIdentifier, "ColorLayers", layer_plate_boundaries) + openspace.globebrowsing.deleteLayer(globeIdentifier, "ColorLayers", layer_quakes_gte6_5) + openspace.globebrowsing.deleteLayer(globeIdentifier, "ColorLayers", layer_quakes_gte8) + openspace.removeScreenSpaceRenderable(legend) +end) + +asset.export(layer_allquakes) +asset.export(layer_quake_basemap) +asset.export(layer_plate_boundaries) +asset.export(layer_quakes_gte6_5) +asset.export(layer_quakes_gte8) + + +asset.meta = { + Name = Name, + Version = "1.0", + Description = Description .. "Data provided by the National Oceanic and Atmospheric Administration.", + Author = "National Oceanic and Atmospheric Administration", + URL = URL, + License = "https://sos.noaa.gov/copyright/" +} diff --git a/data/assets/scene/solarsystem/planets/earth/noaa-sos/land/earthquakes_and_eruptions.asset b/data/assets/scene/solarsystem/planets/earth/noaa-sos/land/earthquakes_and_eruptions.asset new file mode 100644 index 0000000000..ae627a2654 --- /dev/null +++ b/data/assets/scene/solarsystem/planets/earth/noaa-sos/land/earthquakes_and_eruptions.asset @@ -0,0 +1,68 @@ +local globeIdentifier = asset.require("../../earth").Earth.Identifier + + +local Name = "Earthquakes and Eruptions - 1960 - 2010" +local Identifier = "noaa-sos-land-earthquakes_and_eruptions" +local Description = [[ Most of Earth's earthquakes and volcanic eruptions occur at the +boundaries of the tectonic plates. This dataset shows all earthquakes of magnitude 5.0 or +greater from 1960 through 2010. The earthquakes are illustrated with a large white dot at +the time of the event. The size of the dot is proportional to the magnitude of the +earthquake. A musical tone is generated for the larger events. The larger the earthquake, +the lower the tone. The white dots eventually turn gray and slowly shrink to single-pixel +dots. ]] +local URL = "https://sos.noaa.gov/catalog/datasets/earthquakes-and-eruptions-1960-2010/" + + +local syncedDirectory = asset.syncedResource({ + Name = Name, + Type = "HttpSynchronization", + Identifier = Identifier, + Version = 1 +}) + +local imagesDestination = syncedDirectory .. "images" + +local layer = { + Identifier = Identifier, + Name = Name, + Type = "ImageSequenceTileLayer", + FolderPath = imagesDestination, + Description = Description +} + +local legend = { + Identifier = Identifier, + Name = Name, + Type = "ScreenSpaceImageLocal", + TexturePath = syncedDirectory .. "eqmaglegend.png", + FaceCamera = false, + CartesianPosition = { 0.0, -0.5, -2.0 } +} + +asset.onInitialize(function() + if not openspace.directoryExists(imagesDestination) then + openspace.printInfo("Extracting " .. Name) + openspace.unzipFile(syncedDirectory .. "4096.zip", imagesDestination, true) + end + + openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer) + openspace.addScreenSpaceRenderable(legend); +end) + +asset.onDeinitialize(function() + openspace.globebrowsing.deleteLayer(globeIdentifier, "ColorLayers", layer) + openspace.removeScreenSpaceRenderable(legend) +end) + +asset.export(layer) +asset.export(legend) + + +asset.meta = { + Name = Name, + Version = "1.0", + Description = Description .. "Data provided by the National Oceanic and Atmospheric Administration.", + Author = "National Oceanic and Atmospheric Administration", + URL = URL, + License = "https://sos.noaa.gov/copyright/" +} diff --git a/data/assets/scene/solarsystem/planets/earth/noaa-sos/land/earths_magnetism_magnetic_lines.asset b/data/assets/scene/solarsystem/planets/earth/noaa-sos/land/earths_magnetism_magnetic_lines.asset new file mode 100644 index 0000000000..3adb02b9c7 --- /dev/null +++ b/data/assets/scene/solarsystem/planets/earth/noaa-sos/land/earths_magnetism_magnetic_lines.asset @@ -0,0 +1,67 @@ +local globeIdentifier = asset.require("../../earth").Earth.Identifier + + +local Name = "Earth's Magnetic Lines" +local Identifier = "noaa-sos-land-earths_magnetism_magnetic_lines" +local Description = [[ Earth is like a giant magnet with a North and South Pole. However, +the magnetic North and South Pole are not aligned with the Geographic North and South +Pole. The Geographic North Pole is defined by the latitude 90° N and is the axis of the +Earth's rotation. The Magnetic North Pole is where the Earth's magnetic field points +vertically downward. The Earth creates its own magnetic field from the electric currents +created in the liquid iron-nickel core. In order to illustrate the earth's magnetic +field, three datasets for Earth's Magnetism have been created. All of these datasets show +the changes in the magnetic field from 1590 - 2010. The first dataset shows the magnetic +field lines at the surface of the Earth. The magnetic poles are indicated by stars. The +blue lines show where the magnetic field dips into the Earth and the red lines show where +the magnetic field emerges from the Earth. Where the field lines are horizontal to the +Earth, between the red and blue lines, is the magnetic equator shaded yellow. ]] +local URL = "https://sos.noaa.gov/catalog/datasets/earths-magnetic-lines/" + + +local syncedDirectory = asset.syncedResource({ + Name = Name, + Type = "HttpSynchronization", + Identifier = Identifier, + Version = 1 +}) + +local imagesDestination = syncedDirectory .. "images" + +local layer = { + Identifier = Identifier, + Name = Name, + Type = "TemporalTileLayer", + Mode = "Folder", + Folder = { + Folder = imagesDestination, + -- See https://en.cppreference.com/w/cpp/io/manip/get_time for an explanation of the + -- time formatting string + Format = "%Y.png" + }, + Description = Description +} + +asset.onInitialize(function() + if not openspace.directoryExists(imagesDestination) then + openspace.printInfo("Extracting " .. Name) + openspace.unzipFile(syncedDirectory .. "4096.zip", imagesDestination, true) + end + + openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer) +end) + +asset.onDeinitialize(function() + openspace.globebrowsing.deleteLayer(globeIdentifier, "ColorLayers", layer) +end) + +asset.export(layer) + + +asset.meta = { + Name = Name, + Version = "1.0", + Description = Description .. "Data provided by the National Oceanic and Atmospheric Administration.", + Author = "National Oceanic and Atmospheric Administration", + URL = URL, + License = "https://sos.noaa.gov/copyright/" +} diff --git a/data/assets/scene/solarsystem/planets/earth/noaa-sos/land/earths_magnetism_magnets.asset b/data/assets/scene/solarsystem/planets/earth/noaa-sos/land/earths_magnetism_magnets.asset new file mode 100644 index 0000000000..f75ed1f5c8 --- /dev/null +++ b/data/assets/scene/solarsystem/planets/earth/noaa-sos/land/earths_magnetism_magnets.asset @@ -0,0 +1,67 @@ +local globeIdentifier = asset.require("../../earth").Earth.Identifier + + +local Name = "Earth's Magnetic Field (compass needles)" +local Identifier = "noaa-sos-land-earths_magnetism_magnets" +local Description = [[ Earth is like a giant magnet with a North and South Pole. However, +the magnetic North and South Pole are not aligned with the Geographic North and South +Pole. The Geographic North Pole is defined by the latitude 90° N and is the axis of the +Earth's rotation. The Magnetic North Pole is where the Earth's magnetic field points +vertically downward. The Earth creates its own magnetic field from the electric currents +created in the liquid iron-nickel core. In order to illustrate the earth's magnetic +field, three datasets for Earth's Magnetism have been created. All of these datasets show +the changes in the magnetic field from 1590 - 2010. The first dataset shows the magnetic +field lines at the surface of the Earth. The magnetic poles are indicated by stars. The +blue lines show where the magnetic field dips into the Earth and the red lines show where +the magnetic field emerges from the Earth. Where the field lines are horizontal to the +Earth, between the red and blue lines, is the magnetic equator shaded yellow. ]] +local URL = "https://sos.noaa.gov/catalog/datasets/earths-magnetic-field-compass-needles/" + + +local syncedDirectory = asset.syncedResource({ + Name = Name, + Type = "HttpSynchronization", + Identifier = Identifier, + Version = 1 +}) + +local imagesDestination = syncedDirectory .. "images" + +local layer = { + Identifier = Identifier, + Name = Name, + Type = "TemporalTileLayer", + Mode = "Folder", + Folder = { + Folder = imagesDestination, + -- See https://en.cppreference.com/w/cpp/io/manip/get_time for an explanation of the + -- time formatting string + Format = "%Y.png" + }, + Description = Description +} + +asset.onInitialize(function() + if not openspace.directoryExists(imagesDestination) then + openspace.printInfo("Extracting " .. Name) + openspace.unzipFile(syncedDirectory .. "4096.zip", imagesDestination, true) + end + + openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer) +end) + +asset.onDeinitialize(function() + openspace.globebrowsing.deleteLayer(globeIdentifier, "ColorLayers", layer) +end) + +asset.export(layer) + + +asset.meta = { + Name = Name, + Version = "1.0", + Description = Description .. "Data provided by the National Oceanic and Atmospheric Administration.", + Author = "National Oceanic and Atmospheric Administration", + URL = URL, + License = "https://sos.noaa.gov/copyright/" +} diff --git a/data/assets/scene/solarsystem/planets/earth/noaa-sos/land/etopo1.asset b/data/assets/scene/solarsystem/planets/earth/noaa-sos/land/etopo1.asset new file mode 100644 index 0000000000..49cd39f781 --- /dev/null +++ b/data/assets/scene/solarsystem/planets/earth/noaa-sos/land/etopo1.asset @@ -0,0 +1,63 @@ +local globeIdentifier = asset.require("../../earth").Earth.Identifier + + +local Name = "ETOPO1: Topography and Bathymetry" +local Identifier = "noaa-sos-land-etopo1" +local Description = [[ ETOPO1 is a 1 arc-minute global relief model of Earth's surface +that integrates land topography and ocean bathymetry. It was built from numerous global +and regional data sets, and is available in "Ice Surface" (top of Antarctic and Greenland +ice sheets) and "Bedrock" (base of the ice sheets) versions. The "Ice Surface" version is +available for Science On a Sphere. This dataset is a higher resolution version of +ETOPO2, which is a 2 arc-minute global relief model of Earth's surface. An arc-minute is +1/60 of a degree. Scientists use high resolution maps like ETOPO1 to improve accuracy in +tsunami forecasting, modeling, and warnings, and also to enhance ocean circulation +modeling and Earth visualization. ]] +local URL = "https://sos.noaa.gov/catalog/datasets/etopo1-topography-and-bathymetry/" + + +local syncedDirectory = asset.syncedResource({ + Name = Name, + Type = "HttpSynchronization", + Identifier = Identifier, + Version = 1 +}) + +local layer = { + Identifier = Identifier, + Name = Name, + FilePath = syncedDirectory .. "4096.jpg", + Description = Description +} + +local colorbar = { + Identifier = Identifier, + Name = Name, + Type = "ScreenSpaceImageLocal", + TexturePath = syncedDirectory .. "etopo1_color_scale.png", + FaceCamera = false, + Scale = 0.1, + CartesianPosition = { 0.5, 0.0, -2.0 } +} + +asset.onInitialize(function() + openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer) + openspace.addScreenSpaceRenderable(colorbar); +end) + +asset.onDeinitialize(function() + openspace.globebrowsing.deleteLayer(globeIdentifier, "ColorLayers", layer) + openspace.removeScreenSpaceRenderable(colorbar) +end) + +asset.export(layer) +asset.export(colorbar) + + +asset.meta = { + Name = Name, + Version = "1.0", + Description = Description .. "Data provided by the National Oceanic and Atmospheric Administration.", + Author = "National Oceanic and Atmospheric Administration", + URL = URL, + License = "https://sos.noaa.gov/copyright/" +} diff --git a/data/assets/scene/solarsystem/planets/earth/noaa-sos/land/etopo2-earth_bright.asset b/data/assets/scene/solarsystem/planets/earth/noaa-sos/land/etopo2-earth_bright.asset new file mode 100644 index 0000000000..4a96a9f8be --- /dev/null +++ b/data/assets/scene/solarsystem/planets/earth/noaa-sos/land/etopo2-earth_bright.asset @@ -0,0 +1,48 @@ +local globeIdentifier = asset.require("../../earth").Earth.Identifier + + +local Name = "ETOPO2: Topography and Bathymetry (bright colors)" +local Identifier = "noaa-sos-land-etopo2-earth_bright" +local Description = [[ Many datasets have been created by utilizing the ETOPO2 dataset, +which was generated from digital databases of seafloor and land elevations on a 2-minute +latitude/longitude grid (1 minute of latitude = 1 nautical mile, or 1.15 statute miles). +The ETOPO2 is a combination of satellite altimetry observations, shipboard echo-sounding +measurements, data from the Digital Bathymetric Data Base Variable Resolution and data +from the GLOBE project which has a global digital elevation model. Earth Color Enhanced +uses green, yellow, orange, red and white to denote increasing elevation of the land. ]] +local URL = "https://sos.noaa.gov/catalog/datasets/etopo2-topography-and-bathymetry-bright-colors/" + + +local syncedDirectory = asset.syncedResource({ + Name = Name, + Type = "HttpSynchronization", + Identifier = Identifier, + Version = 1 +}) + +local layer = { + Identifier = Identifier, + Name = Name, + FilePath = syncedDirectory .. "10800.jpg", + Description = Description +} + +asset.onInitialize(function() + openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer) +end) + +asset.onDeinitialize(function() + openspace.globebrowsing.deleteLayer(globeIdentifier, "ColorLayers", layer) +end) + +asset.export(layer) + + +asset.meta = { + Name = Name, + Version = "1.0", + Description = Description .. "Data provided by the National Oceanic and Atmospheric Administration.", + Author = "National Oceanic and Atmospheric Administration", + URL = URL, + License = "https://sos.noaa.gov/copyright/" +} diff --git a/data/assets/scene/solarsystem/planets/earth/noaa-sos/land/etopo2-earth_color.asset b/data/assets/scene/solarsystem/planets/earth/noaa-sos/land/etopo2-earth_color.asset new file mode 100644 index 0000000000..27170de3d9 --- /dev/null +++ b/data/assets/scene/solarsystem/planets/earth/noaa-sos/land/etopo2-earth_color.asset @@ -0,0 +1,48 @@ +local globeIdentifier = asset.require("../../earth").Earth.Identifier + + +local Name = "ETOPO2: Topography and Bathymetry (color enhanced)" +local Identifier = "noaa-sos-land-etopo2-earth_color" +local Description = [[ Many datasets have been created by utilizing the ETOPO2 dataset, +which was generated from digital data bases of seafloor and land elevations on a 2-minute +latitude/longitude grid (1 minute of latitude = 1 nautical mile, or 1.15 statute mile). +The ETOPO2 is a combination of satellite altimetry observations, shipboard echo-sounding +measurements, data from the Digital Bathymetric Data Base Variable Resolution and data +from the GLOBE project which has a global digital elevation model. This dataset uses +green, yellow, orange, red and white to denote increasing elevation of the land. ]] +local URL = "https://sos.noaa.gov/catalog/datasets/etopo2-topography-and-bathymetry-color-enhanced/" + + +local syncedDirectory = asset.syncedResource({ + Name = Name, + Type = "HttpSynchronization", + Identifier = Identifier, + Version = 1 +}) + +local layer = { + Identifier = Identifier, + Name = Name, + FilePath = syncedDirectory .. "7200.jpg", + Description = Description +} + +asset.onInitialize(function() + openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer) +end) + +asset.onDeinitialize(function() + openspace.globebrowsing.deleteLayer(globeIdentifier, "ColorLayers", layer) +end) + +asset.export(layer) + + +asset.meta = { + Name = Name, + Version = "1.0", + Description = Description .. "Data provided by the National Oceanic and Atmospheric Administration.", + Author = "National Oceanic and Atmospheric Administration", + URL = URL, + License = "https://sos.noaa.gov/copyright/" +} diff --git a/data/assets/scene/solarsystem/planets/earth/noaa-sos/land/etopo2-earth_shaded.asset b/data/assets/scene/solarsystem/planets/earth/noaa-sos/land/etopo2-earth_shaded.asset new file mode 100644 index 0000000000..384ee6b197 --- /dev/null +++ b/data/assets/scene/solarsystem/planets/earth/noaa-sos/land/etopo2-earth_shaded.asset @@ -0,0 +1,48 @@ +local globeIdentifier = asset.require("../../earth").Earth.Identifier + + +local Name = "ETOPO2: Topography and Bathymetry (shaded colors)" +local Identifier = "noaa-sos-land-etopo2-earth_shaded" +local Description = [[ Many datasets have been created by utilizing the ETOPO2 dataset. +This dataset was generated from digital data bases of seafloor and land elevations on a +2-minute latitude/longitude grid (1 minute of latitude = 1 nautical mile, or 1.15 statute +mile). ETOPO2 is a combination of satellite altimetry observations, shipboard +echo-sounding measurements, data from the Digital Bathymetric Data Base Variable +Resolution and data from the GLOBE project which has a global digital elevation +model. ]] +local URL = "https://sos.noaa.gov/catalog/datasets/etopo2-topography-and-bathymetry-shaded-colors/" + + +local syncedDirectory = asset.syncedResource({ + Name = Name, + Type = "HttpSynchronization", + Identifier = Identifier, + Version = 1 +}) + +local layer = { + Identifier = Identifier, + Name = Name, + FilePath = syncedDirectory .. "5400.jpg", + Description = Description +} + +asset.onInitialize(function() + openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer) +end) + +asset.onDeinitialize(function() + openspace.globebrowsing.deleteLayer(globeIdentifier, "ColorLayers", layer) +end) + +asset.export(layer) + + +asset.meta = { + Name = Name, + Version = "1.0", + Description = Description .. "Data provided by the National Oceanic and Atmospheric Administration.", + Author = "National Oceanic and Atmospheric Administration", + URL = URL, + License = "https://sos.noaa.gov/copyright/" +} diff --git a/data/assets/scene/solarsystem/planets/earth/noaa-sos/land/etopo2-earth_topo.asset b/data/assets/scene/solarsystem/planets/earth/noaa-sos/land/etopo2-earth_topo.asset new file mode 100644 index 0000000000..62d71c1ac1 --- /dev/null +++ b/data/assets/scene/solarsystem/planets/earth/noaa-sos/land/etopo2-earth_topo.asset @@ -0,0 +1,51 @@ +local globeIdentifier = asset.require("../../earth").Earth.Identifier + + +local Name = "ETOPO2: Topography and Bathymetry (natural colors)" +local Identifier = "noaa-sos-land-etopo2-earth_topo" +local Description = [[ Many datasets have been created by utilizing the ETOPO2 dataset, +which was generated from digital data bases of seafloor and land elevations on a 2-minute +latitude/longitude grid (1 minute of latitude = 1 nautical mile, or 1.15 statute mile). +The ETOPO2 is a combination of satellite altimetry observations, shipboard echo-sounding +measurements, data from the Digital Bathymetric Data Base Variable Resolution and data +from the GLOBE project which has a global digital elevation model. The topography and +bathymetry side of the Hot Topo dataset was created with this digital data base, as well +as the datasets EarthLiteColor, EarthOne, and Earth Land/Bathymetry. EarthOne and Earth +Land/Bathymetry are shaded in relatively true color, while Hot Topo and EarthLiteColor +use green, yellow, orange, red and white to denote increasing elevation of the land. ]] +local URL = "https://sos.noaa.gov/catalog/datasets/etopo2-topography-and-bathymetry-natural-colors/" + + +local syncedDirectory = asset.syncedResource({ + Name = Name, + Type = "HttpSynchronization", + Identifier = Identifier, + Version = 1 +}) + +local layer = { + Identifier = Identifier, + Name = Name, + FilePath = syncedDirectory .. "4096.jpg", + Description = Description +} + +asset.onInitialize(function() + openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer) +end) + +asset.onDeinitialize(function() + openspace.globebrowsing.deleteLayer(globeIdentifier, "ColorLayers", layer) +end) + +asset.export(layer) + + +asset.meta = { + Name = Name, + Version = "1.0", + Description = Description .. "Data provided by the National Oceanic and Atmospheric Administration.", + Author = "National Oceanic and Atmospheric Administration", + URL = URL, + License = "https://sos.noaa.gov/copyright/" +} diff --git a/data/assets/scene/solarsystem/planets/earth/noaa-sos/land/etopo2-landsat.asset b/data/assets/scene/solarsystem/planets/earth/noaa-sos/land/etopo2-landsat.asset new file mode 100644 index 0000000000..fa87c57fc3 --- /dev/null +++ b/data/assets/scene/solarsystem/planets/earth/noaa-sos/land/etopo2-landsat.asset @@ -0,0 +1,47 @@ +local globeIdentifier = asset.require("../../earth").Earth.Identifier + + +local Name = "ETOPO2: Bathymetry" +local Identifier = "noaa-sos-land-etopo2-landsat" +local Description = [[ Many datasets have been created by utilizing the ETOPO2 dataset, +which was generated from digital data bases of seafloor and land elevations on a 2-minute +latitude/longitude grid (1 minute of latitude = 1 nautical mile, or 1.15 statute mile). +The ETOPO2 is a combination of satellite altimetry observations, shipboard echo-sounding +measurements, data from the Digital Bathymetric Data Base Variable Resolution and data +from the GLOBE project which has a global digital elevation model. ]] +local URL = "https://sos.noaa.gov/catalog/datasets/etopo2-bathymetry/" + + +local syncedDirectory = asset.syncedResource({ + Name = Name, + Type = "HttpSynchronization", + Identifier = Identifier, + Version = 1 +}) + +local layer = { + Identifier = Identifier, + Name = Name, + FilePath = syncedDirectory .. "4096.jpg", + Description = Description +} + +asset.onInitialize(function() + openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer) +end) + +asset.onDeinitialize(function() + openspace.globebrowsing.deleteLayer(globeIdentifier, "ColorLayers", layer) +end) + +asset.export(layer) + + +asset.meta = { + Name = Name, + Version = "1.0", + Description = Description .. "Data provided by the National Oceanic and Atmospheric Administration.", + Author = "National Oceanic and Atmospheric Administration", + URL = URL, + License = "https://sos.noaa.gov/copyright/" +} diff --git a/data/assets/scene/solarsystem/planets/earth/noaa-sos/land/fire.asset b/data/assets/scene/solarsystem/planets/earth/noaa-sos/land/fire.asset new file mode 100644 index 0000000000..ed8c9256bd --- /dev/null +++ b/data/assets/scene/solarsystem/planets/earth/noaa-sos/land/fire.asset @@ -0,0 +1,65 @@ +local globeIdentifier = asset.require("../../earth").Earth.Identifier + + +local Name = "Fires - 2009" +local Identifier = "noaa-sos-land-fire" +local Description = [[ In order to monitor the fires occurring globally, a special sensor +has been mounted on the Terra and Aqua satellites. The sensor, named the Moderate +Resolution Imaging Spectroradiometer (MODIS), is able to provide daily satellite images +of the Earth's landmasses in near real-time using the MODIS Rapid Response System. There +are many uses for the data collected from MODIS, such as monitoring global fires by +detecting the abnormally high temperature anomalies at the surface. When a location is +much warmer than the surrounding area, it suggests the presence of a fire or a lava flow. +It is important to know the size, location and intensity of fires because of the damage +that they can cause, and also to help scientists understand the emissions from the fires +and their short- and long-term effects on ecosystems. ]] +local URL = "https://sos.noaa.gov/catalog/datasets/fires-2009/" + + +local syncedDirectory = asset.syncedResource({ + Name = Name, + Type = "HttpSynchronization", + Identifier = Identifier, + Version = 1 +}) + +local imagesDestination = syncedDirectory .. "images" + +local layer = { + Identifier = Identifier, + Name = Name, + Type = "TemporalTileLayer", + Mode = "Folder", + Folder = { + Folder = imagesDestination, + -- See https://en.cppreference.com/w/cpp/io/manip/get_time for an explanation of the + -- time formatting string + Format = "firemap.%Y%j-%Y%j.4096x2048.png" + }, + Description = Description +} + +asset.onInitialize(function() + if not openspace.directoryExists(imagesDestination) then + openspace.printInfo("Extracting " .. Name) + openspace.unzipFile(syncedDirectory .. "4096.zip", imagesDestination, true) + end + + openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer) +end) + +asset.onDeinitialize(function() + openspace.globebrowsing.deleteLayer(globeIdentifier, "ColorLayers", layer) +end) + +asset.export(layer) + + +asset.meta = { + Name = Name, + Version = "1.0", + Description = Description .. "Data provided by the National Oceanic and Atmospheric Administration.", + Author = "National Oceanic and Atmospheric Administration", + URL = URL, + License = "https://sos.noaa.gov/copyright/" +} diff --git a/data/assets/scene/solarsystem/planets/earth/noaa-sos/land/fire_veg.asset b/data/assets/scene/solarsystem/planets/earth/noaa-sos/land/fire_veg.asset new file mode 100644 index 0000000000..db585df313 --- /dev/null +++ b/data/assets/scene/solarsystem/planets/earth/noaa-sos/land/fire_veg.asset @@ -0,0 +1,82 @@ +local globeIdentifier = asset.require("../../earth").Earth.Identifier + + +local Name = "Fire Observations and Vegetation - 2002 - 2011" +local Identifier = "noaa-sos-land-fire_veg" +local Description = [[ This dataset leads viewers on a narrated global tour of fire +detections beginning in July 2002 and ending July 2011. The dataset also includes +vegetation and snow cover data to show how fires respond to seasonal changes. The tour +begins in Australia in 2002 by showing a network of massive grassland fires spreading +across interior Australia as well as the greener Eucalyptus forests in the northern and +eastern part of the continent. The tour then shifts to Asia where large numbers of +agricultural fires are visible first in China in June 2004, then across a huge swath of +Europe and western Russia in August, and then across India and Southeast Asia through the +early part of 2005. ]] +local URL = "https://sos.noaa.gov/catalog/datasets/fire-observations-and-vegetation-2002-2011/" + + +local syncedDirectory = asset.syncedResource({ + Name = Name, + Type = "HttpSynchronization", + Identifier = Identifier, + Version = 1 +}) + +local imagesDestination = syncedDirectory .. "images" + +local layer = { + Identifier = Identifier, + Name = Name, + Type = "ImageSequenceTileLayer", + FolderPath = imagesDestination, + Description = Description +} + +local colorbar_fire = { + Identifier = Identifier, + Name = Name, + Type = "ScreenSpaceImageLocal", + TexturePath = syncedDirectory .. "fire_colorbar.png", + FaceCamera = false, + CartesianPosition = { -0.5, -0.5, -2.0 } +} + +local colorbar_veg = { + Identifier = Identifier, + Name = Name, + Type = "ScreenSpaceImageLocal", + TexturePath = syncedDirectory .. "veg_colorbar.png", + FaceCamera = false, + CartesianPosition = { 0.5, -0.5, -2.0 } +} + +asset.onInitialize(function() + if not openspace.directoryExists(imagesDestination) then + openspace.printInfo("Extracting " .. Name) + openspace.unzipFile(syncedDirectory .. "2048.zip", imagesDestination, true) + end + + openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer) + openspace.addScreenSpaceRenderable(colorbar_fire); + openspace.addScreenSpaceRenderable(colorbar_veg); +end) + +asset.onDeinitialize(function() + openspace.globebrowsing.deleteLayer(globeIdentifier, "ColorLayers", layer) + openspace.removeScreenSpaceRenderable(colorbar_fire) + openspace.removeScreenSpaceRenderable(colorbar_veg) +end) + +asset.export(layer) +asset.export(colorbar_fire) +asset.export(colorbar_veg) + + +asset.meta = { + Name = Name, + Version = "1.0", + Description = Description .. "Data provided by the National Oceanic and Atmospheric Administration.", + Author = "National Oceanic and Atmospheric Administration", + URL = URL, + License = "https://sos.noaa.gov/copyright/" +} diff --git a/data/assets/scene/solarsystem/planets/earth/noaa-sos/land/flooding-displaced_250.asset b/data/assets/scene/solarsystem/planets/earth/noaa-sos/land/flooding-displaced_250.asset new file mode 100644 index 0000000000..9ff08367f8 --- /dev/null +++ b/data/assets/scene/solarsystem/planets/earth/noaa-sos/land/flooding-displaced_250.asset @@ -0,0 +1,61 @@ +local globeIdentifier = asset.require("../../earth").Earth.Identifier + + +local Name = "Flood Events: Displaced 250 or More People - 2000 - 2009" +local Identifier = "noaa-sos-land-flooding-displaced_250" +local Description = [[ Flooding is the nation's most common, costly and deadly natural +hazard. Heavy rain is the most frequent cause of floods, but there are many other natural +triggers, including hurricanes, tidal surges, ice jams and snow melt. Floods and flash +floods have happened in all 50 states in the USA. Flooding in river basins is a natural +part of the river's processes, serving to improve water quality and provide essential +habitat to species, among other benefits. Flooding is a matter of scientific interest, as +well as cultural significance, and is critical to land-use planning and policy. It is +also a vital concern to the safety and welfare of communities in flood prone areas +including those who live along waterways and coasts. People from all walks of life are +vulnerable to the effects of flooding. ]] +local URL = "https://sos.noaa.gov/catalog/datasets/flood-events-displaced-250-or-more-people-2000-2009/" + + +local syncedDirectory = asset.syncedResource({ + Name = Name, + Type = "HttpSynchronization", + Identifier = Identifier, + Version = 1 +}) + +local layer = { + Identifier = Identifier, + Name = Name, + FilePath = syncedDirectory .. "3600.png", + Description = Description +} + +local layer_night = { + Identifier = Identifier .. "-night", + Name = Name .. " (Night)", + FilePath = syncedDirectory .. "4096_night.jpg", + Description = Description +} + +asset.onInitialize(function() + openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer) + openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer_night) +end) + +asset.onDeinitialize(function() + openspace.globebrowsing.deleteLayer(globeIdentifier, "ColorLayers", layer) + openspace.globebrowsing.deleteLayer(globeIdentifier, "ColorLayers", layer_night) +end) + +asset.export(layer) +asset.export(layer_night) + + +asset.meta = { + Name = Name, + Version = "1.0", + Description = Description .. "Data provided by the National Oceanic and Atmospheric Administration.", + Author = "National Oceanic and Atmospheric Administration", + URL = URL, + License = "https://sos.noaa.gov/copyright/" +} diff --git a/data/assets/scene/solarsystem/planets/earth/noaa-sos/land/flooding-fatal.asset b/data/assets/scene/solarsystem/planets/earth/noaa-sos/land/flooding-fatal.asset new file mode 100644 index 0000000000..2509643d4a --- /dev/null +++ b/data/assets/scene/solarsystem/planets/earth/noaa-sos/land/flooding-fatal.asset @@ -0,0 +1,61 @@ +local globeIdentifier = asset.require("../../earth").Earth.Identifier + + +local Name = "Flood Events: 50 or More Fatalities - 2000 - 2009" +local Identifier = "noaa-sos-land-flooding-fatal" +local Description = [[ Flooding is the nation's most common, costly and deadly natural +hazard. Heavy rain is the most frequent cause of floods, but there are many other natural +triggers, including hurricanes, tidal surges, ice jams and snow melt. Floods and flash +floods have happened in all 50 states in the USA. Flooding in river basins is a natural +part of the river's processes, serving to improve water quality and provide essential +habitat to species, among other benefits. Flooding is a matter of scientific interest, +as well as cultural significance, and is critical to land-use planning and policy. It is +also a vital concern to the safety and welfare of communities in flood prone areas +including those who live along waterways and coasts. People from all walks of life are +vulnerable to the effects of flooding. ]] +local URL = "https://sos.noaa.gov/catalog/datasets/flood-events-50-or-more-fatalities-2000-2009/" + + +local syncedDirectory = asset.syncedResource({ + Name = Name, + Type = "HttpSynchronization", + Identifier = Identifier, + Version = 1 +}) + +local layer = { + Identifier = Identifier, + Name = Name, + FilePath = syncedDirectory .. "3600.png", + Description = Description +} + +local layer_night = { + Identifier = Identifier .. "-night", + Name = Name .. " (Night)", + FilePath = syncedDirectory .. "4096_night.jpg", + Description = Description +} + +asset.onInitialize(function() + openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer) + openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer_night) +end) + +asset.onDeinitialize(function() + openspace.globebrowsing.deleteLayer(globeIdentifier, "ColorLayers", layer) + openspace.globebrowsing.deleteLayer(globeIdentifier, "ColorLayers", layer_night) +end) + +asset.export(layer) +asset.export(layer_night) + + +asset.meta = { + Name = Name, + Version = "1.0", + Description = Description .. "Data provided by the National Oceanic and Atmospheric Administration.", + Author = "National Oceanic and Atmospheric Administration", + URL = URL, + License = "https://sos.noaa.gov/copyright/" +} diff --git a/data/assets/scene/solarsystem/planets/earth/noaa-sos/land/flooding-heavy_rain.asset b/data/assets/scene/solarsystem/planets/earth/noaa-sos/land/flooding-heavy_rain.asset new file mode 100644 index 0000000000..ed53372d60 --- /dev/null +++ b/data/assets/scene/solarsystem/planets/earth/noaa-sos/land/flooding-heavy_rain.asset @@ -0,0 +1,61 @@ +local globeIdentifier = asset.require("../../earth").Earth.Identifier + + +local Name = "Flood Events: Due to Heavy Rain - 2000 - 2009" +local Identifier = "noaa-sos-land-flooding-heavy_rain" +local Description = [[ Flooding is the nation's most common, costly and deadly natural +hazard. Heavy rain is the most frequent cause of floods, but there are many other natural +triggers, including hurricanes, tidal surges, ice jams and snow melt. Floods and flash +floods have happened in all 50 states in the USA. Flooding in river basins is a natural +part of the river's processes, serving to improve water quality and provide essential +habitat to species, among other benefits. Flooding is a matter of scientific interest, as +well as cultural significance, and is critical to land-use planning and policy. It is +also a vital concern to the safety and welfare of communities in flood prone areas +including those who live along waterways and coasts. People from all walks of life are +vulnerable to the effects of flooding. ]] +local URL = "https://sos.noaa.gov/catalog/datasets/flood-events-due-to-heavy-rain-2000-2009/" + + +local syncedDirectory = asset.syncedResource({ + Name = Name, + Type = "HttpSynchronization", + Identifier = Identifier, + Version = 1 +}) + +local layer = { + Identifier = Identifier, + Name = Name, + FilePath = syncedDirectory .. "3600.png", + Description = Description +} + +local layer_night = { + Identifier = Identifier .. "-night", + Name = Name .. " (Night)", + FilePath = syncedDirectory .. "4096_night.jpg", + Description = Description +} + +asset.onInitialize(function() + openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer) + openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer_night) +end) + +asset.onDeinitialize(function() + openspace.globebrowsing.deleteLayer(globeIdentifier, "ColorLayers", layer) + openspace.globebrowsing.deleteLayer(globeIdentifier, "ColorLayers", layer_night) +end) + +asset.export(layer) +asset.export(layer_night) + + +asset.meta = { + Name = Name, + Version = "1.0", + Description = Description .. "Data provided by the National Oceanic and Atmospheric Administration.", + Author = "National Oceanic and Atmospheric Administration", + URL = URL, + License = "https://sos.noaa.gov/copyright/" +} diff --git a/data/assets/scene/solarsystem/planets/earth/noaa-sos/land/flooding-major_floods.asset b/data/assets/scene/solarsystem/planets/earth/noaa-sos/land/flooding-major_floods.asset new file mode 100644 index 0000000000..b48561778d --- /dev/null +++ b/data/assets/scene/solarsystem/planets/earth/noaa-sos/land/flooding-major_floods.asset @@ -0,0 +1,61 @@ +local globeIdentifier = asset.require("../../earth").Earth.Identifier + + +local Name = "Flood Events - 2000 - 2009" +local Identifier = "noaa-sos-land-flooding-major_floods" +local Description = [[ Flooding is the nation's most common, costly and deadly natural +hazard. Heavy rain is the most frequent cause of floods, but there are many other natural +triggers, including hurricanes, tidal surges, ice jams and snow melt. Floods and flash +floods have happened in all 50 states in the USA. Flooding in river basins is a natural +part of the river's processes, serving to improve water quality and provide essential +habitat to species, among other benefits. Flooding is a matter of scientific interest, as +well as cultural significance, and is critical to land-use planning and policy. It is +also a vital concern to the safety and welfare of communities in flood prone areas +including those who live along waterways and coasts. People from all walks of life are +vulnerable to the effects of flooding. ]] +local URL = "https://sos.noaa.gov/catalog/datasets/flood-events-2000-2009/" + + +local syncedDirectory = asset.syncedResource({ + Name = Name, + Type = "HttpSynchronization", + Identifier = Identifier, + Version = 1 +}) + +local layer = { + Identifier = Identifier, + Name = Name, + FilePath = syncedDirectory .. "4096.jpg", + Description = Description +} + +local layer_floods = { + Identifier = Identifier .. "-floods", + Name = Name .. " (Floods)", + FilePath = syncedDirectory .. "flood_3600.png", + Description = Description +} + +asset.onInitialize(function() + openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer) + openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer_floods) +end) + +asset.onDeinitialize(function() + openspace.globebrowsing.deleteLayer(globeIdentifier, "ColorLayers", layer) + openspace.globebrowsing.deleteLayer(globeIdentifier, "ColorLayers", layer_floods) +end) + +asset.export(layer) +asset.export(layer_floods) + + +asset.meta = { + Name = Name, + Version = "1.0", + Description = Description .. "Data provided by the National Oceanic and Atmospheric Administration.", + Author = "National Oceanic and Atmospheric Administration", + URL = URL, + License = "https://sos.noaa.gov/copyright/" +} diff --git a/data/assets/scene/solarsystem/planets/earth/noaa-sos/land/food_v_feed.asset b/data/assets/scene/solarsystem/planets/earth/noaa-sos/land/food_v_feed.asset new file mode 100644 index 0000000000..eef748d7f0 --- /dev/null +++ b/data/assets/scene/solarsystem/planets/earth/noaa-sos/land/food_v_feed.asset @@ -0,0 +1,68 @@ +local globeIdentifier = asset.require("../../earth").Earth.Identifier + + +local Name = "Agriculture: Food vs. Feed" +local Identifier = "noaa-sos-land-food_v_feed" +local Description = [[ Not all cropland is used for producing food directly for people. A +lot of the food crops grown are actually used as feed for animals. This map shows which +regions produce crops that are mostly consumed directly by humans (in green), which +regions produce about the same amount of human food and animal feed (in orange), and +where most of the crops are used as animal feed (in red). ]] +local URL = "https://sos.noaa.gov/catalog/datasets/agriculture-food-vs-feed/" + + +local syncedDirectory = asset.syncedResource({ + Name = Name, + Type = "HttpSynchronization", + Identifier = Identifier, + Version = 1 +}) + +local layer = { + Identifier = Identifier, + Name = Name, + FilePath = syncedDirectory .. "4096.png", + Description = Description +} + +local layer_countries = { + Identifier = Identifier .. "-countries", + Name = Name .. " (w/ countries)", + FilePath = syncedDirectory .. "4096_countries.png", + Description = Description +} + +local label = { + Identifier = Identifier, + Name = Name, + Type = "ScreenSpaceImageLocal", + TexturePath = syncedDirectory .. "label.png", + FaceCamera = false, + CartesianPosition = { 0.0, -0.5, -2.0 } +} + +asset.onInitialize(function() + openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer) + openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer_countries) + openspace.addScreenSpaceRenderable(label); +end) + +asset.onDeinitialize(function() + openspace.globebrowsing.deleteLayer(globeIdentifier, "ColorLayers", layer) + openspace.globebrowsing.deleteLayer(globeIdentifier, "ColorLayers", layer_countries) + openspace.removeScreenSpaceRenderable(label) +end) + +asset.export(layer) +asset.export(layer_countries) +asset.export(label) + + +asset.meta = { + Name = Name, + Version = "1.0", + Description = Description .. "Data provided by the National Oceanic and Atmospheric Administration.", + Author = "National Oceanic and Atmospheric Administration", + URL = URL, + License = "https://sos.noaa.gov/copyright/" +} diff --git a/data/assets/scene/solarsystem/planets/earth/noaa-sos/land/forests.asset b/data/assets/scene/solarsystem/planets/earth/noaa-sos/land/forests.asset new file mode 100644 index 0000000000..9dbeb29be1 --- /dev/null +++ b/data/assets/scene/solarsystem/planets/earth/noaa-sos/land/forests.asset @@ -0,0 +1,114 @@ +local globeIdentifier = asset.require("../../earth").Earth.Identifier + + +local Name = "Forest Change (Extent, Gain, and Loss) - 2000 - 2014" +local Identifier = "noaa-sos-land-forests" +local Description = [[ This dataset shows annual tree cover extent,gain, and loss from +the year 2001 to 2014, at 30 meter resolution, as colored layers that can be seen +together or one at a time as individual layers that can be toggled on and off. Green is +used to represent tree cover in 2000, red shows tree cover loss between 2001-2014, +blue shows tree cover gain between 2001-2014, and purple is gain and loss together due to +replanting after loss has occurred. ]] +local URL = "https://sos.noaa.gov/catalog/datasets/forest-change-extent-gain-and-loss-2000-2014/" + + +local syncedDirectory = asset.syncedResource({ + Name = Name, + Type = "HttpSynchronization", + Identifier = Identifier, + Version = 1 +}) + +local layer_combined = { + Identifier = Identifier, + Name = Name, + FilePath = syncedDirectory .. "combined.png", + Description = Description +} + +local layer_extent = { + Identifier = Identifier .. "-extent", + Name = Name .. " (Extent)", + FilePath = syncedDirectory .. "extent.png", + Description = Description +} + +local layer_gain = { + Identifier = Identifier .. "-gain", + Name = Name .. " (Gain)", + FilePath = syncedDirectory .. "gain.png", + Description = Description +} + +local layer_loss = { + Identifier = Identifier .. "-loss", + Name = Name .. " (Loss)", + FilePath = syncedDirectory .. "loss.png", + Description = Description +} + +local layer_map = { + Identifier = Identifier .. "-map", + Name = Name .. " (Map)", + FilePath = syncedDirectory .. "map.png", + Description = Description +} + +local label = { + Identifier = Identifier, + Name = Name, + Type = "ScreenSpaceImageLocal", + TexturePath = syncedDirectory .. "forest_label.png", + FaceCamera = false, + Scale = 0.13, + CartesianPosition = { 0.5, 0.0, -2.0 } +} + +local label1 = { + Identifier = Identifier .. "-alt", + Name = Name .. " (alt)", + Type = "ScreenSpaceImageLocal", + Enabled = false, + TexturePath = syncedDirectory .. "forest_label1.png", + FaceCamera = false, + Scale = 0.13, + CartesianPosition = { 0.5, 0.0, -2.0 } +} + +asset.onInitialize(function() + openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer_combined) + openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer_extent) + openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer_gain) + openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer_loss) + openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer_map) + openspace.addScreenSpaceRenderable(label); + openspace.addScreenSpaceRenderable(label1); +end) + +asset.onDeinitialize(function() + openspace.globebrowsing.deleteLayer(globeIdentifier, "ColorLayers", layer_combined) + openspace.globebrowsing.deleteLayer(globeIdentifier, "ColorLayers", layer_extent) + openspace.globebrowsing.deleteLayer(globeIdentifier, "ColorLayers", layer_gain) + openspace.globebrowsing.deleteLayer(globeIdentifier, "ColorLayers", layer_loss) + openspace.globebrowsing.deleteLayer(globeIdentifier, "ColorLayers", layer_map) + openspace.removeScreenSpaceRenderable(label) + openspace.removeScreenSpaceRenderable(label1) +end) + +asset.export(layer_combined) +asset.export(layer_extent) +asset.export(layer_gain) +asset.export(layer_loss) +asset.export(layer_map) +asset.export(label) +asset.export(label1) + + +asset.meta = { + Name = Name, + Version = "1.0", + Description = Description .. "Data provided by the National Oceanic and Atmospheric Administration.", + Author = "National Oceanic and Atmospheric Administration", + URL = URL, + License = "https://sos.noaa.gov/copyright/" +} diff --git a/data/assets/scene/solarsystem/planets/earth/noaa-sos/land/geomag_tracklines.asset b/data/assets/scene/solarsystem/planets/earth/noaa-sos/land/geomag_tracklines.asset new file mode 100644 index 0000000000..b4a90051dc --- /dev/null +++ b/data/assets/scene/solarsystem/planets/earth/noaa-sos/land/geomag_tracklines.asset @@ -0,0 +1,60 @@ +local globeIdentifier = asset.require("../../earth").Earth.Identifier + + +local Name = "Geomagnetic Tracklines" +local Identifier = "noaa-sos-land-geomag_tracklines" +local Description = [[ Earth is like a giant magnet with a North and South Pole. However, +the magnetic North and South Pole are not aligned with the Geographic North and South +Pole. The Geographic North Pole is defined by the latitude 90° N and is the axis of the +Earth's rotation. The Magnetic North Pole is where the Earth's magnetic field points +vertically downward. The Earth creates its own magnetic field from the electric currents +created in the liquid iron-nickel core. ]] +local URL = "https://sos.noaa.gov/catalog/datasets/geomagnetic-tracklines/" + + +local syncedDirectory = asset.syncedResource({ + Name = Name, + Type = "HttpSynchronization", + Identifier = Identifier, + Version = 1 +}) + +local layer = { + Identifier = Identifier, + Name = Name, + FilePath = syncedDirectory .. "4096.png", + Description = Description +} + +local legend = { + Identifier = Identifier, + Name = Name, + Type = "ScreenSpaceImageLocal", + TexturePath = syncedDirectory .. "legend.png", + FaceCamera = false, + Scale = 0.2, + CartesianPosition = { 0.75, 0.0, -2.0 } +} + +asset.onInitialize(function() + openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer) + openspace.addScreenSpaceRenderable(legend); +end) + +asset.onDeinitialize(function() + openspace.globebrowsing.deleteLayer(globeIdentifier, "ColorLayers", layer) + openspace.removeScreenSpaceRenderable(legend) +end) + +asset.export(layer) +asset.export(legend) + + +asset.meta = { + Name = Name, + Version = "1.0", + Description = Description .. "Data provided by the National Oceanic and Atmospheric Administration.", + Author = "National Oceanic and Atmospheric Administration", + URL = URL, + License = "https://sos.noaa.gov/copyright/" +} diff --git a/data/assets/scene/solarsystem/planets/earth/noaa-sos/land/global_vegetation.asset b/data/assets/scene/solarsystem/planets/earth/noaa-sos/land/global_vegetation.asset new file mode 100644 index 0000000000..913cbbb992 --- /dev/null +++ b/data/assets/scene/solarsystem/planets/earth/noaa-sos/land/global_vegetation.asset @@ -0,0 +1,100 @@ +local globeIdentifier = asset.require("../../earth").Earth.Identifier + + +local Name = "Vegetation: Seasonal Changes - Apr 2012 - Apr 2013" +local Identifier = "noaa-sos-land-global_vegetation" +local Description = [[ Although 75% of the planet is a relatively unchanging ocean of +blue, the remaining 25% of Earth's surface is a dynamic green. Data from the NASA/NOAA +Suomi NPP satellite is able to show these subtle differences in greenness using the +Visible-Infrared Imager/Radiometer Suite (VIIRS) instrument on board the satellite. This +dataset highlights our ever-changing planet, using a highly detailed vegetation index +data from the satellite, developed by scientists at NOAA. ]] +local URL = "https://sos.noaa.gov/catalog/datasets/vegetation-seasonal-changes-apr-2012-apr-2013/" + + +local syncedDirectory = asset.syncedResource({ + Name = Name, + Type = "HttpSynchronization", + Identifier = Identifier, + Version = 1 +}) + +local imagesDestination = syncedDirectory .. "images/" +local colorbarDestination = syncedDirectory .. "colorbar/" + +local background1layer = { + Identifier = Identifier .. "-background-14a", + Name = Name .. " (Background Week 14a)", + FilePath = syncedDirectory .. "2012_week14a.png", + Description = Description +} + +local background2layer = { + Identifier = Identifier .. "-background-14", + Name = Name .. " (Background Week 14)", + FilePath = syncedDirectory .. "2012week14.png", + Description = Description +} + +local layer = { + Identifier = Identifier, + Name = Name, + Type = "TemporalTileLayer", + Mode = "Folder", + Folder = { + Folder = imagesDestination, + -- See https://en.cppreference.com/w/cpp/io/manip/get_time for an explanation of the + -- time formatting string + Format = "%Yweek%U.png" + }, + Description = Description +} + +local colorbar = { + Identifier = Identifier, + Name = Name, + Type = "ScreenSpaceImageLocal", + -- @TODO: We need a temporal provider for ScreenSpaceImages to handle this + TexturePath = colorbarDestination .. "NDVIColor00001.png", + FaceCamera = false, + CartesianPosition = { 0.0, -0.5, -2.0 } +} + +asset.onInitialize(function() + if not openspace.directoryExists(imagesDestination) then + openspace.printInfo("Extracting " .. Name .. " Images") + openspace.unzipFile(syncedDirectory .. "4096.zip", imagesDestination, true) + end + + if not openspace.directoryExists(colorbarDestination) then + openspace.printInfo("Extracting " .. Name .. " Colorbar") + openspace.unzipFile(syncedDirectory .. "colorbar.zip", colorbarDestination, true) + end + + openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", background1layer) + openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", background2layer) + openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer) + openspace.addScreenSpaceRenderable(colorbar); +end) + +asset.onDeinitialize(function() + openspace.globebrowsing.deleteLayer(globeIdentifier, "ColorLayers", layer) + openspace.globebrowsing.deleteLayer(globeIdentifier, "ColorLayers", background2layer) + openspace.globebrowsing.deleteLayer(globeIdentifier, "ColorLayers", background1layer) + openspace.removeScreenSpaceRenderable(colorbar) +end) + +asset.export(layer) +asset.export(background2layer) +asset.export(background1layer) +asset.export(colorbar) + + +asset.meta = { + Name = Name, + Version = "1.0", + Description = Description .. "Data provided by the National Oceanic and Atmospheric Administration.", + Author = "National Oceanic and Atmospheric Administration", + URL = URL, + License = "https://sos.noaa.gov/copyright/" +} diff --git a/data/assets/scene/solarsystem/planets/earth/noaa-sos/land/gray_earth.asset b/data/assets/scene/solarsystem/planets/earth/noaa-sos/land/gray_earth.asset new file mode 100644 index 0000000000..a41f2b561d --- /dev/null +++ b/data/assets/scene/solarsystem/planets/earth/noaa-sos/land/gray_earth.asset @@ -0,0 +1,58 @@ +local globeIdentifier = asset.require("../../earth").Earth.Identifier + + +local Name = "Gray Earth" +local Identifier = "noaa-sos-land-gray_earth" +local Description = [[ This dataset provides a view of the topography and bathymetry of +Earth by shading the continents and sea floor. Gray Earth also shows major continental +river systems and drainages. + +Longest Rivers in the world on each continent: + Africa - Nile - 4,132 miles (6,650 km) + South America - Amazon 4,000 miles (6,437 km) + Asia - Yangtze - 3,915 miles(6,300 km) + North America - Missouri - 2,540 miles (4,088 km) + Australia - Murray - 1,558 miles (2,508 km) + Europe - Volga - 2,266 miles (3,645) + +According to the dataset source, Natural Earth Data, the relief shading and hypsography +(study of Earth's topography; measurement and mapping of land elevations) are derived +from the modified SRTM - Shuttle Radar Topography Mission - Plus elevation data at 1km +resolution. Daniel Huffman, University of Wisconsin, Madison created the regionally +equalized hypsography that forms the foundation of the Gray Earth imagery. ]] +local URL = "https://sos.noaa.gov/catalog/datasets/gray-earth/" + + +local syncedDirectory = asset.syncedResource({ + Name = Name, + Type = "HttpSynchronization", + Identifier = Identifier, + Version = 1 +}) + +local layer = { + Identifier = Identifier, + Name = Name, + FilePath = syncedDirectory .. "4096.png", + Description = Description +} + +asset.onInitialize(function() + openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer) +end) + +asset.onDeinitialize(function() + openspace.globebrowsing.deleteLayer(globeIdentifier, "ColorLayers", layer) +end) + +asset.export(layer) + + +asset.meta = { + Name = Name, + Version = "1.0", + Description = Description .. "Data provided by the National Oceanic and Atmospheric Administration.", + Author = "National Oceanic and Atmospheric Administration", + URL = URL, + License = "https://sos.noaa.gov/copyright/" +} diff --git a/data/assets/scene/solarsystem/planets/earth/noaa-sos/land/hot_topo.asset b/data/assets/scene/solarsystem/planets/earth/noaa-sos/land/hot_topo.asset new file mode 100644 index 0000000000..6ecf7c0e63 --- /dev/null +++ b/data/assets/scene/solarsystem/planets/earth/noaa-sos/land/hot_topo.asset @@ -0,0 +1,65 @@ +local globeIdentifier = asset.require("../../earth").Earth.Identifier + + +local Name = "Topography and Bathymetry with Nighttime Lights" +local Identifier = "noaa-sos-land-hot_topo" +local Description = [[ This planet Earth visualization shows a rotating planet in order +to display both a nighttime and daytime view. The daytime side of the visualization shows +the bathymetry and topography of the globe. Color coding is used to distinguish between +the elevations. Red and gray represent the highest terrain on the land, green and yellow +represent the lowest. In the ocean, the darker colors are the deeper ocean floors while +the lighter colors indicate shallower areas as well as mountain ranges on the sea floor. +The very light blue shading in the ocean, near the land forms, is generally the shallow +continental shelf. Some interesting features that can be seen are the mountain ranges in +the oceans, such as the mid-Atlantic Ridge in the middle of the Atlantic Ocean, which is +spreading. Also in the ocean is the Marianas Trench, which is south of Japan. This trench +is the deepest location in the ocean with an amazing depth of 36,201 feet, almost 7 +miles. On land, the Himalayas are a noteworthy feature, as they are the home of Mount +Everest, the tallest point on earth at a height of 29,035 feet, almost 5.5 miles. ]] +local URL = "https://sos.noaa.gov/catalog/datasets/topography-and-bathymetry-with-nighttime-lights/" + + +local syncedDirectory = asset.syncedResource({ + Name = Name, + Type = "HttpSynchronization", + Identifier = Identifier, + Version = 1 +}) + +local imagesDestination = syncedDirectory .. "images" + +local layer = { + Identifier = Identifier, + Name = Name, + Type = "ImageSequenceTileLayer", + FolderPath = imagesDestination, + Description = Description +} + +asset.onInitialize(function() + if not openspace.directoryExists(imagesDestination) then + openspace.printInfo("Extracting " .. Name) + openspace.unzipFile(syncedDirectory .. "4096-1.zip", imagesDestination, true) + openspace.unzipFile(syncedDirectory .. "4096-2.zip", imagesDestination, true) + openspace.unzipFile(syncedDirectory .. "4096-3.zip", imagesDestination, true) + openspace.unzipFile(syncedDirectory .. "4096-4.zip", imagesDestination, true) + end + + openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer) +end) + +asset.onDeinitialize(function() + openspace.globebrowsing.deleteLayer(globeIdentifier, "ColorLayers", layer) +end) + +asset.export(layer) + + +asset.meta = { + Name = Name, + Version = "1.0", + Description = Description .. "Data provided by the National Oceanic and Atmospheric Administration.", + Author = "National Oceanic and Atmospheric Administration", + URL = URL, + License = "https://sos.noaa.gov/copyright/" +} diff --git a/data/assets/scene/solarsystem/planets/earth/noaa-sos/land/irsat_nightlights.asset b/data/assets/scene/solarsystem/planets/earth/noaa-sos/land/irsat_nightlights.asset new file mode 100644 index 0000000000..5efc1ec693 --- /dev/null +++ b/data/assets/scene/solarsystem/planets/earth/noaa-sos/land/irsat_nightlights.asset @@ -0,0 +1,56 @@ +local globeIdentifier = asset.require("../../earth").Earth.Identifier + + +local Name = "Day/Night Terminator (with clouds)" +local Identifier = "noaa-sos-land-irsat_nightlights" +local Description = [[ The line that separates day and night is called the terminator. It +is also referred to as the "grey line" and the "twilight zone." It is a fuzzy line due to +our atmosphere bending sunlight. In fact, the atmosphere bends sunlight by half a degree, +which is about 37 miles (60 km). It is commonly thought that while half of the Earth is +covered in darkness, the other half is covered in sunlight. This is actually not true +because of the bending of the sunlight results in the land covered by sunlight having +greater area than the land covered by darkness. ]] +local URL = "https://sos.noaa.gov/catalog/datasets/daynight-terminator-with-clouds/" + + +local syncedDirectory = asset.syncedResource({ + Name = Name, + Type = "HttpSynchronization", + Identifier = Identifier, + Version = 1 +}) + +local imagesDestination = syncedDirectory .. "images" + +local layer = { + Identifier = Identifier, + Name = Name, + Type = "ImageSequenceTileLayer", + FolderPath = imagesDestination, + Description = Description +} + +asset.onInitialize(function() + if not openspace.directoryExists(imagesDestination) then + openspace.printInfo("Extracting " .. Name) + openspace.unzipFile(syncedDirectory .. "2048.zip", imagesDestination, true) + end + + openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer) +end) + +asset.onDeinitialize(function() + openspace.globebrowsing.deleteLayer(globeIdentifier, "ColorLayers", layer) +end) + +asset.export(layer) + + +asset.meta = { + Name = Name, + Version = "1.0", + Description = Description .. "Data provided by the National Oceanic and Atmospheric Administration.", + Author = "National Oceanic and Atmospheric Administration", + URL = URL, + License = "https://sos.noaa.gov/copyright/" +} diff --git a/data/assets/scene/solarsystem/planets/earth/noaa-sos/land/japan_quake.asset b/data/assets/scene/solarsystem/planets/earth/noaa-sos/land/japan_quake.asset new file mode 100644 index 0000000000..6666c4758a --- /dev/null +++ b/data/assets/scene/solarsystem/planets/earth/noaa-sos/land/japan_quake.asset @@ -0,0 +1,68 @@ +local globeIdentifier = asset.require("../../earth").Earth.Identifier + + +local Name = "Japan Earthquake - March 2011" +local Identifier = "noaa-sos-land-japan_quake" +local Description = [[ On March 11, 2011 at 2:45 local time, a 9.0 magnitude earthquake +occurred 81 miles (130 km) off the east coast of Sendai, Japan, triggering a massive +tsunami. It is estimated that the initial tsunami wave took 10 to 30 minutes to make its +first landfall. Forecasted wave heights were up to 33 ft (10 m) and there were many +reports of tsunami waves three stories high in parts of Japan. Across the Pacific Ocean, +many countries issued evacuations along the coasts because of the predicted tsunami +waves. ]] +local URL = "https://sos.noaa.gov/catalog/datasets/japan-earthquake-march-2011/" + + +local syncedDirectory = asset.syncedResource({ + Name = Name, + Type = "HttpSynchronization", + Identifier = Identifier, + Version = 1 +}) + +local imagesDestination = syncedDirectory .. "images" + +local layer = { + Identifier = Identifier, + Name = Name, + Type = "ImageSequenceTileLayer", + FolderPath = imagesDestination, + Description = Description +} + +local legend = { + Identifier = Identifier, + Name = Name, + Type = "ScreenSpaceImageLocal", + TexturePath = syncedDirectory .. "legend_annotated.png", + FaceCamera = false, + CartesianPosition = { 0.0, -0.5, -2.0 } +} + +asset.onInitialize(function() + if not openspace.directoryExists(imagesDestination) then + openspace.printInfo("Extracting " .. Name) + openspace.unzipFile(syncedDirectory .. "2048.zip", imagesDestination, true) + end + + openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer) + openspace.addScreenSpaceRenderable(legend); +end) + +asset.onDeinitialize(function() + openspace.globebrowsing.deleteLayer(globeIdentifier, "ColorLayers", layer) + openspace.removeScreenSpaceRenderable(legend) +end) + +asset.export(layer) +asset.export(legend) + + +asset.meta = { + Name = Name, + Version = "1.0", + Description = Description .. "Data provided by the National Oceanic and Atmospheric Administration.", + Author = "National Oceanic and Atmospheric Administration", + URL = URL, + License = "https://sos.noaa.gov/copyright/" +} diff --git a/data/assets/scene/solarsystem/planets/earth/noaa-sos/land/koppen_climate-koppen_1901_2100.asset b/data/assets/scene/solarsystem/planets/earth/noaa-sos/land/koppen_climate-koppen_1901_2100.asset new file mode 100644 index 0000000000..28856391ee --- /dev/null +++ b/data/assets/scene/solarsystem/planets/earth/noaa-sos/land/koppen_climate-koppen_1901_2100.asset @@ -0,0 +1,81 @@ +local globeIdentifier = asset.require("../../earth").Earth.Identifier + + +local Name = "Koppen-Geiger Climate Changes - 1901 - 2100" +local Identifier = "noaa-sos-land-koppen_climate-koppen_1901_2100" +local Description = [[ Köppen climate classification is a widely used vegetation-based +empirical climate classification system developed by German botanist-climatologist +Wladimir Köppen. It's based on the idea that climate is best defined by native +vegetation. The formulas used in the classification correspond to those of the vegetation +zones (biomes) that were being mapped for the first time in the late 19th century. It was +first published in 1884 and was revised until 1940 with collaboration by German +climatologist Rudolf Geiger. ]] +local URL = "https://sos.noaa.gov/catalog/datasets/koppen-geiger-climate-changes-1901-2100/" + + +local syncedDirectory = asset.syncedResource({ + Name = Name, + Type = "HttpSynchronization", + Identifier = Identifier, + Version = 1 +}) + +local imagesDestination = syncedDirectory .. "images" + +local layer = { + Identifier = Identifier, + Name = Name, + Type = "ImageSequenceTileLayer", + FolderPath = imagesDestination, + Description = Description +} + +local legend = { + Identifier = Identifier, + Name = Name, + Type = "ScreenSpaceImageLocal", + TexturePath = syncedDirectory .. "legend.jpg", + FaceCamera = false, + Scale = 0.375, + CartesianPosition = { -0.75, -0.5, -2.0 } +} + +local legend1 = { + Identifier = Identifier .. "-1", + Name = Name .. " (1)", + Type = "ScreenSpaceImageLocal", + TexturePath = syncedDirectory .. "legend2.png", + FaceCamera = false, + CartesianPosition = { 0.75, -0.5, -2.0 } +} + +asset.onInitialize(function() + if not openspace.directoryExists(imagesDestination) then + openspace.printInfo("Extracting " .. Name) + openspace.unzipFile(syncedDirectory .. "4096.zip", imagesDestination, true) + end + + openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer) + openspace.addScreenSpaceRenderable(legend); + openspace.addScreenSpaceRenderable(legend1); +end) + +asset.onDeinitialize(function() + openspace.globebrowsing.deleteLayer(globeIdentifier, "ColorLayers", layer) + openspace.removeScreenSpaceRenderable(legend) + openspace.removeScreenSpaceRenderable(legend1) +end) + +asset.export(layer) +asset.export(legend) +asset.export(legend1) + + +asset.meta = { + Name = Name, + Version = "1.0", + Description = Description .. "Data provided by the National Oceanic and Atmospheric Administration.", + Author = "National Oceanic and Atmospheric Administration", + URL = URL, + License = "https://sos.noaa.gov/copyright/" +} diff --git a/data/assets/scene/solarsystem/planets/earth/noaa-sos/land/koppen_climate-koppen_2007.asset b/data/assets/scene/solarsystem/planets/earth/noaa-sos/land/koppen_climate-koppen_2007.asset new file mode 100644 index 0000000000..a6f5a2121e --- /dev/null +++ b/data/assets/scene/solarsystem/planets/earth/noaa-sos/land/koppen_climate-koppen_2007.asset @@ -0,0 +1,73 @@ +local globeIdentifier = asset.require("../../earth").Earth.Identifier + + +local Name = "Koppen-Geiger Climate Classification - 2007" +local Identifier = "noaa-sos-land-koppen_climate-koppen_2007" +local Description = [[ Köppen climate classification is a widely used vegetation-based +empirical climate classification system developed by German botanist-climatologist +Wladimir Köppen. It's based on the idea that climate is best defined by native +vegetation. The formulas used in the classification correspond to those of the vegetation +zones (biomes) that were being mapped for the first time in the late 19th century. It was +first published in 1884 and was revised until 1940 with collaboration by German +climatologist Rudolf Geiger.This particular revision is from 2007. ]] +local URL = "https://sos.noaa.gov/catalog/datasets/koppen-geiger-climate-classification-2007/" + + +local syncedDirectory = asset.syncedResource({ + Name = Name, + Type = "HttpSynchronization", + Identifier = Identifier, + Version = 1 +}) + +local layer = { + Identifier = Identifier, + Name = Name, + FilePath = syncedDirectory .. "4096.jpg", + Description = Description +} + +local legend = { + Identifier = Identifier, + Name = Name, + Type = "ScreenSpaceImageLocal", + TexturePath = syncedDirectory .. "legend.png", + FaceCamera = false, + Scale = 0.375, + CartesianPosition = { -0.75, -0.5, -2.0 } +} + +local legend1 = { + Identifier = Identifier .. "-alt", + Name = Name .. " (alt)", + Type = "ScreenSpaceImageLocal", + TexturePath = syncedDirectory .. "legend2.png", + FaceCamera = false, + CartesianPosition = { 0.75, -0.5, -2.0 } +} + +asset.onInitialize(function() + openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer) + openspace.addScreenSpaceRenderable(legend); + openspace.addScreenSpaceRenderable(legend1); +end) + +asset.onDeinitialize(function() + openspace.globebrowsing.deleteLayer(globeIdentifier, "ColorLayers", layer) + openspace.removeScreenSpaceRenderable(legend) + openspace.removeScreenSpaceRenderable(legend1) +end) + +asset.export(layer) +asset.export(legend) +asset.export(legend1) + + +asset.meta = { + Name = Name, + Version = "1.0", + Description = Description .. "Data provided by the National Oceanic and Atmospheric Administration.", + Author = "National Oceanic and Atmospheric Administration", + URL = URL, + License = "https://sos.noaa.gov/copyright/" +} diff --git a/data/assets/scene/solarsystem/planets/earth/noaa-sos/land/land_cover-animation.asset b/data/assets/scene/solarsystem/planets/earth/noaa-sos/land/land_cover-animation.asset new file mode 100644 index 0000000000..fcfb6cdb22 --- /dev/null +++ b/data/assets/scene/solarsystem/planets/earth/noaa-sos/land/land_cover-animation.asset @@ -0,0 +1,74 @@ +local globeIdentifier = asset.require("../../earth").Earth.Identifier + + +local Name = "Land Cover (animation)" +local Identifier = "noaa-sos-land-land_cover-animation" +local Description = [[ The Moderate Resolution Imaging Spectroradiometer (MODIS) +instrument on NASA's Terra satellite provides scientists with a new view of the Earth. +Using data collected by MODIS, researchers at Boston University were able to create these +land cover maps. Understanding the land cover of Earth aids policy makers involved in +natural resource management. The maps are also critical for scientists as they study +changes in the Earth system and as they model the Earth system. For example, in order to +calculate the carbon budget for the Earth system, scientists can use these maps to +determine the extent of vegetation covering the land surface that is absorbing carbon +dioxide. Each of the varying land types have different impacts on the Earth system. Snow +and ice cover cool the planet by reflecting sunlight back to space, forests absorb huge +amounts of carbon dioxide, and croplands and urban areas reflect the human impact on the +Earth. ]] +local URL = "https://sos.noaa.gov/catalog/datasets/land-cover-animation/" + + +local syncedDirectory = asset.syncedResource({ + Name = Name, + Type = "HttpSynchronization", + Identifier = Identifier, + Version = 1 +}) + +local imagesDestination = syncedDirectory .. "images" + +local layer = { + Identifier = Identifier, + Name = Name, + Type = "ImageSequenceTileLayer", + FolderPath = imagesDestination, + Description = Description +} + +local label = { + Identifier = Identifier, + Name = Name, + Type = "ScreenSpaceImageLocal", + TexturePath = syncedDirectory .. "lcc_ribbon_label.jpg", + FaceCamera = false, + Scale = 0.75, + CartesianPosition = { 0.0, -0.5, -2.0 } +} + +asset.onInitialize(function() + if not openspace.directoryExists(imagesDestination) then + openspace.printInfo("Extracting " .. Name) + openspace.unzipFile(syncedDirectory .. "3600.zip", imagesDestination, true) + end + + openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer) + openspace.addScreenSpaceRenderable(label); +end) + +asset.onDeinitialize(function() + openspace.globebrowsing.deleteLayer(globeIdentifier, "ColorLayers", layer) + openspace.removeScreenSpaceRenderable(label) +end) + +asset.export(layer) +asset.export(label) + + +asset.meta = { + Name = Name, + Version = "1.0", + Description = Description .. "Data provided by the National Oceanic and Atmospheric Administration.", + Author = "National Oceanic and Atmospheric Administration", + URL = URL, + License = "https://sos.noaa.gov/copyright/" +} diff --git a/data/assets/scene/solarsystem/planets/earth/noaa-sos/land/land_cover-ribbon.asset b/data/assets/scene/solarsystem/planets/earth/noaa-sos/land/land_cover-ribbon.asset new file mode 100644 index 0000000000..2616e54f2e --- /dev/null +++ b/data/assets/scene/solarsystem/planets/earth/noaa-sos/land/land_cover-ribbon.asset @@ -0,0 +1,66 @@ +local globeIdentifier = asset.require("../../earth").Earth.Identifier + + +local Name = "Land Cover (map with ribbon of labels)" +local Identifier = "noaa-sos-land-land_cover-ribbon" +local Description = [[ The Moderate Resolution Imaging Spectroradiometer (MODIS) +instrument on NASA's Terra satellite provides scientists with a new view of the Earth. +Using data collected by MODIS, researchers at Boston University were able to create these +land cover maps. Understanding the land cover of Earth aids policy makers involved in +natural resource management. The maps are also critical for scientists as they study +changes in the Earth system and as they model the Earth system. For example, in order to +calculate the carbon budget for the Earth system, scientists can use these maps to +determine the extent of vegetation covering the land surface that is absorbing carbon +dioxide. Each of the varying land types have different impacts on the Earth system. Snow +and ice cover cool the planet by reflecting sunlight back to space, forests absorb huge +amounts of carbon dioxide, and croplands and urban areas reflect the human impact on the +Earth. ]] +local URL = "https://sos.noaa.gov/catalog/datasets/land-cover-map-with-ribbon-of-labels/" + + +local syncedDirectory = asset.syncedResource({ + Name = Name, + Type = "HttpSynchronization", + Identifier = Identifier, + Version = 1 +}) + +local layer = { + Identifier = Identifier, + Name = Name, + FilePath = syncedDirectory .. "2048.jpg", + Description = Description +} + +local label = { + Identifier = Identifier, + Name = Name, + Type = "ScreenSpaceImageLocal", + TexturePath = syncedDirectory .. "lcc_ribbon_label.jpg", + FaceCamera = false, + Scale = 0.75, + CartesianPosition = { 0.0, -0.5, -2.0 } +} + +asset.onInitialize(function() + openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer) + openspace.addScreenSpaceRenderable(label); +end) + +asset.onDeinitialize(function() + openspace.globebrowsing.deleteLayer(globeIdentifier, "ColorLayers", layer) + openspace.removeScreenSpaceRenderable(label) +end) + +asset.export(layer) +asset.export(label) + + +asset.meta = { + Name = Name, + Version = "1.0", + Description = Description .. "Data provided by the National Oceanic and Atmospheric Administration.", + Author = "National Oceanic and Atmospheric Administration", + URL = URL, + License = "https://sos.noaa.gov/copyright/" +} diff --git a/data/assets/scene/solarsystem/planets/earth/noaa-sos/land/land_cover-slideshow.asset b/data/assets/scene/solarsystem/planets/earth/noaa-sos/land/land_cover-slideshow.asset new file mode 100644 index 0000000000..b1d66802af --- /dev/null +++ b/data/assets/scene/solarsystem/planets/earth/noaa-sos/land/land_cover-slideshow.asset @@ -0,0 +1,102 @@ +local globeIdentifier = asset.require("../../earth").Earth.Identifier + + +local Name = "Land Cover (map with slideshow of labels)" +local Identifier = "noaa-sos-land-land_cover-slideshow" +local Description = [[ The Moderate Resolution Imaging Spectroradiometer (MODIS) +instrument on NASA's Terra satellite provides scientists with a new view of the Earth. +Using data collected by MODIS, researchers at Boston University were able to create these +land cover maps. Understanding the land cover of Earth aids policy makers involved in +natural resource management. The maps are also critical for scientists as they study +changes in the Earth system and as they model the Earth system. For example, in order to +calculate the carbon budget for the Earth system, scientists can use these maps to +determine the extent of vegetation covering the land surface that is absorbing carbon +dioxide. Each of the varying land types have different impacts on the Earth system. Snow +and ice cover cool the planet by reflecting sunlight back to space, forests absorb huge +amounts of carbon dioxide, and croplands and urban areas reflect the human impact on the +Earth. ]] +local URL = "https://sos.noaa.gov/catalog/datasets/land-cover-map-with-slideshow-of-labels/" + + +local syncedDirectory = asset.syncedResource({ + Name = Name, + Type = "HttpSynchronization", + Identifier = Identifier, + Version = 1 +}) + +local labelsDestination = syncedDirectory .. "labels/" + +local layer = { + Identifier = Identifier, + Name = Name, + FilePath = syncedDirectory .. "2048.jpg", + Description = Description +} + +function create_label(number) + return { + Identifier = Identifier .. "-" .. number, + Name = Name .. " (" .. number .. ")", + Type = "ScreenSpaceImageLocal", + TexturePath = labelsDestination .. "lcc_" .. number .. ".jpg", + Enabled = false, + FaceCamera = false, + CartesianPosition = { 0.75, 0.0, -2.0 } + } +end + +local label_01 = create_label("01") +local label_02 = create_label("02") +local label_03 = create_label("03") +local label_04 = create_label("04") +local label_05 = create_label("05") +local label_06 = create_label("06") +local label_07 = create_label("07") +local label_08 = create_label("08") +local label_09 = create_label("09") +local label_10 = create_label("10") +local label_11 = create_label("11") +local label_12 = create_label("12") +local label_13 = create_label("13") +local label_14 = create_label("14") +local label_15 = create_label("15") +local label_16 = create_label("16") + +local labels = { + label_01, label_02, label_03, label_04, label_05, label_06, label_07, label_08, + label_09, label_10, label_11, label_12, label_13, label_14, label_15, label_16 +} + +asset.onInitialize(function() + if not openspace.directoryExists(labelsDestination) then + openspace.printInfo("Extracting " .. Name) + openspace.unzipFile(syncedDirectory .. "labels.zip", labelsDestination, true) + end + + openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer) + + for _,v in ipairs(labels) do + openspace.addScreenSpaceRenderable(v) + end +end) + +asset.onDeinitialize(function() + openspace.globebrowsing.deleteLayer(globeIdentifier, "ColorLayers", layer.Identifier) + for _,v in ipairs(labels) do + openspace.removeScreenSpaceRenderable(v) + end +end) + +for _,v in ipairs(labels) do + asset.export(v) +end + +asset.meta = { + Name = Name, + Version = "1.0", + Description = Description .. "Data provided by the National Oceanic and Atmospheric Administration.", + Author = "National Oceanic and Atmospheric Administration", + URL = URL, + License = "https://sos.noaa.gov/copyright/" +} diff --git a/data/assets/scene/solarsystem/planets/earth/noaa-sos/land/land_production-cropland_current.asset b/data/assets/scene/solarsystem/planets/earth/noaa-sos/land/land_production-cropland_current.asset new file mode 100644 index 0000000000..fc4ff07c5e --- /dev/null +++ b/data/assets/scene/solarsystem/planets/earth/noaa-sos/land/land_production-cropland_current.asset @@ -0,0 +1,70 @@ +local globeIdentifier = asset.require("../../earth").Earth.Identifier + + +local Name = "Agriculture: Cropland Yield (current)" +local Identifier = "noaa-sos-land-land_production-cropland_current" +local Description = [[ A major component of the 2 Billion More Coming to Dinner film, +this dataset shows the current yield for the three top global crops, corn, wheat and +rice, measured in tons per hectare. Similarly, Cropland Yield - Potential, illustrates +the potential yield for a given area, determined by using the productivity of another +region with analogous environmental conditions and optimized water and nutrient input as +a benchmark. For both maps, darker areas show smaller yields, while bright pink areas +indicate higher yields. ]] +local URL = "https://sos.noaa.gov/catalog/datasets/agriculture-cropland-yield-current/" + + +local syncedDirectory = asset.syncedResource({ + Name = Name, + Type = "HttpSynchronization", + Identifier = Identifier, + Version = 1 +}) + +local layer = { + Identifier = Identifier, + Name = Name, + FilePath = syncedDirectory .. "4096.png", + Description = Description +} + +local layer_countries = { + Identifier = Identifier .. "-countries", + Name = Name .. " (w/ countries)", + FilePath = syncedDirectory .. "4096_countries.png", + Description = Description +} + +local legend = { + Identifier = Identifier, + Name = Name, + Type = "ScreenSpaceImageLocal", + TexturePath = syncedDirectory .. "legend.png", + FaceCamera = false, + CartesianPosition = { 0.0, -0.5, -2.0 } +} + +asset.onInitialize(function() + openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer) + openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer_countries) + openspace.addScreenSpaceRenderable(legend); +end) + +asset.onDeinitialize(function() + openspace.globebrowsing.deleteLayer(globeIdentifier, "ColorLayers", layer) + openspace.globebrowsing.deleteLayer(globeIdentifier, "ColorLayers", layer_countries) + openspace.removeScreenSpaceRenderable(legend) +end) + +asset.export(layer) +asset.export(layer_countries) +asset.export(legend) + + +asset.meta = { + Name = Name, + Version = "1.0", + Description = Description .. "Data provided by the National Oceanic and Atmospheric Administration.", + Author = "National Oceanic and Atmospheric Administration", + URL = URL, + License = "https://sos.noaa.gov/copyright/" +} diff --git a/data/assets/scene/solarsystem/planets/earth/noaa-sos/land/land_production-cropland_potential.asset b/data/assets/scene/solarsystem/planets/earth/noaa-sos/land/land_production-cropland_potential.asset new file mode 100644 index 0000000000..9392161945 --- /dev/null +++ b/data/assets/scene/solarsystem/planets/earth/noaa-sos/land/land_production-cropland_potential.asset @@ -0,0 +1,69 @@ +local globeIdentifier = asset.require("../../earth").Earth.Identifier + + +local Name = "Agriculture: Cropland Yield (potential)" +local Identifier = "noaa-sos-land-land_production-cropland_potential" +local Description = [[ A major component of the 2 Billion More Coming to Dinner film, +these datasets show current and potential yields for the three top crops, corn, wheat and +rice, measured in tons per hectare. Potential yield for a given area is determined by +using the productivity of another region with analogous environmental conditions and +optimized water and nutrient input as a benchmark. In this map, darker areas show smaller +yields, while bright pink areas indicate higher yields. ]] +local URL = "https://sos.noaa.gov/catalog/datasets/agriculture-cropland-yield-potential/" + + +local syncedDirectory = asset.syncedResource({ + Name = Name, + Type = "HttpSynchronization", + Identifier = Identifier, + Version = 1 +}) + +local layer = { + Identifier = Identifier, + Name = Name, + FilePath = syncedDirectory .. "4096.png", + Description = Description +} + +local layer_countries = { + Identifier = Identifier .. "-countries", + Name = Name .. " (w/ countries)", + FilePath = syncedDirectory .. "4096_countries.png", + Description = Description +} + +local legend = { + Identifier = Identifier, + Name = Name, + Type = "ScreenSpaceImageLocal", + TexturePath = syncedDirectory .. "legend.png", + FaceCamera = false, + CartesianPosition = { 0.0, -0.5, -2.0 } +} + +asset.onInitialize(function() + openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer) + openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer_countries) + openspace.addScreenSpaceRenderable(legend); +end) + +asset.onDeinitialize(function() + openspace.globebrowsing.deleteLayer(globeIdentifier, "ColorLayers", layer) + openspace.globebrowsing.deleteLayer(globeIdentifier, "ColorLayers", layer_countries) + openspace.removeScreenSpaceRenderable(legend) +end) + +asset.export(layer) +asset.export(layer_countries) +asset.export(legend) + + +asset.meta = { + Name = Name, + Version = "1.0", + Description = Description .. "Data provided by the National Oceanic and Atmospheric Administration.", + Author = "National Oceanic and Atmospheric Administration", + URL = URL, + License = "https://sos.noaa.gov/copyright/" +} diff --git a/data/assets/scene/solarsystem/planets/earth/noaa-sos/land/land_production-production_gap.asset b/data/assets/scene/solarsystem/planets/earth/noaa-sos/land/land_production-production_gap.asset new file mode 100644 index 0000000000..38eca7acc1 --- /dev/null +++ b/data/assets/scene/solarsystem/planets/earth/noaa-sos/land/land_production-production_gap.asset @@ -0,0 +1,69 @@ +local globeIdentifier = asset.require("../../earth").Earth.Identifier + + +local Name = "Agriculture: Cropland Production Gap" +local Identifier = "noaa-sos-land-land_production-production_gap" +local Description = [[ A major component of the 2 Billion More Coming to Dinner film, +these datasets show current and potential yields for the three top global crops, corn, +wheat and rice, measured in tons per hectare. Potential yield for a given area is +determined by using the productivity of another region with analogous environmental +conditions and optimized water and nutrient input as a benchmark. In both maps, darker +areas show smaller yields, while bright pink areas indicate higher yields. ]] +local URL = "https://sos.noaa.gov/catalog/datasets/agriculture-cropland-yield-potential/" + + +local syncedDirectory = asset.syncedResource({ + Name = Name, + Type = "HttpSynchronization", + Identifier = Identifier, + Version = 1 +}) + +local layer = { + Identifier = Identifier, + Name = Name, + FilePath = syncedDirectory .. "4096.png", + Description = Description +} + +local layer_countries = { + Identifier = Identifier .. "-countries", + Name = Name .. " (w/ countries)", + FilePath = syncedDirectory .. "4096_countries.png", + Description = Description +} + +local legend = { + Identifier = Identifier, + Name = Name, + Type = "ScreenSpaceImageLocal", + TexturePath = syncedDirectory .. "legend.png", + FaceCamera = false, + CartesianPosition = { 0.0, -0.5, -2.0 } +} + +asset.onInitialize(function() + openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer) + openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer_countries) + openspace.addScreenSpaceRenderable(legend); +end) + +asset.onDeinitialize(function() + openspace.globebrowsing.deleteLayer(globeIdentifier, "ColorLayers", layer) + openspace.globebrowsing.deleteLayer(globeIdentifier, "ColorLayers", layer_countries) + openspace.removeScreenSpaceRenderable(legend) +end) + +asset.export(layer) +asset.export(layer_countries) +asset.export(legend) + + +asset.meta = { + Name = Name, + Version = "1.0", + Description = Description .. "Data provided by the National Oceanic and Atmospheric Administration.", + Author = "National Oceanic and Atmospheric Administration", + URL = URL, + License = "https://sos.noaa.gov/copyright/" +} diff --git a/data/assets/scene/solarsystem/planets/earth/noaa-sos/land/land_ratio.asset b/data/assets/scene/solarsystem/planets/earth/noaa-sos/land/land_ratio.asset new file mode 100644 index 0000000000..0e3640c252 --- /dev/null +++ b/data/assets/scene/solarsystem/planets/earth/noaa-sos/land/land_ratio.asset @@ -0,0 +1,51 @@ +local globeIdentifier = asset.require("../../earth").Earth.Identifier + + +local Name = "Land to Sea Ratio" +local Identifier = "noaa-sos-land-land_ratio" +local Description = [[ In this dataset, we witness the world map transform into a graph +that shows the ratio of land and sea at different latitudes. ]] +local URL = "https://sos.noaa.gov/catalog/datasets/land-to-sea-ratio/" + + +local syncedDirectory = asset.syncedResource({ + Name = Name, + Type = "HttpSynchronization", + Identifier = Identifier, + Version = 1 +}) + +local imagesDestination = syncedDirectory .. "images" + +local layer = { + Identifier = Identifier, + Name = Name, + Type = "ImageSequenceTileLayer", + FolderPath = imagesDestination, + Description = Description +} + +asset.onInitialize(function() + if not openspace.directoryExists(imagesDestination) then + openspace.printInfo("Extracting " .. Name) + openspace.unzipFile(syncedDirectory .. "4096.zip", imagesDestination, true) + end + + openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer) +end) + +asset.onDeinitialize(function() + openspace.globebrowsing.deleteLayer(globeIdentifier, "ColorLayers", layer) +end) + +asset.export(layer) + + +asset.meta = { + Name = Name, + Version = "1.0", + Description = Description .. "Data provided by the National Oceanic and Atmospheric Administration.", + Author = "National Oceanic and Atmospheric Administration", + URL = URL, + License = "https://sos.noaa.gov/copyright/" +} diff --git a/data/assets/scene/solarsystem/planets/earth/noaa-sos/land/latitude_longitude.asset b/data/assets/scene/solarsystem/planets/earth/noaa-sos/land/latitude_longitude.asset new file mode 100644 index 0000000000..11036a362d --- /dev/null +++ b/data/assets/scene/solarsystem/planets/earth/noaa-sos/land/latitude_longitude.asset @@ -0,0 +1,74 @@ +local globeIdentifier = asset.require("../../earth").Earth.Identifier + + +local Name = "Latitude Longitude Layers" +local Identifier = "noaa-sos-land-latitude_longitude" +local Description = [[ Showing the relationship of latitude and longitude lines on Earth, +this dataset is useful when talking about geographical features or areas, GPS and the +introduction of map reading and exploration. ]] +local URL = "https://sos.noaa.gov/catalog/datasets/latitude-longitude-layers/" + + +local syncedDirectory = asset.syncedResource({ + Name = Name, + Type = "HttpSynchronization", + Identifier = Identifier, + Version = 1 +}) + +local layer_base = { + Identifier = Identifier, + Name = Name, + FilePath = syncedDirectory .. "2048-base.png", + Description = Description +} + +local layer_combined = { + Identifier = Identifier .. "-combined", + Name = Name .. " (Combined)", + FilePath = syncedDirectory .. "2048-flat-combined.png", + Description = Description +} + +local layer_latitude = { + Identifier = Identifier .. "-latitude", + Name = Name .. " (Latitude)", + FilePath = syncedDirectory .. "2048-layer-latitude.png", + Description = Description +} + +local layer_longitude = { + Identifier = Identifier .. "-longitude", + Name = Name .. " (Longitude)", + FilePath = syncedDirectory .. "2048-layer-longitude.png", + Description = Description +} + +asset.onInitialize(function() + openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer_base) + openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer_combined) + openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer_latitude) + openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer_longitude) +end) + +asset.onDeinitialize(function() + openspace.globebrowsing.deleteLayer(globeIdentifier, "ColorLayers", layer_base) + openspace.globebrowsing.deleteLayer(globeIdentifier, "ColorLayers", layer_combined) + openspace.globebrowsing.deleteLayer(globeIdentifier, "ColorLayers", layer_latitude) + openspace.globebrowsing.deleteLayer(globeIdentifier, "ColorLayers", layer_longitude) +end) + +asset.export(layer_base) +asset.export(layer_combined) +asset.export(layer_latitude) +asset.export(layer_longitude) + + +asset.meta = { + Name = Name, + Version = "1.0", + Description = Description .. "Data provided by the National Oceanic and Atmospheric Administration.", + Author = "National Oceanic and Atmospheric Administration", + URL = URL, + License = "https://sos.noaa.gov/copyright/" +} diff --git a/data/assets/scene/solarsystem/planets/earth/noaa-sos/land/magnetic_declination.asset b/data/assets/scene/solarsystem/planets/earth/noaa-sos/land/magnetic_declination.asset new file mode 100644 index 0000000000..1fc9ff9c66 --- /dev/null +++ b/data/assets/scene/solarsystem/planets/earth/noaa-sos/land/magnetic_declination.asset @@ -0,0 +1,69 @@ +local globeIdentifier = asset.require("../../earth").Earth.Identifier + + +local Name = "Earth's Magnetic Declination" +local Identifier = "noaa-sos-land-magnetic_declination" +local Description = [[ Earth is like a giant magnet with a North and South Pole. However, +the magnetic North and South Pole are not aligned with the Geographic North and South +Pole. The Geographic North Pole is defined by the latitude 90° N and is the axis of the +Earth's rotation. The Magnetic North Pole is where the Earth's magnetic field points +vertically downward. The Earth creates its own magnetic field from the electric currents +created in the liquid iron-nickel core. ]] +local URL = "https://sos.noaa.gov/catalog/datasets/earths-magnetic-declination/" + + +local syncedDirectory = asset.syncedResource({ + Name = Name, + Type = "HttpSynchronization", + Identifier = Identifier, + Version = 1 +}) + +local imagesDestination = syncedDirectory .. "images" + +local layer = { + Identifier = Identifier, + Name = Name, + Type = "TemporalTileLayer", + Mode = "Folder", + Folder = { + Folder = imagesDestination, + -- @TODO: This dataset is not using equirectangular projection, so it will look + -- strange on the planet right now + + -- See https://en.cppreference.com/w/cpp/io/manip/get_time for an explanation of the + -- time formatting string + Format = "%Y.png" + }, + Description = Description +} + +asset.onInitialize(function() + openspace.printWarning( + "The 'Magnetic Declination' map currently has an unsupported projection and thus " .. + "will look strange when projected onto the spherical Earth" + ) + + if not openspace.directoryExists(imagesDestination) then + openspace.printInfo("Extracting " .. Name) + openspace.unzipFile(syncedDirectory .. "4096.zip", imagesDestination, true) + end + + openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer) +end) + +asset.onDeinitialize(function() + openspace.globebrowsing.deleteLayer(globeIdentifier, "ColorLayers", layer) +end) + +asset.export(layer) + + +asset.meta = { + Name = Name, + Version = "1.0", + Description = Description .. "Data provided by the National Oceanic and Atmospheric Administration.", + Author = "National Oceanic and Atmospheric Administration", + URL = URL, + License = "https://sos.noaa.gov/copyright/" +} diff --git a/data/assets/scene/solarsystem/planets/earth/noaa-sos/land/nightsky.asset b/data/assets/scene/solarsystem/planets/earth/noaa-sos/land/nightsky.asset new file mode 100644 index 0000000000..de70f1fb0a --- /dev/null +++ b/data/assets/scene/solarsystem/planets/earth/noaa-sos/land/nightsky.asset @@ -0,0 +1,56 @@ +local globeIdentifier = asset.require("../../earth").Earth.Identifier + + +local Name = "Light Pollution - Artificial Sky Brightness" +local Identifier = "noaa-sos-land-nightsky" +local Description = [[ Light pollution in urban centers creates a sky glow that can blot +out the stars. The brighter the area in this map the harder it is to see stars and +constellations in the night sky. ]] +local URL = "https://sos.noaa.gov/catalog/datasets/light-pollution-artificial-sky-brightness/" + + +local syncedDirectory = asset.syncedResource({ + Name = Name, + Type = "HttpSynchronization", + Identifier = Identifier, + Version = 1 +}) + +local layer = { + Identifier = Identifier, + Name = Name, + FilePath = syncedDirectory .. "4096.jpg", + Description = Description +} + +local legend = { + Identifier = Identifier, + Name = Name, + Type = "ScreenSpaceImageLocal", + TexturePath = syncedDirectory .. "nightsky_lights_legend.jpg", + FaceCamera = false, + CartesianPosition = { 0.75, 0.0, -2.0 } +} + +asset.onInitialize(function() + openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer) + openspace.addScreenSpaceRenderable(legend); +end) + +asset.onDeinitialize(function() + openspace.globebrowsing.deleteLayer(globeIdentifier, "ColorLayers", layer) + openspace.removeScreenSpaceRenderable(legend) +end) + +asset.export(layer) +asset.export(legend) + + +asset.meta = { + Name = Name, + Version = "1.0", + Description = Description .. "Data provided by the National Oceanic and Atmospheric Administration.", + Author = "National Oceanic and Atmospheric Administration", + URL = URL, + License = "https://sos.noaa.gov/copyright/" +} diff --git a/data/assets/scene/solarsystem/planets/earth/noaa-sos/land/nuclear_earthquake.asset b/data/assets/scene/solarsystem/planets/earth/noaa-sos/land/nuclear_earthquake.asset new file mode 100644 index 0000000000..1f8cc09835 --- /dev/null +++ b/data/assets/scene/solarsystem/planets/earth/noaa-sos/land/nuclear_earthquake.asset @@ -0,0 +1,106 @@ +local globeIdentifier = asset.require("../../earth").Earth.Identifier + + +local Name = "Earthquakes and Nuclear Power Plants" +local Identifier = "noaa-sos-land-nuclear_earthquake" +local Description = [[ Earthquakes have been occurring on Earth since its formation. They +occur when tectonic plates that are sliding against or past each other build up enough +tension to slip, causing the rock to settle into a new position and the ground to shake. +The United States Geological Survey predicts that 500,000 earthquakes happen every year, +although most go undetected because they are so small or so far away from populated +areas. 10,000 of them can be felt by humans and 100 of them cause damage. Unfortunately, +scientists have not yet discovered a reliably precise way to predict earthquakes, and +there is debate over whether such a thing is even possible. Current prediction methods +involve measuring the tension that has been bled off by past earthquakes and how often +earthquakes have occurred at that location before. Due to the fact that the instruments +that can measure tension and accurate seismographs are a recent invention, earthquake +prediction continues to be inaccurate and imprecise. ]] +local URL = "https://sos.noaa.gov/catalog/datasets/earthquakes-and-nuclear-power-plants/" + + +local syncedDirectory = asset.syncedResource({ + Name = Name, + Type = "HttpSynchronization", + Identifier = Identifier, + Version = 1 +}) + +local imagesDestination = syncedDirectory .. "images" + +local layer_base = { + Identifier = Identifier .. "-base", + Name = Name .. " (Base)", + FilePath = syncedDirectory .. "2048.jpg", + Description = Description +} + +local layer_all = { + Identifier = Identifier .. "-all", + Name = Name .. " (All)", + FilePath = syncedDirectory .. "all_earthquakes.png", + Description = Description +} + +local layer_new = { + Identifier = Identifier .. "-new", + Name = Name .. " (New)", + FilePath = syncedDirectory .. "new.jpg", + Description = Description +} + +local layer_nuclear = { + Identifier = Identifier .. "-nuclear", + Name = Name .. " (Nuclear)", + FilePath = syncedDirectory .. "nuclear_plants.png", + Description = Description +} + +local layer_images = { + Identifier = Identifier .. "-images", + Name = Name .. " (Images)", + Type = "ImageSequenceTileLayer", + FolderPath = imagesDestination, + Description = Description +} + +local legend = { + Identifier = Identifier, + Name = Name, + Type = "ScreenSpaceImageLocal", + TexturePath = syncedDirectory .. "legend.png", + FaceCamera = false, + Scale = 0.175, + CartesianPosition = { 1.0, 0.0, -2.0 } +} + +asset.onInitialize(function() + openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer_base) + openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer_all) + openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer_new) + openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer_nuclear) + openspace.addScreenSpaceRenderable(legend); +end) + +asset.onDeinitialize(function() + openspace.globebrowsing.deleteLayer(globeIdentifier, "ColorLayers", layer_base) + openspace.globebrowsing.deleteLayer(globeIdentifier, "ColorLayers", layer_all) + openspace.globebrowsing.deleteLayer(globeIdentifier, "ColorLayers", layer_new) + openspace.globebrowsing.deleteLayer(globeIdentifier, "ColorLayers", layer_nuclear) + openspace.removeScreenSpaceRenderable(legend) +end) + +asset.export(layer_base) +asset.export(layer_all) +asset.export(layer_new) +asset.export(layer_nuclear) +asset.export(legend) + + +asset.meta = { + Name = Name, + Version = "1.0", + Description = Description .. "Data provided by the National Oceanic and Atmospheric Administration.", + Author = "National Oceanic and Atmospheric Administration", + URL = URL, + License = "https://sos.noaa.gov/copyright/" +} diff --git a/data/assets/scene/solarsystem/planets/earth/noaa-sos/land/paleo_map.asset b/data/assets/scene/solarsystem/planets/earth/noaa-sos/land/paleo_map.asset new file mode 100644 index 0000000000..512eec1107 --- /dev/null +++ b/data/assets/scene/solarsystem/planets/earth/noaa-sos/land/paleo_map.asset @@ -0,0 +1,176 @@ +local globeIdentifier = asset.require("../../earth").Earth.Identifier + + +local Name = "PALEOMAP PaleoAtlas 0 - 750 Million Years Ago" +local Identifier = "noaa-sos-land-paleomap" +local Description = [[ The PALEOMAP PaleoAtlas for GPlates consists of 91 paleogeographic +maps spanning the Phanerozoic and late Neoproterozoic. The PaleoAtlas can be directly +loaded into GPlates as a Time Dependent Raster file. The paleogeographic maps in the +PaleoAtlas illustrate the ancient configuration of the ocean basins and continents, as +well as important topographic and bathymetric features such as mountains, lowlands, +shallow sea, continental shelves, and deep oceans. This tutorial also describes how the +maps in the PaleoAtlas were made, documents the sources of information used to make the +paleogeographic maps, and provides instructions how to plot user-defined paleodata on the +paleogeographic maps using the program PaleoDataPlotter. + +For any questions about the resource, please email: Christopher Scotese ]] +local URL = "https://sos.noaa.gov/catalog/datasets/paleomap-paleoatlas-0-750-million-years-ago/" + + +local syncedDirectory = asset.syncedResource({ + Name = Name, + Type = "HttpSynchronization", + Identifier = Identifier, + Version = 1 +}) + +local imagesDestination = syncedDirectory .. "images" + +local layers_names = { + "Map01a_PALEOMAP_PaleoAtlas_000", + "Map02a_Last_Glacial_Maximum_001", + "Map03a_Pliocene_004", + "Map04a_Messinian_Event_006", + "Map05a_Late_Miocene_010", + "Map06a_Middle_Miocene_015", + "Map07a_Early_Miocene_020", + "Map08a_Late_Oligocene_025", + "Map09a_Early_Oligocene_030", + "Map10a_Late_Eocene_035", + "Map11a_MIddle_Eocene_040", + "Map12a_early_Middle_Eocene_045", + "Map13a_Early_Eocene_050", + "Map14a_PETM_055", + "Map15a_Paleocene_060", + "Map16a_KT_Boundary_066", + "Map17a_LtK_Maastrichtian_070", + "Map18a_LtK_Late_Campanian_075", + "Map19a_LtK_Early_Campanian_080", + "Map21a_LtK_Turonian_090", + "Map22a_LtK_Cenomanian_095", + "Map23a_EK_Late_Albian_100", + "Map24a_EK_Middle_Albian_105", + "Map25a_EK_Early_Albian_110", + "Map26a_EK_Late_Aptian_115", + "Map27a_EK_Early_Albian_120", + "Map28a_EK_Barremian_125", + "Map29a_EK_Hauterivian_130", + "Map30a_EK_Valangian_135", + "Map31a_EK_Berriasian_140", + "Map32a_Jurassic-Cretaceous_Boundary_145", + "Map33a_LtJ_Tithonian_150", + "Map34a_LtJ_Kimmeridgian_155", + "Map35a_LtJ_Oxfordian_160", + "Map36a_MJ_Callovian_165", + "Map37a_MJ_Bajocian&Bathonian_170", + "Map38a_MJ_Aalenian_175", + "Map39a_EJ_Toarcian_180", + "Map40a_EJ_Pliensbachian_185", + "Map41a_EJ_Sinemurian_190", + "Map42a_EJ_Hettangian_195", + "Map43a_Triassic-Jurassic_Boundary_200", + "Map44a_LtTr_Norian_210", + "Map45a_LtTr_Carnian_220", + "Map46a_MTr_Ladinian_230", + "Map47a_MTr_Anisian_240", + "Map48a_ETr_Induan-Olenekian_245", + "Map49a_Permo-Triassic_Boundary_250", + "Map50a_LtP_Lopingian_255", + "Map51a_LtP_Capitanian_260", + "Map52a_MP_Roadian&Wordian_270", + "Map53a_EP_Kungurian_275", + "Map54a_EP_Artinskian_280", + "Map55a_EP_Sakmarian_290", + "Map56a_EP_Asselian_295", + "Map57a_LtCarb_Gzhelian_300", + "Map58a_LtCarb_Kasimovian_305", + "Map59a_LtCarb_Moscovian_310", + "Map60a_LtCarb_Bashkirian_315", + "Map61a_ECarb_Serpukhovian_320", + "Map62a_ECarb_Late_Visean_330", + "Map63a_ECarb_Early_Visean_340", + "Map64a_ECarb_Tournaisian_350", + "Map65a_Devono-Carboniferous_Boundary_360", + "Map66a_LtD_Famennian_370", + "Map67a_LtD_Frasnian_380", + "Map68a_MD_Givetian_390", + "Map69a_MD_Eifelian_395", + "Map70a_ED_Emsian_400", + "Map71a_ED_Pragian_410", + "Map72a_ED_Lochlovian_415", + "Map73a_LtS_Ludlow&Pridoli_420", + "Map74a_MS_Wenlock_425", + "Map75a_ES_late_Llandovery_430", + "Map76a_ES_early_Llandovery_440", + "Map77a_LtO_Hirnantian_445", + "Map78a_LtO_Sandbian-Katian_450", + "Map79a_LtO_Caradoc_460", + "Map80a_LtO_Darwillian_460", + "Map81a_EO_Floian-Dapingian_470", + "Map82a_EO_Tremadoc_480", + "Map83a_Cambro-Ordovician_Boundary_490", + "Map84a_LtC_Furongian_500", + "Map85a_early_Late_Cambrian_Series_3_510", + "Map86a_Middle_Cambrian_Series_2_520", + "Map87a_Early_Cambrian_Terreneuvian_530", + "Map88a_Precambrian-Cambrian_Boundary_540", + "Map90a_Middle_Ediacaran_600", + "Map92a_Late_Cryogenian_690", + "Map93a_MIddle_Cryogenian_750" +} + +local layers = {} +for i,v in ipairs(layers_names) do + local layer = { + Identifier = Identifier .. "-" .. v, + Name = Name .. " " .. v, + FilePath = imagesDestination .. '/' .. v .. ".jpg", + Description = Description + } + + table.insert(layers, layer) +end + +local legend = { + Identifier = Identifier, + Name = Name, + Type = "ScreenSpaceImageLocal", + TexturePath = syncedDirectory .. "legend.jpg", + FaceCamera = false, + Scale = 0.2, + CartesianPosition = { 0.85, 0.0, -2.0 } +} + +asset.onInitialize(function() + if not openspace.directoryExists(imagesDestination) then + openspace.printInfo("Extracting " .. Name) + openspace.unzipFile(syncedDirectory .. "3600.zip", imagesDestination, true) + end + + for i,v in ipairs(layers) do + openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", v) + end + + openspace.addScreenSpaceRenderable(legend); +end) + +asset.onDeinitialize(function() + for i,v in ipairs(layers) do + openspace.globebrowsing.deleteLayer(globeIdentifier, "ColorLayers", v) + end + + openspace.removeScreenSpaceRenderable(legend) +end) + +for _,v in ipairs(layers) do + asset.export(v) +end + +asset.meta = { + Name = Name, + Version = "1.0", + Description = Description .. "Data provided by the National Oceanic and Atmospheric Administration.", + Author = "National Oceanic and Atmospheric Administration", + URL = URL, + License = "https://sos.noaa.gov/copyright/" +} diff --git a/data/assets/scene/solarsystem/planets/earth/noaa-sos/land/paleo_overlays.asset b/data/assets/scene/solarsystem/planets/earth/noaa-sos/land/paleo_overlays.asset new file mode 100644 index 0000000000..0363aa7f41 --- /dev/null +++ b/data/assets/scene/solarsystem/planets/earth/noaa-sos/land/paleo_overlays.asset @@ -0,0 +1,115 @@ +local globeIdentifier = asset.require("../../earth").Earth.Identifier + + +local Name = "Paleoclimate Proxies" +local Identifier = "noaa-sos-land-paleo_overlays" +local Description = [[ Every year, particles eroding from the continents are transported +to the oceans by the wind as dust and by rivers as sands and gravels. Once they get to +the ocean, they mix with billions of tons of dead plankton shells, sink, and settle on +the seafloor. There, they accumulate vertically in layers on top of previous years' +material. Similarly, this year's snow accumulates on top of the previous years' snow at +the polar regions in places like Greenland and Antarctica. Over time, this process forms +new layers of ice. Trees, much the same way, add yearly layers of new cells in concentric +circles just below their bark - called tree rings. And, in many caves around the world, +the strength of the seasonal cycle of a wet monsoon followed by a dry season is recorded +in the chemistry of stalagmites rising up from the cave floor, formed by drips of +mineral-rich water from the roof of the cave. ]] +local URL = "https://sos.noaa.gov/catalog/datasets/paleoclimate-proxies/" + + +local syncedDirectory = asset.syncedResource({ + Name = Name, + Type = "HttpSynchronization", + Identifier = Identifier, + Version = 1 +}) + +local layer_base = { + Identifier = Identifier, + Name = Name, + FilePath = syncedDirectory .. "4096.png", + Description = Description +} + +local layer_corals = { + Identifier = Identifier .. "-corals", + Name = Name .. " (Corals)", + FilePath = syncedDirectory .. "corals.png", + Description = Description +} + +local layer_icerings = { + Identifier = Identifier .. "-icerings", + Name = Name .. " (Icerings)", + FilePath = syncedDirectory .. "icerings.png", + Description = Description +} + +local layer_ocean = { + Identifier = Identifier .. "-ocean", + Name = Name .. " (Ocean)", + FilePath = syncedDirectory .. "ocean.png", + Description = Description +} + +local layer_speleothem = { + Identifier = Identifier .. "-speleothem", + Name = Name .. " (Speleothem)", + FilePath = syncedDirectory .. "speleothem.png", + Description = Description +} + +local layer_tree_rings = { + Identifier = Identifier .. "-tree_rings", + Name = Name .. " (Tree Rings)", + FilePath = syncedDirectory .. "tree_rings.png", + Description = Description +} + +local legend = { + Identifier = Identifier, + Name = Name, + Type = "ScreenSpaceImageLocal", + TexturePath = syncedDirectory .. "legend.jpg", + FaceCamera = false, + Scale = 0.2, + CartesianPosition = { 0.85, 0.0, -2.0 } +} + + +asset.onInitialize(function () + openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer_base) + openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer_corals) + openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer_icerings) + openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer_ocean) + openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer_speleothem) + openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer_tree_rings) + openspace.addScreenSpaceRenderable(legend); +end) + +asset.onDeinitialize(function() + openspace.globebrowsing.deleteLayer(globeIdentifier, "ColorLayers", layer_base) + openspace.globebrowsing.deleteLayer(globeIdentifier, "ColorLayers", layer_corals) + openspace.globebrowsing.deleteLayer(globeIdentifier, "ColorLayers", layer_icerings) + openspace.globebrowsing.deleteLayer(globeIdentifier, "ColorLayers", layer_ocean) + openspace.globebrowsing.deleteLayer(globeIdentifier, "ColorLayers", layer_speleothem) + openspace.globebrowsing.deleteLayer(globeIdentifier, "ColorLayers", layer_tree_rings) + openspace.removeScreenSpaceRenderable(legend) +end) + +asset.export(layer_base) +asset.export(layer_corals) +asset.export(layer_icerings) +asset.export(layer_ocean) +asset.export(layer_speleothem) +asset.export(layer_tree_rings) +asset.export(legend) + +asset.meta = { + Name = Name, + Version = "1.0", + Description = Description .. "Data provided by the National Oceanic and Atmospheric Administration.", + Author = "National Oceanic and Atmospheric Administration", + URL = URL, + License = "https://sos.noaa.gov/copyright/" +} diff --git a/data/assets/scene/solarsystem/planets/earth/noaa-sos/land/pantropical_biomass.asset b/data/assets/scene/solarsystem/planets/earth/noaa-sos/land/pantropical_biomass.asset new file mode 100644 index 0000000000..a8377e6044 --- /dev/null +++ b/data/assets/scene/solarsystem/planets/earth/noaa-sos/land/pantropical_biomass.asset @@ -0,0 +1,59 @@ +local globeIdentifier = asset.require("../../earth").Earth.Identifier + + +local Name = "Land Cover: Woody Biomass in Pan-tropics" +local Identifier = "noaa-sos-land-pantropical_biomass" +local Description = [[ Tropical deforestation and forest degradation account for an +estimated 20% of the world's anthropogenic emissions of carbon dioxide, a significant +greenhouse gas contributor. Despite the important services that tropical forests provide, +there is incomplete data and knowledge of their condition and coverage, and thus no +accurate baseline for evaluating and monitoring future changes. ]] +local URL = "https://sos.noaa.gov/catalog/datasets/land-cover-woody-biomass-in-pan-tropics/" + + +local syncedDirectory = asset.syncedResource({ + Name = Name, + Type = "HttpSynchronization", + Identifier = Identifier, + Version = 1 +}) + +local layer = { + Identifier = Identifier, + Name = Name, + FilePath = syncedDirectory .. "4096.jpg", + Description = Description +} + +local legend = { + Identifier = Identifier, + Name = Name, + Type = "ScreenSpaceImageLocal", + TexturePath = syncedDirectory .. "legend.jpg", + FaceCamera = false, + CartesianPosition = { 0.0, -0.5, -2.0 } +} + + +asset.onInitialize(function () + openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer) + openspace.addScreenSpaceRenderable(legend); +end) + +asset.onDeinitialize(function() + openspace.globebrowsing.deleteLayer(globeIdentifier, "ColorLayers", layer) + openspace.removeScreenSpaceRenderable(legend) +end) + +asset.export(layer) +asset.export(legend) + + +asset.meta = { + Name = Name, + Version = "1.0", + Description = Description .. "Data provided by the National Oceanic and Atmospheric Administration.", + Author = "National Oceanic and Atmospheric Administration", + URL = URL, + License = "https://sos.noaa.gov/copyright/" +} diff --git a/data/assets/scene/solarsystem/planets/earth/noaa-sos/land/plate_movement.asset b/data/assets/scene/solarsystem/planets/earth/noaa-sos/land/plate_movement.asset new file mode 100644 index 0000000000..e83fe28b8c --- /dev/null +++ b/data/assets/scene/solarsystem/planets/earth/noaa-sos/land/plate_movement.asset @@ -0,0 +1,77 @@ +local globeIdentifier = asset.require("../../earth").Earth.Identifier + + +local Name = "Plate Movement - 200 Million Years Ago to Today" +local Identifier = "noaa-sos-land-plate_movement" +local Description = [[ Our planet's surface has been shaped and re-shaped by plate +tectonics through cycles of supercontinent amalgamation and breakup. We can study the +motion of the tectonic plates, and the continents that they carry, by measuring the +magnetic signatures recorded in rocks that form the seafloor. As plates move apart at mid +oceanic ridges (also known as seafloor spreading centers), lava from the Earth's mantle +fills the void that is being created and solidifies as basalt, which can capture the +magnetic polarity of the planet at the time. As the magnetic polarity reverses +irregularly over time, we can use this barcode pattern to determine the age of the +oceanic crust across all the world's oceans. Teams of geologists, geophysicists and +marine scientists use ocean-going scientific vessels to criss-cross the oceans in order +to reveal the entire "barcode" of seafloor spreading histories. This data enables the +creation of "plate tectonic reconstructions" where the seafloor spreading history can be +unwound to restore the past position of continents as they are pushed and pulled by the +motion of the oceanic plates. ]] +local URL = "https://sos.noaa.gov/catalog/datasets/plate-movement-200-million-years-ago-to-today/" + + +local syncedDirectory = asset.syncedResource({ + Name = Name, + Type = "HttpSynchronization", + Identifier = Identifier, + Version = 1 +}) + +local imagesDestination = syncedDirectory .. "images" + +local layer = { + Identifier = Identifier, + Name = Name, + Type = "ImageSequenceTileLayer", + FolderPath = imagesDestination, + Description = Description +} + +local age_scale = { + Identifier = Identifier, + Name = Name, + Type = "ScreenSpaceImageLocal", + TexturePath = syncedDirectory .. "age_scale.png", + FaceCamera = false, + Scale = 0.35, + CartesianPosition = { 0.0, -0.5, -2.0 } +} + + +asset.onInitialize(function () + if not openspace.directoryExists(imagesDestination) then + openspace.printInfo("Extracting " .. Name) + openspace.unzipFile(syncedDirectory .. "4096.zip", imagesDestination, true) + end + + openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer) + openspace.addScreenSpaceRenderable(age_scale); +end) + +asset.onDeinitialize(function() + openspace.globebrowsing.deleteLayer(globeIdentifier, "ColorLayers", layer) + openspace.removeScreenSpaceRenderable(age_scale) +end) + +asset.export(layer) +asset.export(age_scale) + + +asset.meta = { + Name = Name, + Version = "1.0", + Description = Description .. "Data provided by the National Oceanic and Atmospheric Administration.", + Author = "National Oceanic and Atmospheric Administration", + URL = URL, + License = "https://sos.noaa.gov/copyright/" +} diff --git a/data/assets/scene/solarsystem/planets/earth/noaa-sos/land/river_discharge_2010.asset b/data/assets/scene/solarsystem/planets/earth/noaa-sos/land/river_discharge_2010.asset new file mode 100644 index 0000000000..79aabfd15a --- /dev/null +++ b/data/assets/scene/solarsystem/planets/earth/noaa-sos/land/river_discharge_2010.asset @@ -0,0 +1,67 @@ +local globeIdentifier = asset.require("../../earth").Earth.Identifier + + +local Name = "Rivers: Daily Discharge - 2010" +local Identifier = "noaa-sos-land-river_discharge_2010" +local Description = [[ This dataset illustrates hydrological conditions worldwide for the +year 2010. The data originates from a computational model, the Water Balance Model (WBM). +WBM takes daily rainfall and temperature data, maps of vegetation, land-use, irrigation +and soil properties, and then calculates the hydrological balance for each of its grid +cells. ]] +local URL = "https://sos.noaa.gov/catalog/datasets/rivers-daily-discharge-2010/" + + +local syncedDirectory = asset.syncedResource({ + Name = Name, + Type = "HttpSynchronization", + Identifier = Identifier, + Version = 1 +}) + +local imagesDestination = syncedDirectory .. "images" + +local layer = { + Identifier = Identifier, + Name = Name, + Type = "ImageSequenceTileLayer", + FolderPath = imagesDestination, + Description = Description +} + +local colorbar = { + Identifier = Identifier, + Name = Name, + Type = "ScreenSpaceImageLocal", + TexturePath = syncedDirectory .. "colorbar-2010.png", + FaceCamera = false, + CartesianPosition = { 0.0, -0.5, -2.0 } +} + + +asset.onInitialize(function () + if not openspace.directoryExists(imagesDestination) then + openspace.printInfo("Extracting " .. Name) + openspace.unzipFile(syncedDirectory .. "4096.zip", imagesDestination, true) + end + + openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer) + openspace.addScreenSpaceRenderable(colorbar); +end) + +asset.onDeinitialize(function() + openspace.globebrowsing.deleteLayer(globeIdentifier, "ColorLayers", layer) + openspace.removeScreenSpaceRenderable(colorbar) +end) + +asset.export(layer) +asset.export(colorbar) + + +asset.meta = { + Name = Name, + Version = "1.0", + Description = Description .. "Data provided by the National Oceanic and Atmospheric Administration.", + Author = "National Oceanic and Atmospheric Administration", + URL = URL, + License = "https://sos.noaa.gov/copyright/" +} diff --git a/data/assets/scene/solarsystem/planets/earth/noaa-sos/land/sea_floor_age-iso_lines_yellow.asset b/data/assets/scene/solarsystem/planets/earth/noaa-sos/land/sea_floor_age-iso_lines_yellow.asset new file mode 100644 index 0000000000..e32ccf1960 --- /dev/null +++ b/data/assets/scene/solarsystem/planets/earth/noaa-sos/land/sea_floor_age-iso_lines_yellow.asset @@ -0,0 +1,66 @@ +local globeIdentifier = asset.require("../../earth").Earth.Identifier + + +local Name = "Age of the Seafloor Contour Lines" +local Identifier = "noaa-sos-land-sea_floor_age-iso_lines_yellow" +local Description = [[ The surface of the Earth is composed of a mosaic tectonic plates +moving with respect to each other. The Earth is made of seven major plates and several +smaller plates. As the plates move, new sea floor can be created. The plates form three +different kinds of boundaries: convergent, divergent, and transform. Convergent +boundaries are also called collision boundaries because they are areas where two plates +collide. At transform boundaries, the plates slide and grind past one another. The +divergent boundaries are the areas where plates are moving apart from one another. Where +plates move apart, new crustal material is formed from molten magma from below the +Earth's surface. Because of this, the youngest sea floor can be found along divergent +boundaries, such as the Mid-Atlantic Ocean Ridge. The spreading, however, is generally +not uniform causing linear features perpendicular to the divergent boundaries. ]] +local URL = "https://sos.noaa.gov/catalog/datasets/age-of-the-seafloor-contour-lines/" + + +local syncedDirectory = asset.syncedResource({ + Name = Name, + Type = "HttpSynchronization", + Identifier = Identifier, + Version = 1 +}) + +local layer = { + Identifier = Identifier, + Name = Name, + FilePath = syncedDirectory .. "4096.png", + Description = Description +} + +local colorbar = { + Identifier = Identifier, + Name = Name, + Type = "ScreenSpaceImageLocal", + TexturePath = syncedDirectory .. "colorbar.png", + FaceCamera = false, + Scale = 0.2, + CartesianPosition = { 0.0, -0.5, -2.0 } +} + + +asset.onInitialize(function () + openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer) + openspace.addScreenSpaceRenderable(colorbar); +end) + +asset.onDeinitialize(function() + openspace.globebrowsing.deleteLayer(globeIdentifier, "ColorLayers", layer) + openspace.removeScreenSpaceRenderable(colorbar) +end) + +asset.export(layer) +asset.export(colorbar) + + +asset.meta = { + Name = Name, + Version = "1.0", + Description = Description .. "Data provided by the National Oceanic and Atmospheric Administration.", + Author = "National Oceanic and Atmospheric Administration", + URL = URL, + License = "https://sos.noaa.gov/copyright/" +} diff --git a/data/assets/scene/solarsystem/planets/earth/noaa-sos/land/sea_floor_age-shaded_veg.asset b/data/assets/scene/solarsystem/planets/earth/noaa-sos/land/sea_floor_age-shaded_veg.asset new file mode 100644 index 0000000000..e7d898eec3 --- /dev/null +++ b/data/assets/scene/solarsystem/planets/earth/noaa-sos/land/sea_floor_age-shaded_veg.asset @@ -0,0 +1,96 @@ +local globeIdentifier = asset.require("../../earth").Earth.Identifier + + +local Name = "Age of the Seafloor (vegetation)" +local Identifier = "noaa-sos-land-sea_floor_age-shaded_veg" +local Description = [[ The surface of the Earth is composed of a mosaic tectonic plates +moving with respect to each other. The Earth is made of seven major plates and several +smaller plates. As the plates move, new sea floor can be created. The plates form three +different kinds of boundaries: convergent, divergent, and transform. Convergent +boundaries are also called collision boundaries because they are areas where two plates +collide. At transform boundaries, the plates slide and grind past one another. The +divergent boundaries are the areas where plates are moving apart from one another. Where +plates move apart, new crustal material is formed from molten magma from below the +Earth's surface. Because of this, the youngest sea floor can be found along divergent +boundaries, such as the Mid-Atlantic Ocean Ridge. The spreading, however, is generally +not uniform causing linear features perpendicular to the divergent boundaries. ]] +local URL = "https://sos.noaa.gov/catalog/datasets/age-of-the-seafloor-vegetation/" + + +local syncedDirectory = asset.syncedResource({ + Name = Name, + Type = "HttpSynchronization", + Identifier = Identifier, + Version = 1 +}) + +local layer_base = { + Identifier = Identifier, + Name = Name, + FilePath = syncedDirectory .. "4096.png", + Description = Description +} + +local layer_aol = { + Identifier = Identifier .. "-aol", + Name = Name .. " (AOL)", + FilePath = syncedDirectory .. "4096_aol.png", + Description = Description +} + +local layer_no_labels = { + Identifier = Identifier .. "-no_labels", + Name = Name .. " (No Labels)", + FilePath = syncedDirectory .. "4096_nolabels.jpg", + Description = Description +} + +local layer_trans = { + Identifier = Identifier .. "-trans", + Name = Name .. " (Trans)", + FilePath = syncedDirectory .. "4096_trans.png", + Description = Description +} + +local colorbar = { + Identifier = Identifier, + Name = Name, + Type = "ScreenSpaceImageLocal", + TexturePath = syncedDirectory .. "colorbar.png", + FaceCamera = false, + BackgroundColor = { 1.0, 1.0, 1.0, 1.0 }, + CartesianPosition = { 0.0, -0.5, -2.0 } +} + + +asset.onInitialize(function () + openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer_base) + openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer_aol) + openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer_no_labels) + openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer_trans) + openspace.addScreenSpaceRenderable(colorbar); +end) + +asset.onDeinitialize(function() + openspace.globebrowsing.deleteLayer(globeIdentifier, "ColorLayers", layer_base) + openspace.globebrowsing.deleteLayer(globeIdentifier, "ColorLayers", layer_aol) + openspace.globebrowsing.deleteLayer(globeIdentifier, "ColorLayers", layer_no_labels) + openspace.globebrowsing.deleteLayer(globeIdentifier, "ColorLayers", layer_trans) + openspace.removeScreenSpaceRenderable(colorbar) +end) + +asset.export(layer_base) +asset.export(layer_aol) +asset.export(layer_no_labels) +asset.export(layer_trans) +asset.export(colorbar) + + +asset.meta = { + Name = Name, + Version = "1.0", + Description = Description .. "Data provided by the National Oceanic and Atmospheric Administration.", + Author = "National Oceanic and Atmospheric Administration", + URL = URL, + License = "https://sos.noaa.gov/copyright/" +} diff --git a/data/assets/scene/solarsystem/planets/earth/noaa-sos/land/sea_floor_age-topo.asset b/data/assets/scene/solarsystem/planets/earth/noaa-sos/land/sea_floor_age-topo.asset new file mode 100644 index 0000000000..75f4479bfe --- /dev/null +++ b/data/assets/scene/solarsystem/planets/earth/noaa-sos/land/sea_floor_age-topo.asset @@ -0,0 +1,86 @@ +local globeIdentifier = asset.require("../../earth").Earth.Identifier + + +local Name = "Age of the Seafloor (topography)" +local Identifier = "noaa-sos-land-sea_floor_age-topo" +local Description = [[ The surface of the Earth is composed of a mosaic tectonic plates +moving with respect to each other. The Earth is made of seven major plates and several +smaller plates. As the plates move, new sea floor can be created. The plates form three +different kinds of boundaries: convergent, divergent, and transform. Convergent +boundaries are also called collision boundaries because they are areas where two plates +collide. At transform boundaries, the plates slide and grind past one another. The +divergent boundaries are the areas where plates are moving apart from one another. Where +plates move apart, new crustal material is formed from molten magma from below the +Earth's surface. Because of this, the youngest sea floor can be found along divergent +boundaries, such as the Mid-Atlantic Ocean Ridge. The spreading, however, is generally +not uniform causing linear features perpendicular to the divergent boundaries. ]] +local URL = "https://sos.noaa.gov/catalog/datasets/age-of-the-seafloor-topography/" + + +local syncedDirectory = asset.syncedResource({ + Name = Name, + Type = "HttpSynchronization", + Identifier = Identifier, + Version = 1 +}) + +local layer_base = { + Identifier = Identifier, + Name = Name, + FilePath = syncedDirectory .. "4096.png", + Description = Description +} + +local layer_aol = { + Identifier = Identifier .. "-aol", + Name = Name .. " (AOL)", + FilePath = syncedDirectory .. "4096_aol.png", + Description = Description +} + +local layer_orig = { + Identifier = Identifier .. "-orig", + Name = Name .. " (Original)", + FilePath = syncedDirectory .. "4096_orig.png", + Description = Description +} + +local colorbar = { + Identifier = Identifier, + Name = Name, + Type = "ScreenSpaceImageLocal", + TexturePath = syncedDirectory .. "colorbar.png", + FaceCamera = false, + BackgroundColor = { 1.0, 1.0, 1.0, 1.0 }, + CartesianPosition = { 0.0, -0.5, -2.0 } +} + + +asset.onInitialize(function () + openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer_base) + openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer_aol) + openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer_orig) + openspace.addScreenSpaceRenderable(colorbar); +end) + +asset.onDeinitialize(function() + openspace.globebrowsing.deleteLayer(globeIdentifier, "ColorLayers", layer_base) + openspace.globebrowsing.deleteLayer(globeIdentifier, "ColorLayers", layer_aol) + openspace.globebrowsing.deleteLayer(globeIdentifier, "ColorLayers", layer_orig) + openspace.removeScreenSpaceRenderable(colorbar) +end) + +asset.export(layer_base) +asset.export(layer_aol) +asset.export(layer_orig) +asset.export(colorbar) + + +asset.meta = { + Name = Name, + Version = "1.0", + Description = Description .. "Data provided by the National Oceanic and Atmospheric Administration.", + Author = "National Oceanic and Atmospheric Administration", + URL = URL, + License = "https://sos.noaa.gov/copyright/" +} diff --git a/data/assets/scene/solarsystem/planets/earth/noaa-sos/land/seismic_waves-1994northridge.asset b/data/assets/scene/solarsystem/planets/earth/noaa-sos/land/seismic_waves-1994northridge.asset new file mode 100644 index 0000000000..9921ef04ef --- /dev/null +++ b/data/assets/scene/solarsystem/planets/earth/noaa-sos/land/seismic_waves-1994northridge.asset @@ -0,0 +1,97 @@ +local globeIdentifier = asset.require("../../earth").Earth.Identifier + + +local Name = "Seismic Waves: Northridge Earthquake - 1994" +local Identifier = "noaa-sos-land-seismic_waves-1994northride" +local Description = [[ At 4:30 a.m. on January 17, 1994, the shaking of an earthquake +awakened 10 million people in the Los Angeles region of Southern California. The +earthquake's epicenter was in Northridge, CA, and it was a magnitude 6.7 shock that +proved to be the most costly earthquake in United States history. The shaking heavily +damaged communities throughout the San Fernando Valley and Simi Valley, and the +surrounding mountains north and west of Los Angeles, causing estimated losses of $20 +billion. Fifty-seven people died, more than 9,000 were injured, and more than 20,000 were +displaced from their homes by the effects of the quake. ]] +local URL = "https://sos.noaa.gov/catalog/datasets/seismic-waves-northridge-earthquake-1994/" + + +local syncedDirectory = asset.syncedResource({ + Name = Name, + Type = "HttpSynchronization", + Identifier = Identifier, + Version = 1 +}) + +local imagesDestination = syncedDirectory .. "images" +local pipsDestination = syncedDirectory .. "pips" + +local layer_base = { + Identifier = Identifier, + Name = Name, + FilePath = syncedDirectory .. "background.jpg", + Description = Description +} + +local layer_stations = { + Identifier = Identifier .. "-stations", + Name = Name .. " (Stations)", + FilePath = syncedDirectory .. "station_names.png", + Description = Description +} + +local layer_images = { + Identifier = Identifier .. "-images", + Name = Name .. " (Images)", + Type = "ImageSequenceTileLayer", + FolderPath = imagesDestination, + Description = Description +} + +local pips = { + Identifier = Identifier, + Name = Name, + Type = "ScreenSpaceImageLocal", + -- @TODO: We need a temporal provider for ScreenSpaceImages to handle this + TexturePath = pipsDestination .. "/0002.png", + Enabled = false, + FaceCamera = false, + CartesianPosition = { 0.75, 0.0, -2.0 } +} + +asset.onInitialize(function () + if not openspace.directoryExists(imagesDestination) then + openspace.printInfo("Extracting " .. Name .. " Images") + openspace.unzipFile(syncedDirectory .. "2048.zip", imagesDestination, true) + end + + if not openspace.directoryExists(pipsDestination) then + openspace.printInfo("Extracting " .. Name .. " Pips") + openspace.unzipFile(syncedDirectory .. "pips.zip", pipsDestination, true) + end + + openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer_base) + openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer_stations) + openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer_images) + openspace.addScreenSpaceRenderable(pips); +end) + +asset.onDeinitialize(function() + openspace.globebrowsing.deleteLayer(globeIdentifier, "ColorLayers", layer_base) + openspace.globebrowsing.deleteLayer(globeIdentifier, "ColorLayers", layer_stations) + openspace.globebrowsing.deleteLayer(globeIdentifier, "ColorLayers", layer_images) + openspace.removeScreenSpaceRenderable(pips) +end) + +asset.export(layer_base) +asset.export(layer_stations) +asset.export(layer_images) +asset.export(pips) + + +asset.meta = { + Name = Name, + Version = "1.0", + Description = Description .. "Data provided by the National Oceanic and Atmospheric Administration.", + Author = "National Oceanic and Atmospheric Administration", + URL = URL, + License = "https://sos.noaa.gov/copyright/" +} diff --git a/data/assets/scene/solarsystem/planets/earth/noaa-sos/land/species_richness-amphibians.asset b/data/assets/scene/solarsystem/planets/earth/noaa-sos/land/species_richness-amphibians.asset new file mode 100644 index 0000000000..59bf949089 --- /dev/null +++ b/data/assets/scene/solarsystem/planets/earth/noaa-sos/land/species_richness-amphibians.asset @@ -0,0 +1,71 @@ +local globeIdentifier = asset.require("../../earth").Earth.Identifier + + +local Name = "Species Richness - Amphibians" +local Identifier = "noaa-sos-land-species_richness-amphibians" +local Description = [[ Understanding the biodiversity of our planet is critical for +developing conservation strategies. This series of datasets shows the biodiversity of +birds, mammals, and amphibians. Said simply, these maps show how many kinds of birds or +mammals or amphibians live in each area around the world. These maps look at just the +animals on land and don't include any marine animals. Also included are corresponding +maps of where the threatened species live, the ones at greatest risk of extinction. +Knowing where these threatened species live can help direct conservation efforts to +ensure that the places with the most vulnerable species are being protected. ]] +local URL = "https://sos.noaa.gov/catalog/datasets/species-richness-amphibians/" + + +local syncedDirectory = asset.syncedResource({ + Name = Name, + Type = "HttpSynchronization", + Identifier = Identifier, + Version = 1 +}) + +local layer_8192 = { + Identifier = Identifier , + Name = Name, + FilePath = syncedDirectory .. "8192.png", + Description = Description +} + +local layer_with_background = { + Identifier = Identifier .. "-background", + Name = Name .. " (Background)", + FilePath = syncedDirectory .. "4096-background.png", + Description = Description +} + +local labels = { + Identifier = Identifier, + Name = Name, + Type = "ScreenSpaceImageLocal", + TexturePath = syncedDirectory .. "labels.png", + FaceCamera = false, + CartesianPosition = { 0.0, -0.5, -2.0 } +} + +asset.onInitialize(function () + openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer_8192) + openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer_with_background) + openspace.addScreenSpaceRenderable(labels); +end) + +asset.onDeinitialize(function() + openspace.globebrowsing.deleteLayer(globeIdentifier, "ColorLayers", layer_8192) + openspace.globebrowsing.deleteLayer(globeIdentifier, "ColorLayers", layer_with_background) + openspace.removeScreenSpaceRenderable(labels); +end) + +asset.export(layer_8192) +asset.export(layer_with_background) +asset.export(labels) + + +asset.meta = { + Name = Name, + Version = "1.0", + Description = Description .. "Data provided by the National Oceanic and Atmospheric Administration.", + Author = "National Oceanic and Atmospheric Administration", + URL = URL, + License = "https://sos.noaa.gov/copyright/" +} diff --git a/data/assets/scene/solarsystem/planets/earth/noaa-sos/land/species_richness-amphibians_threatened.asset b/data/assets/scene/solarsystem/planets/earth/noaa-sos/land/species_richness-amphibians_threatened.asset new file mode 100644 index 0000000000..b077c9c8d8 --- /dev/null +++ b/data/assets/scene/solarsystem/planets/earth/noaa-sos/land/species_richness-amphibians_threatened.asset @@ -0,0 +1,72 @@ +local globeIdentifier = asset.require("../../earth").Earth.Identifier + + +local Name = "Species Richness - Amphibians Threatened" +local Identifier = "noaa-sos-land-species_richness-amphibians_threatened" +local Description = [[ Understanding the biodiversity of our planet is critical for +developing conservation strategies. This series of datasets shows the biodiversity of +birds, mammals, and amphibians. Said simply, these maps show how many kinds of birds or +mammals or amphibians live in each area around the world. These maps look at just the +animals on land and don't include any marine animals. Also included are corresponding +maps of where the threatened species live, the ones at greatest risk of extinction. +Knowing where these threatened species live can help direct conservation efforts to +ensure that the places with the most vulnerable species are being protected. ]] +local URL = "https://sos.noaa.gov/catalog/datasets/species-richness-amphibians-threatened/" + + +local syncedDirectory = asset.syncedResource({ + Name = Name, + Type = "HttpSynchronization", + Identifier = Identifier, + Version = 1 +}) + +local layer_4096 = { + Identifier = Identifier, + Name = Name, + FilePath = syncedDirectory .. "4096.png", + Description = Description +} + +local layer_with_background = { + Identifier = Identifier .. "-background", + Name = Name, + FilePath = syncedDirectory .. "4096-background.png", + Description = Description +} + +local labels = { + Identifier = Identifier, + Name = Name, + Type = "ScreenSpaceImageLocal", + TexturePath = syncedDirectory .. "labels.png", + FaceCamera = false, + CartesianPosition = { 0.0, -0.5, -2.0 } +} + + +asset.onInitialize(function () + openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer_4096) + openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer_with_background) + openspace.addScreenSpaceRenderable(labels); +end) + +asset.onDeinitialize(function() + openspace.globebrowsing.deleteLayer(globeIdentifier, "ColorLayers", layer_4096) + openspace.globebrowsing.deleteLayer(globeIdentifier, "ColorLayers", layer_with_background) + openspace.removeScreenSpaceRenderable(labels); +end) + +asset.export(layer_4096) +asset.export(layer_with_background) +asset.export(labels) + + +asset.meta = { + Name = Name, + Version = "1.0", + Description = Description .. "Data provided by the National Oceanic and Atmospheric Administration.", + Author = "National Oceanic and Atmospheric Administration", + URL = URL, + License = "https://sos.noaa.gov/copyright/" +} diff --git a/data/assets/scene/solarsystem/planets/earth/noaa-sos/land/species_richness-birds.asset b/data/assets/scene/solarsystem/planets/earth/noaa-sos/land/species_richness-birds.asset new file mode 100644 index 0000000000..b14b04f016 --- /dev/null +++ b/data/assets/scene/solarsystem/planets/earth/noaa-sos/land/species_richness-birds.asset @@ -0,0 +1,71 @@ +local globeIdentifier = asset.require("../../earth").Earth.Identifier + + +local Name = "Species Richness - Birds" +local Identifier = "noaa-sos-land-species_richness-birds" +local Description = [[ Understanding the biodiversity of our planet is critical for +developing conservation strategies. This series of datasets shows the biodiversity of +birds, mammals, and amphibians. Said simply, these maps show how many kinds of birds or +mammals or amphibians live in each area around the world. These maps look at just the +animals on land and don't include any marine animals. Also included are corresponding +maps of where the threatened species live, the ones at greatest risk of extinction. +Knowing where these threatened species live can help direct conservation efforts to +ensure that the places with the most vulnerable species are being protected. ]] +local URL = "https://sos.noaa.gov/catalog/datasets/species-richness-birds/" + + +local syncedDirectory = asset.syncedResource({ + Name = Name, + Type = "HttpSynchronization", + Identifier = Identifier, + Version = 1 +}) + +local layer_8192 = { + Identifier = Identifier, + Name = Name, + FilePath = syncedDirectory .. "8192.png", + Description = Description +} + +local layer_with_background = { + Identifier = Identifier .. "-background", + Name = Name .. " (w/ Background)", + FilePath = syncedDirectory .. "4096-background.png", + Description = Description +} + +local labels = { + Identifier = Identifier, + Name = Name, + Type = "ScreenSpaceImageLocal", + TexturePath = syncedDirectory .. "labels.png", + FaceCamera = false, + CartesianPosition = { 0.0, -0.5, -2.0 } +} + +asset.onInitialize(function () + openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer_8192) + openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer_with_background) + openspace.addScreenSpaceRenderable(labels); +end) + +asset.onDeinitialize(function() + openspace.globebrowsing.deleteLayer(globeIdentifier, "ColorLayers", layer_8192) + openspace.globebrowsing.deleteLayer(globeIdentifier, "ColorLayers", layer_with_background) + openspace.removeScreenSpaceRenderable(labels); +end) + +asset.export(layer_8192) +asset.export(layer_with_background) +asset.export(labels) + + +asset.meta = { + Name = Name, + Version = "1.0", + Description = Description .. "Data provided by the National Oceanic and Atmospheric Administration.", + Author = "National Oceanic and Atmospheric Administration", + URL = URL, + License = "https://sos.noaa.gov/copyright/" +} diff --git a/data/assets/scene/solarsystem/planets/earth/noaa-sos/land/species_richness-birds_threatened.asset b/data/assets/scene/solarsystem/planets/earth/noaa-sos/land/species_richness-birds_threatened.asset new file mode 100644 index 0000000000..06c649d640 --- /dev/null +++ b/data/assets/scene/solarsystem/planets/earth/noaa-sos/land/species_richness-birds_threatened.asset @@ -0,0 +1,72 @@ +local globeIdentifier = asset.require("../../earth").Earth.Identifier + + +local Name = "Species Richness - Birds Threatened" +local Identifier = "noaa-sos-land-species_richness-birds_threatened" +local Description = [[ Understanding the biodiversity of our planet is critical for +developing conservation strategies. This series of datasets shows the biodiversity of +birds, mammals, and amphibians. Said simply, these maps show how many kinds of birds or +mammals or amphibians live in each area around the world. These maps look at just the +animals on land and don't include any marine animals. Also included are corresponding +maps of where the threatened species live, the ones at greatest risk of extinction. +Knowing where these threatened species live can help direct conservation efforts to +ensure that the places with the most vulnerable species are being protected. ]] +local URL = "https://sos.noaa.gov/catalog/datasets/species-richness-birds-threatened/" + + +local syncedDirectory = asset.syncedResource({ + Name = Name, + Type = "HttpSynchronization", + Identifier = Identifier, + Version = 1 +}) + +local layer_4096 = { + Identifier = Identifier, + Name = Name, + FilePath = syncedDirectory .. "4096.png", + Description = Description +} + +local layer_with_background = { + Identifier = Identifier .. "-background", + Name = Name .. " (w/ Background)", + FilePath = syncedDirectory .. "4096-background.png", + Description = Description +} + +local labels = { + Identifier = Identifier, + Name = Name, + Type = "ScreenSpaceImageLocal", + TexturePath = syncedDirectory .. "labels.png", + FaceCamera = false, + CartesianPosition = { 0.0, -0.5, -2.0 } +} + + +asset.onInitialize(function () + openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer_4096) + openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer_with_background) + openspace.addScreenSpaceRenderable(labels); +end) + +asset.onDeinitialize(function() + openspace.globebrowsing.deleteLayer(globeIdentifier, "ColorLayers", layer_4096) + openspace.globebrowsing.deleteLayer(globeIdentifier, "ColorLayers", layer_with_background) + openspace.removeScreenSpaceRenderable(labels); +end) + +asset.export(layer_4096) +asset.export(layer_with_background) +asset.export(labels) + + +asset.meta = { + Name = Name, + Version = "1.0", + Description = Description .. "Data provided by the National Oceanic and Atmospheric Administration.", + Author = "National Oceanic and Atmospheric Administration", + URL = URL, + License = "https://sos.noaa.gov/copyright/" +} diff --git a/data/assets/scene/solarsystem/planets/earth/noaa-sos/land/species_richness-mammals.asset b/data/assets/scene/solarsystem/planets/earth/noaa-sos/land/species_richness-mammals.asset new file mode 100644 index 0000000000..52f7ca1024 --- /dev/null +++ b/data/assets/scene/solarsystem/planets/earth/noaa-sos/land/species_richness-mammals.asset @@ -0,0 +1,71 @@ +local globeIdentifier = asset.require("../../earth").Earth.Identifier + + +local Name = "Species Richness - Mammals" +local Identifier = "noaa-sos-land-species_richness-mammals" +local Description = [[ Understanding the biodiversity of our planet is critical for +developing conservation strategies. This series of datasets shows the biodiversity of +birds, mammals, and amphibians. Said simply, these maps show how many kinds of birds or +mammals or amphibians live in each area around the world. These maps look at just the +animals on land and don't include any marine animals. Also included are corresponding +maps of where the threatened species live, the ones at greatest risk of extinction. +Knowing where these threatened species live can help direct conservation efforts to +ensure that the places with the most vulnerable species are being protected. ]] +local URL = "https://sos.noaa.gov/catalog/datasets/species-richness-mammals/" + + +local syncedDirectory = asset.syncedResource({ + Name = Name, + Type = "HttpSynchronization", + Identifier = Identifier, + Version = 1 +}) + +local layer_8192 = { + Identifier = Identifier, + Name = Name, + FilePath = syncedDirectory .. "8192.png", + Description = Description +} + +local layer_with_background = { + Identifier = Identifier .. "-background", + Name = Name .. " (w/ Background)", + FilePath = syncedDirectory .. "4096-background.png", + Description = Description +} + +local labels = { + Identifier = Identifier, + Name = Name, + Type = "ScreenSpaceImageLocal", + TexturePath = syncedDirectory .. "labels.png", + FaceCamera = false, + CartesianPosition = { 0.0, -0.5, -2.0 } +} + +asset.onInitialize(function () + openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer_8192) + openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer_with_background) + openspace.addScreenSpaceRenderable(labels); +end) + +asset.onDeinitialize(function() + openspace.globebrowsing.deleteLayer(globeIdentifier, "ColorLayers", layer_8192) + openspace.globebrowsing.deleteLayer(globeIdentifier, "ColorLayers", layer_with_background) + openspace.removeScreenSpaceRenderable(labels); +end) + +asset.export(layer_8192) +asset.export(layer_with_background) +asset.export(labels) + + +asset.meta = { + Name = Name, + Version = "1.0", + Description = Description .. "Data provided by the National Oceanic and Atmospheric Administration.", + Author = "National Oceanic and Atmospheric Administration", + URL = URL, + License = "https://sos.noaa.gov/copyright/" +} diff --git a/data/assets/scene/solarsystem/planets/earth/noaa-sos/land/species_richness-mammals_threatened.asset b/data/assets/scene/solarsystem/planets/earth/noaa-sos/land/species_richness-mammals_threatened.asset new file mode 100644 index 0000000000..b8b70db907 --- /dev/null +++ b/data/assets/scene/solarsystem/planets/earth/noaa-sos/land/species_richness-mammals_threatened.asset @@ -0,0 +1,72 @@ +local globeIdentifier = asset.require("../../earth").Earth.Identifier + + +local Name = "Species Richness - Mammals Threatened" +local Identifier = "noaa-sos-land-species_richness-mammals_threatened" +local Description = [[ Understanding the biodiversity of our planet is critical for +developing conservation strategies. This series of datasets shows the biodiversity of +birds, mammals, and amphibians. Said simply, these maps show how many kinds of birds or +mammals or amphibians live in each area around the world. These maps look at just the +animals on land and don't include any marine animals. Also included are corresponding +maps of where the threatened species live, the ones at greatest risk of extinction. +Knowing where these threatened species live can help direct conservation efforts to +ensure that the places with the most vulnerable species are being protected. ]] +local URL = "https://sos.noaa.gov/catalog/datasets/species-richness-mammals-threatened/" + + +local syncedDirectory = asset.syncedResource({ + Name = Name, + Type = "HttpSynchronization", + Identifier = Identifier, + Version = 1 +}) + +local layer_4096 = { + Identifier = Identifier, + Name = Name, + FilePath = syncedDirectory .. "4096.png", + Description = Description +} + +local layer_with_background = { + Identifier = Identifier .. "-background", + Name = Name .. " (w/ Background)", + FilePath = syncedDirectory .. "4096-background.png", + Description = Description +} + +local labels = { + Identifier = Identifier, + Name = Name, + Type = "ScreenSpaceImageLocal", + TexturePath = syncedDirectory .. "labels.png", + FaceCamera = false, + CartesianPosition = { 0.0, -0.5, -2.0 } +} + + +asset.onInitialize(function () + openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer_4096) + openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer_with_background) + openspace.addScreenSpaceRenderable(labels); +end) + +asset.onDeinitialize(function() + openspace.globebrowsing.deleteLayer(globeIdentifier, "ColorLayers", layer_4096) + openspace.globebrowsing.deleteLayer(globeIdentifier, "ColorLayers", layer_with_background) + openspace.removeScreenSpaceRenderable(labels); +end) + +asset.export(layer_4096) +asset.export(layer_with_background) +asset.export(labels) + + +asset.meta = { + Name = Name, + Version = "1.0", + Description = Description .. "Data provided by the National Oceanic and Atmospheric Administration.", + Author = "National Oceanic and Atmospheric Administration", + URL = URL, + License = "https://sos.noaa.gov/copyright/" +} diff --git a/data/assets/scene/solarsystem/planets/earth/noaa-sos/land/surface_temperature.asset b/data/assets/scene/solarsystem/planets/earth/noaa-sos/land/surface_temperature.asset new file mode 100644 index 0000000000..1d1dc131df --- /dev/null +++ b/data/assets/scene/solarsystem/planets/earth/noaa-sos/land/surface_temperature.asset @@ -0,0 +1,83 @@ +local globeIdentifier = asset.require("../../earth").Earth.Identifier + + +local Name = "Surface Temperature" +local Identifier = "noaa-sos-land-surface_temperature" +local Description = [[ These maps combine high-resolution daytime surface temperatures +derived from satellite observations for both land and sea and display them with a common +color scale. Displaying these high-resolution data with a common color scale makes +evident the large difference between surface heating on land versus the sea. It also +shows the relatively small seasonal variation in sea surface temperature over the globe +relative to land temperatures. The larger seasonal variation in average temperature of +the northern hemisphere relative to the southern hemisphere, a result of the larger land +area in the northern hemisphere, is also evident. ]] +local URL = "https://sos.noaa.gov/catalog/datasets/surface-temperature/" + + +local syncedDirectory = asset.syncedResource({ + Name = Name, + Type = "HttpSynchronization", + Identifier = Identifier, + Version = 1 +}) + +local imagesDestination = syncedDirectory .. "images" + +local layer = { + Identifier = Identifier, + Name = Name, + Type = "ImageSequenceTileLayer", + FolderPath = imagesDestination, + Description = Description +} + +local colorbar = { + Identifier = Identifier, + Name = Name, + Type = "ScreenSpaceImageLocal", + TexturePath = syncedDirectory .. "colorbar.png", + Enabled = false, + FaceCamera = false, + Scale = 0.07, + CartesianPosition = { 1.0, 0.0, -2.0 } +} + +local colorbar2 = { + Identifier = Identifier .."-1", + Name = Name .. " (1)", + Type = "ScreenSpaceImageLocal", + TexturePath = syncedDirectory .. "colorbar2.png", + FaceCamera = false, + CartesianPosition = { 0.0, -0.5, -2.0 } +} + +asset.onInitialize(function () + if not openspace.directoryExists(imagesDestination) then + openspace.printInfo("Extracting " .. Name) + openspace.unzipFile(syncedDirectory .. "4096.zip", imagesDestination, true) + end + + openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer) + openspace.addScreenSpaceRenderable(colorbar); + openspace.addScreenSpaceRenderable(colorbar2); +end) + +asset.onDeinitialize(function() + openspace.globebrowsing.deleteLayer(globeIdentifier, "ColorLayers", layer) + openspace.removeScreenSpaceRenderable(colorbar) + openspace.removeScreenSpaceRenderable(colorbar2) +end) + +asset.export(layer) +asset.export(colorbar) +asset.export(colorbar2) + + +asset.meta = { + Name = Name, + Version = "1.0", + Description = Description .. "Data provided by the National Oceanic and Atmospheric Administration.", + Author = "National Oceanic and Atmospheric Administration", + URL = URL, + License = "https://sos.noaa.gov/copyright/" +} diff --git a/data/assets/scene/solarsystem/planets/earth/noaa-sos/land/top_quakes.asset b/data/assets/scene/solarsystem/planets/earth/noaa-sos/land/top_quakes.asset new file mode 100644 index 0000000000..e4ae9f9802 --- /dev/null +++ b/data/assets/scene/solarsystem/planets/earth/noaa-sos/land/top_quakes.asset @@ -0,0 +1,55 @@ +local globeIdentifier = asset.require("../../earth").Earth.Identifier + + +local Name = "Earthquakes: Historical Top 10 - through 2011" +local Identifier = "noaa-sos-land-top_quakes" +local Description = [[ t is estimated that there are 500,000 detectable earthquakes in +the world each year. Of those, 100,000 can be felt and 100 of them cause damage. Anything +that causes seismic waves to radiate throughout the Earth is an earthquake. The cause of +earthquakes can be natural, such as one tectonic plate slipping below another, or +anthropogenic (cause by humans), such as drilling for fossil fuels, extraction of +minerals, huge explosions, and the collapse of large buildings. The surface of the Earth +is composed of a mosaic of tectonic plates moving with respect to each other. When two +plates glide past one another, a stress builds up at the boundary. When that stress +reaches a critical level, the boundary slips and the result is an earthquake. Because +most natural earthquakes occur due to slipping plates, the boundaries between tectonic +plates are "hot spots" for earthquakes. The magnitude of earthquakes is measured by the +Richter magnitude scale. It is a base-10 logarithm scale of the ground motion caused by +the earthquake. Each increase of 1 in magnitude represents 10 times more ground +motion. ]] +local URL = "https://sos.noaa.gov/catalog/datasets/earthquakes-historical-top-10-through-2011/" + + +local syncedDirectory = asset.syncedResource({ + Name = Name, + Type = "HttpSynchronization", + Identifier = Identifier, + Version = 1 +}) + +local layer = { + Identifier = Identifier, + Name = Name, + FilePath = syncedDirectory .. "sos_saras_big_quakes_20110316.png", + Description = Description +} + +asset.onInitialize(function () + openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer) +end) + +asset.onDeinitialize(function() + openspace.globebrowsing.deleteLayer(globeIdentifier, "ColorLayers", layer) +end) + +asset.export(layer) + + +asset.meta = { + Name = Name, + Version = "1.0", + Description = Description .. "Data provided by the National Oceanic and Atmospheric Administration.", + Author = "National Oceanic and Atmospheric Administration", + URL = URL, + License = "https://sos.noaa.gov/copyright/" +} diff --git a/data/assets/scene/solarsystem/planets/earth/noaa-sos/land/volcanoes-eruptions.asset b/data/assets/scene/solarsystem/planets/earth/noaa-sos/land/volcanoes-eruptions.asset new file mode 100644 index 0000000000..353c6a63e5 --- /dev/null +++ b/data/assets/scene/solarsystem/planets/earth/noaa-sos/land/volcanoes-eruptions.asset @@ -0,0 +1,63 @@ +local globeIdentifier = asset.require("../../earth").Earth.Identifier + + +local Name = "Volcano Eruptions - through 2010" +local Identifier = "noaa-sos-land-volcanoes-eruptions" +local Description = [[ According to the Smithsonian Institute's Global Volcanism Program, +there are probably about 20 volcanoes erupting right now, and about 550 volcanoes have +had historically documented eruptions. A volcano is an opening, or rupture, in the +Earth's crust through which molten lava, ash, and gases are ejected. Volcanoes typically +form in three different settings. The first is divergent plate boundaries, where tectonic +plates are pulling apart from one another, such as the Mid-Atlantic Ocean Ridge. Most of +these volcanoes are on the bottom of the ocean floor and are responsible for creating new +sea floor. The second location is convergent plate boundaries, where two plates, +typically an oceanic and continental plate, are colliding. The volcanoes along the +Pacific Ring of Fire are from convergent plate boundaries. The third location is over +hotspots, which are typically in the middle of tectonic plates and caused by hot magma +rising to the surface. The volcanoes on Hawaii are the result of hotspots. ]] +local URL = "https://sos.noaa.gov/catalog/datasets/volcano-eruptions-through-2010/" + + +local syncedDirectory = asset.syncedResource({ + Name = Name, + Type = "HttpSynchronization", + Identifier = Identifier, + Version = 1 +}) + +local layer_base = { + Identifier = Identifier .. "-base", + Name = Name .. " (Base)", + FilePath = syncedDirectory .. "land.jpg", + Description = Description +} + +local layer = { + Identifier = Identifier, + Name = Name, + FilePath = syncedDirectory .. "4096.png", + Description = Description +} + +asset.onInitialize(function () + openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer_base) + openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer) +end) + +asset.onDeinitialize(function() + openspace.globebrowsing.deleteLayer(globeIdentifier, "ColorLayers", layer_base) + openspace.globebrowsing.deleteLayer(globeIdentifier, "ColorLayers", layer) +end) + +asset.export(layer_base) +asset.export(layer) + + +asset.meta = { + Name = Name, + Version = "1.0", + Description = Description .. "Data provided by the National Oceanic and Atmospheric Administration.", + Author = "National Oceanic and Atmospheric Administration", + URL = URL, + License = "https://sos.noaa.gov/copyright/" +} diff --git a/data/assets/scene/solarsystem/planets/earth/noaa-sos/land/volcanoes-global_volcanoes.asset b/data/assets/scene/solarsystem/planets/earth/noaa-sos/land/volcanoes-global_volcanoes.asset new file mode 100644 index 0000000000..0e9713198a --- /dev/null +++ b/data/assets/scene/solarsystem/planets/earth/noaa-sos/land/volcanoes-global_volcanoes.asset @@ -0,0 +1,63 @@ +local globeIdentifier = asset.require("../../earth").Earth.Identifier + + +local Name = "Volcano Locations" +local Identifier = "noaa-sos-land-volcanoes-global_volcanoes" +local Description = [[ According to the Smithsonian Institute's Global Volcanism Program, +there are probably about 20 volcanoes erupting right now, and about 550 volcanoes have +had historically documented eruptions. A volcano is an opening, or rupture, in the +Earth's crust through which molten lava, ash, and gases are ejected. Volcanoes typically +form in three different settings. The first is divergent plate boundaries, where tectonic +plates are pulling apart from one another, such as the Mid-Atlantic Ocean Ridge. Most of +these volcanoes are on the bottom of the ocean floor and are responsible for creating new +sea floor. The second location is convergent plate boundaries, where two plates, +typically an oceanic and continental plate, are colliding. The volcanoes along the +Pacific Ring of Fire are from convergent plate boundaries. The third location is over +hotspots, which are typically in the middle of tectonic plates and caused by hot magma +rising to the surface. The volcanoes on Hawaii are the result of hotspots. ]] +local URL = "https://sos.noaa.gov/catalog/datasets/volcano-locations/" + + +local syncedDirectory = asset.syncedResource({ + Name = Name, + Type = "HttpSynchronization", + Identifier = Identifier, + Version = 1 +}) + +local layer_base = { + Identifier = Identifier .. "-base", + Name = Name .. " (Base)", + FilePath = syncedDirectory .. "land.jpg", + Description = Description +} + +local layer = { + Identifier = Identifier, + Name = Name, + FilePath = syncedDirectory .. "4096.png", + Description = Description +} + +asset.onInitialize(function () + openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer_base) + openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer) +end) + +asset.onDeinitialize(function() + openspace.globebrowsing.deleteLayer(globeIdentifier, "ColorLayers", layer_base) + openspace.globebrowsing.deleteLayer(globeIdentifier, "ColorLayers", layer) +end) + +asset.export(layer_base) +asset.export(layer) + + +asset.meta = { + Name = Name, + Version = "1.0", + Description = Description .. "Data provided by the National Oceanic and Atmospheric Administration.", + Author = "National Oceanic and Atmospheric Administration", + URL = URL, + License = "https://sos.noaa.gov/copyright/" +} diff --git a/data/assets/scene/solarsystem/planets/earth/noaa-sos/land/volcanoes-tsunami.asset b/data/assets/scene/solarsystem/planets/earth/noaa-sos/land/volcanoes-tsunami.asset new file mode 100644 index 0000000000..5eb2b967f8 --- /dev/null +++ b/data/assets/scene/solarsystem/planets/earth/noaa-sos/land/volcanoes-tsunami.asset @@ -0,0 +1,63 @@ +local globeIdentifier = asset.require("../../earth").Earth.Identifier + + +local Name = "Volcano Eruptions: Causing Tsunamis - through 2010" +local Identifier = "noaa-sos-land-volcanoes-tsunami" +local Description = [[ According to the Smithsonian Institute's Global Volcanism Program, +there are probably about 20 volcanoes erupting right now, and about 550 volcanoes have +had historically documented eruptions. A volcano is an opening, or rupture, in the +Earth's crust through which molten lava, ash, and gases are ejected. Volcanoes typically +form in three different settings. The first is divergent plate boundaries, where tectonic +plates are pulling apart from one another, such as the Mid-Atlantic Ocean Ridge. Most of +these volcanoes are on the bottom of the ocean floor and are responsible for creating new +sea floor. The second location is convergent plate boundaries, where two plates, +typically an oceanic and continental plate, are colliding. The volcanoes along the +Pacific Ring of Fire are from convergent plate boundaries. The third location is over +hotspots, which are typically in the middle of tectonic plates and caused by hot magma +rising to the surface. The volcanoes on Hawaii are the result of hotspots. ]] +local URL = "https://sos.noaa.gov/catalog/datasets/volcano-eruptions-causing-tsunamis-through-2010/" + + +local syncedDirectory = asset.syncedResource({ + Name = Name, + Type = "HttpSynchronization", + Identifier = Identifier, + Version = 1 +}) + +local layer_base = { + Identifier = Identifier .. "-base", + Name = Name .. " (Base)", + FilePath = syncedDirectory .. "land.jpg", + Description = Description +} + +local layer = { + Identifier = Identifier, + Name = Name, + FilePath = syncedDirectory .. "4096.png", + Description = Description +} + +asset.onInitialize(function () + openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer_base) + openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer) +end) + +asset.onDeinitialize(function() + openspace.globebrowsing.deleteLayer(globeIdentifier, "ColorLayers", layer_base) + openspace.globebrowsing.deleteLayer(globeIdentifier, "ColorLayers", layer) +end) + +asset.export(layer_base) +asset.export(layer) + + +asset.meta = { + Name = Name, + Version = "1.0", + Description = Description .. "Data provided by the National Oceanic and Atmospheric Administration.", + Author = "National Oceanic and Atmospheric Administration", + URL = URL, + License = "https://sos.noaa.gov/copyright/" +} diff --git a/data/assets/scene/solarsystem/planets/earth/noaa-sos/models/bm10000.asset b/data/assets/scene/solarsystem/planets/earth/noaa-sos/models/bm10000.asset new file mode 100644 index 0000000000..5a50f589fb --- /dev/null +++ b/data/assets/scene/solarsystem/planets/earth/noaa-sos/models/bm10000.asset @@ -0,0 +1,79 @@ +local globeIdentifier = asset.require("../../earth").Earth.Identifier + + +local Name = "Blue Marble: Sea Level, Ice and Vegetation Changes - 19,000BC - 10,000AD" +local Identifier = "noaa-sos-models-bm10000" +local Description = [[ The Earth has been through many changes and continues to change +today. To better understand these changes, the Zürich University of Applied Sciences +created a simulation using past climate data, observations, and computer models. The +simulation starts 21,000 years ago and ends 8,000 years in the future, showing the +changes in ice concentration, sea level, and vegetation. 19,000BC was chosen as the start +date because this was the last glacial maximum, when the Earth's ice sheets were at their +maximum extension. As seen in the animation, much of northern Europe and North America +were covered in ice in 19,000BC. The labels for the animation include information about +carbon dioxide concentration, average temperature, sea level and population. The red line +indicates the current levels. The yellow borders on the map represent the current +coastlines. The data from 19,000BC to 2,000AD includes the most up-to-date paleoclimate +data that is available. A list of sources can be found here. Some notable events in the +past simulation include: + +The North Sea quickly forms around 8,000BC, creating the British Isles +"Mega-Lake Chad" forms in the present-day Saraha Desert and is surrounded by lush +landscapes around 7,000BC +The ice pulls back and North America and Europe are largely ice free, starting in 6,500BC +The lush vegetation across Northern Africa and the Arabian peninsula retreats in 2,000BC + +For the time frame from 2,000AD to 3,000AD, a computer model based on the IPCC A2 +scenario was used. This scenario assumes a complete cessation of carbon dioxide emissions +in 2100. More details on the model used can be found here. In this part of the simulation +the time steps change from a frame every 500 years as used in the first part of the +animation, to a frame every 50 years to show the rapid changes that are modeled. The +northern ice cap quickly disappears and the ice on Greenland and Antarctica begins to +melt steadily. By the year 3,000AD, there is predicted 6m (19ft) sea level rise. The +simulation continues from 3,000AD to 10,000 AD in 500 year time steps in a fictional +scenario of worldwide glacier meltdown and shows the impacts this would have on the +coasts. ]] +local URL = "https://sos.noaa.gov/catalog/datasets/blue-marble-sea-level-ice-and-vegetation-changes-19000bc-10000ad/" + + +local syncedDirectory = asset.syncedResource({ + Name = Name, + Type = "HttpSynchronization", + Identifier = Identifier, + Version = 1 +}) + +local imagesDestination = syncedDirectory .. "images" + +local layer = { + Identifier = Identifier, + Name = Name, + Type = "ImageSequenceTileLayer", + FolderPath = imagesDestination, + Description = Description +} + +asset.onInitialize(function() + if not openspace.directoryExists(imagesDestination) then + openspace.printInfo("Extracting " .. Name) + openspace.unzipFile(syncedDirectory .. "4096.zip", imagesDestination, true) + end + + openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer) +end) + +asset.onDeinitialize(function() + openspace.globebrowsing.deleteLayer(globeIdentifier, "ColorLayers", layer) +end) + +asset.export(layer) + + +asset.meta = { + Name = Name, + Version = "1.0", + Description = Description .. "Data provided by the National Oceanic and Atmospheric Administration.", + Author = "National Oceanic and Atmospheric Administration", + URL = URL, + License = "https://sos.noaa.gov/copyright/" +} diff --git a/data/assets/scene/solarsystem/planets/earth/noaa-sos/models/gfdl_seaice.asset b/data/assets/scene/solarsystem/planets/earth/noaa-sos/models/gfdl_seaice.asset new file mode 100644 index 0000000000..b2c052bc46 --- /dev/null +++ b/data/assets/scene/solarsystem/planets/earth/noaa-sos/models/gfdl_seaice.asset @@ -0,0 +1,76 @@ +local globeIdentifier = asset.require("../../earth").Earth.Identifier + + +local Name = "Climate Model: Sea Ice Change (GFDL a1b) 1861 - 2100" +local Identifier = "noaa-sos-models-gfdl_seaice" +local Description = [[ In the coming decades, the Arctic region is projected to warm at +about twice the rate of the global average according to the scientists at NOAA's +Geophysical Fluid Dynamics Laboratory. This is not good news for the Arctic sea ice. In +fact, the concentration of sea ice in the northern latitudes has been decreasing over the +past 30 years and this trend is expected to continue as the climate changes. The +disappearance of sea ice can have a major impact globally. Melting sea ice can disturb +the global ocean conveyor belt, impact sea life and the fishing industry, and change the +Earth energy budget. Sea ice cools the climate because it is reflective and so returns +much of the sun's warming back to space. As the ice melts, more of this energy is +absorbed in the darker ocean water. The temperature increases as more sunlight is +absorbed rather than reflected. This is a positive feedback loop because as temperature +rises, more sea ice melts causing increased absorption which leads to rising +temperatures. ]] +local URL = "https://sos.noaa.gov/catalog/datasets/climate-model-sea-ice-change-gfdl-a1b-1861-2100/" + + +local syncedDirectory = asset.syncedResource({ + Name = Name, + Type = "HttpSynchronization", + Identifier = Identifier, + Version = 1 +}) + +local imagesDestination = syncedDirectory .. "images" + +local layer = { + Identifier = Identifier, + Name = Name, + Type = "ImageSequenceTileLayer", + FolderPath = imagesDestination, + Description = Description +} + +local colorbar = { + Identifier = Identifier, + Name = Name, + Type = "ScreenSpaceImageLocal", + TexturePath = syncedDirectory .. "colorbar_big.png", + FaceCamera = false, + CartesianPosition = { 0.0, -0.5, -2.0 } +} + +asset.onInitialize(function() + if not openspace.directoryExists(imagesDestination) then + openspace.printInfo("Extracting " .. Name) + openspace.unzipFile(syncedDirectory .. "4096-1.zip", imagesDestination, true) + openspace.unzipFile(syncedDirectory .. "4096-2.zip", imagesDestination, true) + openspace.unzipFile(syncedDirectory .. "4096-3.zip", imagesDestination, true) + end + + openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer) + openspace.addScreenSpaceRenderable(colorbar); +end) + +asset.onDeinitialize(function() + openspace.globebrowsing.deleteLayer(globeIdentifier, "ColorLayers", layer) + openspace.removeScreenSpaceRenderable(colorbar) +end) + +asset.export(layer) +asset.export(colorbar) + + +asset.meta = { + Name = Name, + Version = "1.0", + Description = Description .. "Data provided by the National Oceanic and Atmospheric Administration.", + Author = "National Oceanic and Atmospheric Administration", + URL = URL, + License = "https://sos.noaa.gov/copyright/" +} diff --git a/data/assets/scene/solarsystem/planets/earth/noaa-sos/models/ipcc_temp-ccsm-a1b.asset b/data/assets/scene/solarsystem/planets/earth/noaa-sos/models/ipcc_temp-ccsm-a1b.asset new file mode 100644 index 0000000000..f78fb0bb20 --- /dev/null +++ b/data/assets/scene/solarsystem/planets/earth/noaa-sos/models/ipcc_temp-ccsm-a1b.asset @@ -0,0 +1,73 @@ +local globeIdentifier = asset.require("../../earth").Earth.Identifier + + +local Name = "Climate Model: Temperature Change (CCSM a1b) - 1870 - 2100" +local Identifier = "noaa-sos-models-ipcc_temp-ccsm-a1b" +local Description = [[ "The Intergovernmental Panel on Climate Change (IPCC) was +established by WMO and UNEP to assess scientific, technical and socio- economic +information relevant for the understanding of climate change, its potential impacts and +options for adaptation and mitigation. It is open to all members of the UN and of WMO." +- from www.ipcc.ch. In an effort to better visualize the future of climate change, the +IPCC releases assessment reports on the current state of the atmosphere and what the +future could hold. Models from various atmospheric and oceanic organizations are included +in these reports in order to establish a broad understanding of the science. Data from +three of the IPCC models following temperature change from 1870 - 2100 have been +formatted for Science On a Sphere. ]] +local URL = "https://sos.noaa.gov/catalog/datasets/climate-model-temperature-change-ccsm-a1b-1870-2100/" + + +local syncedDirectory = asset.syncedResource({ + Name = Name, + Type = "HttpSynchronization", + Identifier = Identifier, + Version = 1 +}) + +local imagesDestination = syncedDirectory .. "images" + +local layer = { + Identifier = Identifier, + Name = Name, + Type = "ImageSequenceTileLayer", + FolderPath = imagesDestination, + Description = Description +} + +local colorbar = { + Identifier = Identifier, + Name = Name, + Type = "ScreenSpaceImageLocal", + TexturePath = syncedDirectory .. "colorbar.png", + FaceCamera = false, + Scale = 0.2, + BackgroundColor = { 1.0, 1.0, 1.0, 1.0 }, + CartesianPosition = { 1.0, -0.5, -2.0 } +} + +asset.onInitialize(function() + if not openspace.directoryExists(imagesDestination) then + openspace.printInfo("Extracting " .. Name) + openspace.unzipFile(syncedDirectory .. "4095.zip", imagesDestination, true) + end + + openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer) + openspace.addScreenSpaceRenderable(colorbar); +end) + +asset.onDeinitialize(function() + openspace.globebrowsing.deleteLayer(globeIdentifier, "ColorLayers", layer) + openspace.removeScreenSpaceRenderable(colorbar) +end) + +asset.export(layer) +asset.export(colorbar) + + +asset.meta = { + Name = Name, + Version = "1.0", + Description = Description .. "Data provided by the National Oceanic and Atmospheric Administration.", + Author = "National Oceanic and Atmospheric Administration", + URL = URL, + License = "https://sos.noaa.gov/copyright/" +} diff --git a/data/assets/scene/solarsystem/planets/earth/noaa-sos/models/ipcc_temp-ccsm-b1.asset b/data/assets/scene/solarsystem/planets/earth/noaa-sos/models/ipcc_temp-ccsm-b1.asset new file mode 100644 index 0000000000..ce06d48181 --- /dev/null +++ b/data/assets/scene/solarsystem/planets/earth/noaa-sos/models/ipcc_temp-ccsm-b1.asset @@ -0,0 +1,73 @@ +local globeIdentifier = asset.require("../../earth").Earth.Identifier + + +local Name = "Climate Model: Temperature Change (CCSM b1) - 1870 - 2100" +local Identifier = "noaa-sos-models-ipcc_temp-ccsm-b1" +local Description = [[ "The Intergovernmental Panel on Climate Change (IPCC) was +established by WMO and UNEP to assess scientific, technical and socio- economic +information relevant for the understanding of climate change, its potential impacts and +options for adaptation and mitigation. It is open to all members of the UN and of WMO." +- from www.ipcc.ch. In an effort to better visualize the future of climate change, the +IPCC releases assessment reports on the current state of the atmosphere and what the +future could hold. Models from various atmospheric and oceanic organizations are included +in these reports in order to establish a broad understanding of the science. Data from +three of the IPCC models following temperature change from 1870 - 2100 have been +formatted for Science On a Sphere. ]] +local URL = "https://sos.noaa.gov/catalog/datasets/climate-model-temperature-change-ccsm-b1-1870-2100/" + + +local syncedDirectory = asset.syncedResource({ + Name = Name, + Type = "HttpSynchronization", + Identifier = Identifier, + Version = 1 +}) + +local imagesDestination = syncedDirectory .. "images" + +local layer = { + Identifier = Identifier, + Name = Name, + Type = "ImageSequenceTileLayer", + FolderPath = imagesDestination, + Description = Description +} + +local colorbar = { + Identifier = Identifier, + Name = Name, + Type = "ScreenSpaceImageLocal", + TexturePath = syncedDirectory .. "colorbar.png", + FaceCamera = false, + Scale = 0.2, + BackgroundColor = { 1.0, 1.0, 1.0, 1.0 }, + CartesianPosition = { 1.0, -0.5, -2.0 } +} + +asset.onInitialize(function() + if not openspace.directoryExists(imagesDestination) then + openspace.printInfo("Extracting " .. Name) + openspace.unzipFile(syncedDirectory .. "4095.zip", imagesDestination, true) + end + + openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer) + openspace.addScreenSpaceRenderable(colorbar); +end) + +asset.onDeinitialize(function() + openspace.globebrowsing.deleteLayer(globeIdentifier, "ColorLayers", layer) + openspace.removeScreenSpaceRenderable(colorbar) +end) + +asset.export(layer) +asset.export(colorbar) + + +asset.meta = { + Name = Name, + Version = "1.0", + Description = Description .. "Data provided by the National Oceanic and Atmospheric Administration.", + Author = "National Oceanic and Atmospheric Administration", + URL = URL, + License = "https://sos.noaa.gov/copyright/" +} diff --git a/data/assets/scene/solarsystem/planets/earth/noaa-sos/models/ipcc_temp-compare.asset b/data/assets/scene/solarsystem/planets/earth/noaa-sos/models/ipcc_temp-compare.asset new file mode 100644 index 0000000000..c1517436f3 --- /dev/null +++ b/data/assets/scene/solarsystem/planets/earth/noaa-sos/models/ipcc_temp-compare.asset @@ -0,0 +1,87 @@ +local globeIdentifier = asset.require("../../earth").Earth.Identifier + + +local Name = "Climate Model: Temperature Change Comparison (GFDL a1b and b1)" +local Identifier = "noaa-sos-models-ipcc_temp-compare" +local Description = [[ "The Intergovernmental Panel on Climate Change (IPCC) was +established by WMO and UNEP to assess scientific, technical and socio- economic +information relevant for the understanding of climate change, its potential impacts and +options for adaptation and mitigation. It is open to all members of the UN and of WMO." +- from www.ipcc.ch. In an effort to better visualize the future of climate change, the +IPCC releases assessment reports on the current state of the atmosphere and what the +future could hold. Models from various atmospheric and oceanic organizations are included +in these reports in order to establish a broad understanding of the science. Data from +three of the IPCC models following temperature change from 1870 - 2100 have been +formatted for Science On a Sphere. ]] +local URL = "https://sos.noaa.gov/catalog/datasets/climate-model-temperature-change-comparison-gfdl-a1b-and-b1/" + + +local syncedDirectory = asset.syncedResource({ + Name = Name, + Type = "HttpSynchronization", + Identifier = Identifier, + Version = 1 +}) + +local layers_names = { + "2025_gfdl_a1b", + "2025_gfdl_b1", + "2050_gfdl_a1b", + "2050_gfdl_b1", + "2075_gfdl_a1b", + "2075_gfdl_b1", + "2100_gfdl_a1b", + "2100_gfdl_b1" +} + +local layers = {} +for i,v in ipairs(layers_names) do + local layer = { + Identifier = Identifier .. v, + Name = Name, + FilePath = syncedDirectory .. v .. ".png", + Description = Description + } + + table.insert(layers, layer) +end + +local colorbar = { + Identifier = Identifier, + Name = Name, + Type = "ScreenSpaceImageLocal", + TexturePath = syncedDirectory .. "colorbar.png", + FaceCamera = false, + Scale = 0.2, + BackgroundColor = { 1.0, 1.0, 1.0, 1.0 }, + CartesianPosition = { 1.0, -0.5, -2.0 } +} + + +asset.onInitialize(function () + for i,v in ipairs(layers) do + openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", v) + end + openspace.addScreenSpaceRenderable(colorbar); +end) + +asset.onDeinitialize(function() + for i,v in ipairs(layers) do + openspace.globebrowsing.deleteLayer(globeIdentifier, "ColorLayers", v) + end + openspace.removeScreenSpaceRenderable(colorbar) +end) + +for _,v in ipairs(layers) do + asset.export(v) +end + + +asset.meta = { + Name = Name, + Version = "1.0", + Description = Description .. "Data provided by the National Oceanic and Atmospheric Administration.", + Author = "National Oceanic and Atmospheric Administration", + URL = URL, + License = "https://sos.noaa.gov/copyright/" +} diff --git a/data/assets/scene/solarsystem/planets/earth/noaa-sos/models/ipcc_temp-gfdl-a1b.asset b/data/assets/scene/solarsystem/planets/earth/noaa-sos/models/ipcc_temp-gfdl-a1b.asset new file mode 100644 index 0000000000..9f360f9d9f --- /dev/null +++ b/data/assets/scene/solarsystem/planets/earth/noaa-sos/models/ipcc_temp-gfdl-a1b.asset @@ -0,0 +1,73 @@ +local globeIdentifier = asset.require("../../earth").Earth.Identifier + + +local Name = "Climate Model: Temperature Change (GFDL a1b) - 1870 - 2100" +local Identifier = "noaa-sos-models-ipcc_temp-gfdl-a1b" +local Description = [[ "The Intergovernmental Panel on Climate Change (IPCC) was +established by WMO and UNEP to assess scientific, technical and socio- economic +information relevant for the understanding of climate change, its potential impacts and +options for adaptation and mitigation. It is open to all members of the UN and of WMO." +- from www.ipcc.ch. In an effort to better visualize the future of climate change, the +IPCC releases assessment reports on the current state of the atmosphere and what the +future could hold. Models from various atmospheric and oceanic organizations are included +in these reports in order to establish a broad understanding of the science. Data from +three of the IPCC models following temperature change from 1870 - 2100 have been +formatted for Science On a Sphere. ]] +local URL = "https://sos.noaa.gov/catalog/datasets/climate-model-temperature-change-gfdl-a1b-1870-2100/" + + +local syncedDirectory = asset.syncedResource({ + Name = Name, + Type = "HttpSynchronization", + Identifier = Identifier, + Version = 1 +}) + +local imagesDestination = syncedDirectory .. "images" + +local layer = { + Identifier = Identifier, + Name = Name, + Type = "ImageSequenceTileLayer", + FolderPath = imagesDestination, + Description = Description +} + +local colorbar = { + Identifier = Identifier, + Name = Name, + Type = "ScreenSpaceImageLocal", + TexturePath = syncedDirectory .. "colorbar.png", + FaceCamera = false, + Scale = 0.2, + BackgroundColor = { 1.0, 1.0, 1.0, 1.0 }, + CartesianPosition = { 1.0, -0.5, -2.0 } +} + +asset.onInitialize(function() + if not openspace.directoryExists(imagesDestination) then + openspace.printInfo("Extracting " .. Name) + openspace.unzipFile(syncedDirectory .. "4095.zip", imagesDestination, true) + end + + openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer) + openspace.addScreenSpaceRenderable(colorbar); +end) + +asset.onDeinitialize(function() + openspace.globebrowsing.deleteLayer(globeIdentifier, "ColorLayers", layer) + openspace.removeScreenSpaceRenderable(colorbar) +end) + +asset.export(layer) +asset.export(colorbar) + + +asset.meta = { + Name = Name, + Version = "1.0", + Description = Description .. "Data provided by the National Oceanic and Atmospheric Administration.", + Author = "National Oceanic and Atmospheric Administration", + URL = URL, + License = "https://sos.noaa.gov/copyright/" +} diff --git a/data/assets/scene/solarsystem/planets/earth/noaa-sos/models/ipcc_temp-gfdl-b1.asset b/data/assets/scene/solarsystem/planets/earth/noaa-sos/models/ipcc_temp-gfdl-b1.asset new file mode 100644 index 0000000000..a966cf6542 --- /dev/null +++ b/data/assets/scene/solarsystem/planets/earth/noaa-sos/models/ipcc_temp-gfdl-b1.asset @@ -0,0 +1,73 @@ +local globeIdentifier = asset.require("../../earth").Earth.Identifier + + +local Name = "Climate Model: Temperature Change (GFDL b1) - 1870 - 2100" +local Identifier = "noaa-sos-models-ipcc_temp-gfdl-b1" +local Description = [[ "The Intergovernmental Panel on Climate Change (IPCC) was +established by WMO and UNEP to assess scientific, technical and socio-economic +information relevant for the understanding of climate change, its potential impacts and +options for adaptation and mitigation. It is open to all members of the UN and of WMO." +- from www.ipcc.ch. In an effort to better visualize the future of climate change, the +IPCC releases assessment reports on the current state of the atmosphere and what the +future could hold. Models from various atmospheric and oceanic organizations are included +in these reports in order to establish a broad understanding of the science. Data from +three of the IPCC models following temperature change from 1870 - 2100 have been +formatted for Science On a Sphere. ]] +local URL = "https://sos.noaa.gov/catalog/datasets/climate-model-temperature-change-gfdl-b1-1870-2100/" + + +local syncedDirectory = asset.syncedResource({ + Name = Name, + Type = "HttpSynchronization", + Identifier = Identifier, + Version = 1 +}) + +local imagesDestination = syncedDirectory .. "images" + +local layer = { + Identifier = Identifier, + Name = Name, + Type = "ImageSequenceTileLayer", + FolderPath = imagesDestination, + Description = Description +} + +local colorbar = { + Identifier = Identifier, + Name = Name, + Type = "ScreenSpaceImageLocal", + TexturePath = syncedDirectory .. "colorbar.png", + FaceCamera = false, + Scale = 0.2, + BackgroundColor = { 1.0, 1.0, 1.0, 1.0 }, + CartesianPosition = { 1.0, -0.5, -2.0 } +} + +asset.onInitialize(function() + if not openspace.directoryExists(imagesDestination) then + openspace.printInfo("Extracting " .. Name) + openspace.unzipFile(syncedDirectory .. "4095.zip", imagesDestination, true) + end + + openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer) + openspace.addScreenSpaceRenderable(colorbar); +end) + +asset.onDeinitialize(function() + openspace.globebrowsing.deleteLayer(globeIdentifier, "ColorLayers", layer) + openspace.removeScreenSpaceRenderable(colorbar) +end) + +asset.export(layer) +asset.export(colorbar) + + +asset.meta = { + Name = Name, + Version = "1.0", + Description = Description .. "Data provided by the National Oceanic and Atmospheric Administration.", + Author = "National Oceanic and Atmospheric Administration", + URL = URL, + License = "https://sos.noaa.gov/copyright/" +} diff --git a/data/assets/scene/solarsystem/planets/earth/noaa-sos/models/ipcc_temp-had-a1b.asset b/data/assets/scene/solarsystem/planets/earth/noaa-sos/models/ipcc_temp-had-a1b.asset new file mode 100644 index 0000000000..9dd5b87f3f --- /dev/null +++ b/data/assets/scene/solarsystem/planets/earth/noaa-sos/models/ipcc_temp-had-a1b.asset @@ -0,0 +1,73 @@ +local globeIdentifier = asset.require("../../earth").Earth.Identifier + + +local Name = "Climate Model: Temperature Change (Hadley a1b) - 1870 - 2100" +local Identifier = "noaa-sos-models-ipcc_temp-had-a1b" +local Description = [[ "The Intergovernmental Panel on Climate Change (IPCC) was +established by WMO and UNEP to assess scientific, technical and socio- economic +information relevant for the understanding of climate change, its potential impacts and +options for adaptation and mitigation. It is open to all members of the UN and of WMO." +- from www.ipcc.ch . In an effort to better visualize the future of climate change, the +IPCC releases assessment reports on the current state of the atmosphere and what the +future could hold. Models from various atmospheric and oceanic organizations are included +in these reports in order to establish a broad understanding of the science. Data from +three of the IPCC models following temperature change from 1870 - 2100 have been +formatted for Science On a Sphere. ]] +local URL = "https://sos.noaa.gov/catalog/datasets/climate-model-temperature-change-hadley-a1b-1870-2100/" + + +local syncedDirectory = asset.syncedResource({ + Name = Name, + Type = "HttpSynchronization", + Identifier = Identifier, + Version = 1 +}) + +local imagesDestination = syncedDirectory .. "images" + +local layer = { + Identifier = Identifier, + Name = Name, + Type = "ImageSequenceTileLayer", + FolderPath = imagesDestination, + Description = Description +} + +local colorbar = { + Identifier = Identifier, + Name = Name, + Type = "ScreenSpaceImageLocal", + TexturePath = syncedDirectory .. "colorbar.png", + FaceCamera = false, + Scale = 0.2, + BackgroundColor = { 1.0, 1.0, 1.0, 1.0 }, + CartesianPosition = { 1.0, -0.5, -2.0 } +} + +asset.onInitialize(function() + if not openspace.directoryExists(imagesDestination) then + openspace.printInfo("Extracting " .. Name) + openspace.unzipFile(syncedDirectory .. "4095.zip", imagesDestination, true) + end + + openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer) + openspace.addScreenSpaceRenderable(colorbar); +end) + +asset.onDeinitialize(function() + openspace.globebrowsing.deleteLayer(globeIdentifier, "ColorLayers", layer) + openspace.removeScreenSpaceRenderable(colorbar) +end) + +asset.export(layer) +asset.export(colorbar) + + +asset.meta = { + Name = Name, + Version = "1.0", + Description = Description .. "Data provided by the National Oceanic and Atmospheric Administration.", + Author = "National Oceanic and Atmospheric Administration", + URL = URL, + License = "https://sos.noaa.gov/copyright/" +} diff --git a/data/assets/scene/solarsystem/planets/earth/noaa-sos/models/ipcc_temp-had-b1.asset b/data/assets/scene/solarsystem/planets/earth/noaa-sos/models/ipcc_temp-had-b1.asset new file mode 100644 index 0000000000..f6f156de66 --- /dev/null +++ b/data/assets/scene/solarsystem/planets/earth/noaa-sos/models/ipcc_temp-had-b1.asset @@ -0,0 +1,73 @@ +local globeIdentifier = asset.require("../../earth").Earth.Identifier + + +local Name = "Climate Model: Temperature Change (Hadley b1) - 1870 - 2100" +local Identifier = "noaa-sos-models-ipcc_temp-had-b1" +local Description = [[ "The Intergovernmental Panel on Climate Change (IPCC) was +established by WMO and UNEP to assess scientific, technical and socio- economic +information relevant for the understanding of climate change, its potential impacts and +options for adaptation and mitigation. It is open to all members of the UN and of WMO." +- from www.ipcc.ch. In an effort to better visualize the future of climate change, the +IPCC releases assessment reports on the current state of the atmosphere and what the +future could hold. Models from various atmospheric and oceanic organizations are included +in these reports in order to establish a broad understanding of the science. Data from +three of the IPCC models following temperature change from 1870 - 2100 have been +formatted for Science On a Sphere. ]] +local URL = "https://sos.noaa.gov/catalog/datasets/climate-model-temperature-change-hadley-b1-1870-2100/" + + +local syncedDirectory = asset.syncedResource({ + Name = Name, + Type = "HttpSynchronization", + Identifier = Identifier, + Version = 1 +}) + +local imagesDestination = syncedDirectory .. "images" + +local layer = { + Identifier = Identifier, + Name = Name, + Type = "ImageSequenceTileLayer", + FolderPath = imagesDestination, + Description = Description +} + +local colorbar = { + Identifier = Identifier, + Name = Name, + Type = "ScreenSpaceImageLocal", + TexturePath = syncedDirectory .. "colorbar.png", + FaceCamera = false, + Scale = 0.2, + BackgroundColor = { 1.0, 1.0, 1.0, 1.0 }, + CartesianPosition = { 1.0, -0.5, -2.0 } +} + +asset.onInitialize(function() + if not openspace.directoryExists(imagesDestination) then + openspace.printInfo("Extracting " .. Name) + openspace.unzipFile(syncedDirectory .. "4095.zip", imagesDestination, true) + end + + openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer) + openspace.addScreenSpaceRenderable(colorbar); +end) + +asset.onDeinitialize(function() + openspace.globebrowsing.deleteLayer(globeIdentifier, "ColorLayers", layer) + openspace.removeScreenSpaceRenderable(colorbar) +end) + +asset.export(layer) +asset.export(colorbar) + + +asset.meta = { + Name = Name, + Version = "1.0", + Description = Description .. "Data provided by the National Oceanic and Atmospheric Administration.", + Author = "National Oceanic and Atmospheric Administration", + URL = URL, + License = "https://sos.noaa.gov/copyright/" +} diff --git a/data/assets/scene/solarsystem/planets/earth/noaa-sos/models/rcp-ga26.asset b/data/assets/scene/solarsystem/planets/earth/noaa-sos/models/rcp-ga26.asset new file mode 100644 index 0000000000..3937970d3d --- /dev/null +++ b/data/assets/scene/solarsystem/planets/earth/noaa-sos/models/rcp-ga26.asset @@ -0,0 +1,70 @@ +local globeIdentifier = asset.require("../../earth").Earth.Identifier + + +local Name = "Climate Model: Temperature Change (RCP 2.6) - 2006 - 2100" +local Identifier = "noaa-sos-models-rcp-ga26" +local Description = [[ Climate models are used for a variety of purposes from the study +of dynamics of the weather and climate system to projections of future climate. ]] +local URL = "https://sos.noaa.gov/catalog/datasets/climate-model-temperature-change-rcp-26-2006-2100/" + + +local syncedDirectory = asset.syncedResource({ + Name = Name, + Type = "HttpSynchronization", + Identifier = Identifier, + Version = 1 +}) + +local imagesDestination = syncedDirectory .. "images" + +local layer = { + Identifier = Identifier, + Name = Name, + Type = "TemporalTileLayer", + Mode = "Folder", + Folder = { + Folder = imagesDestination, + -- See https://en.cppreference.com/w/cpp/io/manip/get_time for an explanation of the + -- time formatting string + Format = "GA26.yearly.%Y.color.png" + }, + Description = Description +} + +local colorbar = { + Identifier = Identifier, + Name = Name, + Type = "ScreenSpaceImageLocal", + TexturePath = syncedDirectory .. "ANOM.colorbar.png", + FaceCamera = false, + BackgroundColor = { 1.0, 1.0, 1.0, 1.0 }, + CartesianPosition = { 1.0, -0.5, -2.0 } +} + +asset.onInitialize(function() + if not openspace.directoryExists(imagesDestination) then + openspace.printInfo("Extracting " .. Name) + openspace.unzipFile(syncedDirectory .. "4096.zip", imagesDestination, true) + end + + openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer) + openspace.addScreenSpaceRenderable(colorbar); +end) + +asset.onDeinitialize(function() + openspace.globebrowsing.deleteLayer(globeIdentifier, "ColorLayers", layer) + openspace.removeScreenSpaceRenderable(colorbar) +end) + +asset.export(layer) +asset.export(colorbar) + + +asset.meta = { + Name = Name, + Version = "1.0", + Description = Description .. "Data provided by the National Oceanic and Atmospheric Administration.", + Author = "National Oceanic and Atmospheric Administration", + URL = URL, + License = "https://sos.noaa.gov/copyright/" +} diff --git a/data/assets/scene/solarsystem/planets/earth/noaa-sos/models/rcp-ga45.asset b/data/assets/scene/solarsystem/planets/earth/noaa-sos/models/rcp-ga45.asset new file mode 100644 index 0000000000..15a2fc61d6 --- /dev/null +++ b/data/assets/scene/solarsystem/planets/earth/noaa-sos/models/rcp-ga45.asset @@ -0,0 +1,70 @@ +local globeIdentifier = asset.require("../../earth").Earth.Identifier + + +local Name = "Climate Model: Temperature Change (RCP 4.5) - 2006 - 2100" +local Identifier = "noaa-sos-models-rcp-ga45" +local Description = [[ Climate models are used for a variety of purposes from the study +of dynamics of the weather and climate system to projections of future climate. ]] +local URL = "https://sos.noaa.gov/catalog/datasets/climate-model-temperature-change-rcp-45-2006-2100/" + + +local syncedDirectory = asset.syncedResource({ + Name = Name, + Type = "HttpSynchronization", + Identifier = Identifier, + Version = 1 +}) + +local imagesDestination = syncedDirectory .. "images" + +local layer = { + Identifier = Identifier, + Name = Name, + Type = "TemporalTileLayer", + Mode = "Folder", + Folder = { + Folder = imagesDestination, + -- See https://en.cppreference.com/w/cpp/io/manip/get_time for an explanation of the + -- time formatting string + Format = "GA45.yearly.%Y.color.png" + }, + Description = Description +} + +local colorbar = { + Identifier = Identifier, + Name = Name, + Type = "ScreenSpaceImageLocal", + TexturePath = syncedDirectory .. "ANOM.colorbar.png", + FaceCamera = false, + BackgroundColor = { 1.0, 1.0, 1.0, 1.0 }, + CartesianPosition = { 1.0, -0.5, -2.0 } +} + +asset.onInitialize(function() + if not openspace.directoryExists(imagesDestination) then + openspace.printInfo("Extracting " .. Name) + openspace.unzipFile(syncedDirectory .. "4096.zip", imagesDestination, true) + end + + openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer) + openspace.addScreenSpaceRenderable(colorbar); +end) + +asset.onDeinitialize(function() + openspace.globebrowsing.deleteLayer(globeIdentifier, "ColorLayers", layer) + openspace.removeScreenSpaceRenderable(colorbar) +end) + +asset.export(layer) +asset.export(colorbar) + + +asset.meta = { + Name = Name, + Version = "1.0", + Description = Description .. "Data provided by the National Oceanic and Atmospheric Administration.", + Author = "National Oceanic and Atmospheric Administration", + URL = URL, + License = "https://sos.noaa.gov/copyright/" +} diff --git a/data/assets/scene/solarsystem/planets/earth/noaa-sos/models/rcp-ga60.asset b/data/assets/scene/solarsystem/planets/earth/noaa-sos/models/rcp-ga60.asset new file mode 100644 index 0000000000..c36dd41856 --- /dev/null +++ b/data/assets/scene/solarsystem/planets/earth/noaa-sos/models/rcp-ga60.asset @@ -0,0 +1,70 @@ +local globeIdentifier = asset.require("../../earth").Earth.Identifier + + +local Name = "Climate Model: Temperature Change (RCP 6.0) - 2006 - 2100" +local Identifier = "noaa-sos-models-rcp-ga60" +local Description = [[ Climate models are used for a variety of purposes from the study +of dynamics of the weather and climate system to projections of future climate. ]] +local URL = "https://sos.noaa.gov/catalog/datasets/climate-model-temperature-change-rcp-60-2006-2100/" + + +local syncedDirectory = asset.syncedResource({ + Name = Name, + Type = "HttpSynchronization", + Identifier = Identifier, + Version = 1 +}) + +local imagesDestination = syncedDirectory .. "images" + +local layer = { + Identifier = Identifier, + Name = Name, + Type = "TemporalTileLayer", + Mode = "Folder", + Folder = { + Folder = imagesDestination, + -- See https://en.cppreference.com/w/cpp/io/manip/get_time for an explanation of the + -- time formatting string + Format = "GA60.yearly.%Y.color.png" + }, + Description = Description +} + +local colorbar = { + Identifier = Identifier, + Name = Name, + Type = "ScreenSpaceImageLocal", + TexturePath = syncedDirectory .. "ANOM.colorbar.png", + FaceCamera = false, + BackgroundColor = { 1.0, 1.0, 1.0, 1.0 }, + CartesianPosition = { 1.0, -0.5, -2.0 } +} + +asset.onInitialize(function() + if not openspace.directoryExists(imagesDestination) then + openspace.printInfo("Extracting " .. Name) + openspace.unzipFile(syncedDirectory .. "4096.zip", imagesDestination, true) + end + + openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer) + openspace.addScreenSpaceRenderable(colorbar); +end) + +asset.onDeinitialize(function() + openspace.globebrowsing.deleteLayer(globeIdentifier, "ColorLayers", layer) + openspace.removeScreenSpaceRenderable(colorbar) +end) + +asset.export(layer) +asset.export(colorbar) + + +asset.meta = { + Name = Name, + Version = "1.0", + Description = Description .. "Data provided by the National Oceanic and Atmospheric Administration.", + Author = "National Oceanic and Atmospheric Administration", + URL = URL, + License = "https://sos.noaa.gov/copyright/" +} diff --git a/data/assets/scene/solarsystem/planets/earth/noaa-sos/models/rcp-ga85.asset b/data/assets/scene/solarsystem/planets/earth/noaa-sos/models/rcp-ga85.asset new file mode 100644 index 0000000000..1a87c5d5f8 --- /dev/null +++ b/data/assets/scene/solarsystem/planets/earth/noaa-sos/models/rcp-ga85.asset @@ -0,0 +1,70 @@ +local globeIdentifier = asset.require("../../earth").Earth.Identifier + + +local Name = "Climate Model: Temperature Change (RCP 8.5) - 2006 - 2100" +local Identifier = "noaa-sos-models-rcp-ga85" +local Description = [[ Climate models are used for a variety of purposes from the study +of dynamics of the weather and climate system to projections of future climate. ]] +local URL = "https://sos.noaa.gov/catalog/datasets/climate-model-temperature-change-rcp-85-2006-2100/" + + +local syncedDirectory = asset.syncedResource({ + Name = Name, + Type = "HttpSynchronization", + Identifier = Identifier, + Version = 1 +}) + +local imagesDestination = syncedDirectory .. "images" + +local layer = { + Identifier = Identifier, + Name = Name, + Type = "TemporalTileLayer", + Mode = "Folder", + Folder = { + Folder = imagesDestination, + -- See https://en.cppreference.com/w/cpp/io/manip/get_time for an explanation of the + -- time formatting string + Format = "GA85.yearly.%Y.color.png" + }, + Description = Description +} + +local colorbar = { + Identifier = Identifier, + Name = Name, + Type = "ScreenSpaceImageLocal", + TexturePath = syncedDirectory .. "ANOM.colorbar.png", + FaceCamera = false, + BackgroundColor = { 1.0, 1.0, 1.0, 1.0 }, + CartesianPosition = { 1.0, -0.5, -2.0 } +} + +asset.onInitialize(function() + if not openspace.directoryExists(imagesDestination) then + openspace.printInfo("Extracting " .. Name) + openspace.unzipFile(syncedDirectory .. "4096.zip", imagesDestination, true) + end + + openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer) + openspace.addScreenSpaceRenderable(colorbar); +end) + +asset.onDeinitialize(function() + openspace.globebrowsing.deleteLayer(globeIdentifier, "ColorLayers", layer) + openspace.removeScreenSpaceRenderable(colorbar) +end) + +asset.export(layer) +asset.export(colorbar) + + +asset.meta = { + Name = Name, + Version = "1.0", + Description = Description .. "Data provided by the National Oceanic and Atmospheric Administration.", + Author = "National Oceanic and Atmospheric Administration", + URL = URL, + License = "https://sos.noaa.gov/copyright/" +} diff --git a/data/assets/scene/solarsystem/planets/earth/noaa-sos/models/ukmet-a1b.asset b/data/assets/scene/solarsystem/planets/earth/noaa-sos/models/ukmet-a1b.asset new file mode 100644 index 0000000000..ed55a2abac --- /dev/null +++ b/data/assets/scene/solarsystem/planets/earth/noaa-sos/models/ukmet-a1b.asset @@ -0,0 +1,78 @@ +local globeIdentifier = asset.require("../../earth").Earth.Identifier + + +local Name = "Climate Model: Temperature Change (Hadley a1b) - 1860 - 2099" +local Identifier = "noaa-sos-models-ukmet-a1b" +local Description = [[ cientists use computer climate models as a way to understand how +the climate has behaved in the past and how it is likely to change in the future. +Scientists use different scenarios to allow them to evaluate all the different future +possibilities for the climate. The United Kingdom Met Office Hadley Centre has created +two datasets for Science On a Sphere, using two different scenarios. The first scenario, +A1B-IMAGE, assumes a "business-as-usual" path forward in the future with continually +increasing carbon dioxide rates. In this scenario, CO2 rises to 774ppm by 2099 and the +global mean temperature increases by 4.41°C. The second scenario, E1, is an aggressive +mitigation scenario that includes reduced fossil fuel use with the goal of keeping global +mean warming below 2°C. In the E1 scenario, carbon dioxide increases to 435ppm by 2050 +and then drops to 421ppm by 2099, with a global mean temperature increase of 2.12°C. ]] +local URL = "https://sos.noaa.gov/catalog/datasets/climate-model-temperature-change-hadley-a1b-1860-2099/" + + +local syncedDirectory = asset.syncedResource({ + Name = Name, + Type = "HttpSynchronization", + Identifier = Identifier, + Version = 1 +}) + +local imagesDestination = syncedDirectory .. "images" + +local layer = { + Identifier = Identifier, + Name = Name, + Type = "TemporalTileLayer", + Mode = "Folder", + Folder = { + Folder = imagesDestination, + -- See https://en.cppreference.com/w/cpp/io/manip/get_time for an explanation of the + -- time formatting string + Format = "000_%Y_1_A1B_HQ.png" + }, + Description = Description +} + +local colorbar = { + Identifier = Identifier, + Name = Name, + Type = "ScreenSpaceImageLocal", + TexturePath = syncedDirectory .. "colorbar.png", + FaceCamera = false, + CartesianPosition = { 0.0, -0.5, -2.0 } +} + +asset.onInitialize(function() + if not openspace.directoryExists(imagesDestination) then + openspace.printInfo("Extracting " .. Name) + openspace.unzipFile(syncedDirectory .. "2100.zip", imagesDestination, true) + end + + openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer) + openspace.addScreenSpaceRenderable(colorbar); +end) + +asset.onDeinitialize(function() + openspace.globebrowsing.deleteLayer(globeIdentifier, "ColorLayers", layer) + openspace.removeScreenSpaceRenderable(colorbar) +end) + +asset.export(layer) +asset.export(colorbar) + + +asset.meta = { + Name = Name, + Version = "1.0", + Description = Description .. "Data provided by the National Oceanic and Atmospheric Administration.", + Author = "National Oceanic and Atmospheric Administration", + URL = URL, + License = "https://sos.noaa.gov/copyright/" +} diff --git a/data/assets/scene/solarsystem/planets/earth/noaa-sos/models/ukmet-e1.asset b/data/assets/scene/solarsystem/planets/earth/noaa-sos/models/ukmet-e1.asset new file mode 100644 index 0000000000..d40e6dca9b --- /dev/null +++ b/data/assets/scene/solarsystem/planets/earth/noaa-sos/models/ukmet-e1.asset @@ -0,0 +1,78 @@ +local globeIdentifier = asset.require("../../earth").Earth.Identifier + + +local Name = "Climate Model: Temperature Change (Hadley e1) - 1860 - 2099" +local Identifier = "noaa-sos-models-ukmet-e1" +local Description = [[ Scientists use computer climate models as a way to understand how +the climate has behaved in the past and how it is likely to change in the future. +Scientists use different scenarios to allow them to evaluate all the different future +possibilities for the climate. The United Kingdom Met Office Hadley Centre has created +two datasets for Science On a Sphere, using two different scenarios. The first scenario, +A1B-IMAGE, assumes a "business-as-usual" path forward in the future with continually +increasing carbon dioxide rates. In this scenario, CO2 rises to 774ppm by 2099 and the +global mean temperature increases by 4.41°C. The second scenario, E1, is an aggressive +mitigation scenario that includes reduced fossil fuel use with the goal of keeping global +mean warming below 2°C. In the E1 scenario, carbon dioxide increases to 435ppm by 2050 +and then drops to 421ppm by 2099, with a global mean temperature increase of 2.12°C. ]] +local URL = "https://sos.noaa.gov/catalog/datasets/climate-model-temperature-change-hadley-e1-1860-2099/" + + +local syncedDirectory = asset.syncedResource({ + Name = Name, + Type = "HttpSynchronization", + Identifier = Identifier, + Version = 1 +}) + +local imagesDestination = syncedDirectory .. "images" + +local layer = { + Identifier = Identifier, + Name = Name, + Type = "TemporalTileLayer", + Mode = "Folder", + Folder = { + Folder = imagesDestination, + -- See https://en.cppreference.com/w/cpp/io/manip/get_time for an explanation of the + -- time formatting string + Format = "000_%Y_1_E1_HQ.png" + }, + Description = Description +} + +local colorbar = { + Identifier = Identifier, + Name = Name, + Type = "ScreenSpaceImageLocal", + TexturePath = syncedDirectory .. "colorbar.png", + FaceCamera = false, + CartesianPosition = { 0.0, -0.5, -2.0 } +} + +asset.onInitialize(function() + if not openspace.directoryExists(imagesDestination) then + openspace.printInfo("Extracting " .. Name) + openspace.unzipFile(syncedDirectory .. "2100.zip", imagesDestination, true) + end + + openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer) + openspace.addScreenSpaceRenderable(colorbar); +end) + +asset.onDeinitialize(function() + openspace.globebrowsing.deleteLayer(globeIdentifier, "ColorLayers", layer) + openspace.removeScreenSpaceRenderable(colorbar) +end) + +asset.export(layer) +asset.export(colorbar) + + +asset.meta = { + Name = Name, + Version = "1.0", + Description = Description .. "Data provided by the National Oceanic and Atmospheric Administration.", + Author = "National Oceanic and Atmospheric Administration", + URL = URL, + License = "https://sos.noaa.gov/copyright/" +} diff --git a/data/assets/scene/solarsystem/planets/earth/noaa-sos/oceans/2009_ice_animation.asset b/data/assets/scene/solarsystem/planets/earth/noaa-sos/oceans/2009_ice_animation.asset new file mode 100644 index 0000000000..56b4d6b7fd --- /dev/null +++ b/data/assets/scene/solarsystem/planets/earth/noaa-sos/oceans/2009_ice_animation.asset @@ -0,0 +1,96 @@ +local globeIdentifier = asset.require("../../earth").Earth.Identifier + + +local Name = "Sea Ice Animation - 2009" +local Identifier = "noaa-sos-oceans-2009_ice_animation" +local Description = [[ Sea ice is simply ocean water that has frozen. At least 15% of the +ocean is covered by sea ice some part of the year. This means that on average, sea ice +covers almost 10 million square miles (about 25 million square kilometers) of the Earth. +Sea ice concentrations are monitored closely by scientists because changing sea ice +concentrations can have a huge impact on the rest of the globe. Global warming is +amplified in polar regions. Because of this, monitoring changes in sea ice can be a good +indicator of climate change. The Global Snow and Ice Cover Map that is used in this +dataset is created from a combination of observations from NOAA Advanced Very High +Resolution Radiometer, Meteosat Second Generation Satellite Spectral Response +Characterisation, GOES Imager and Defense Meteorological Satellite Program Special Sensor +Microwave/Imager. The resolution is 2 km. ]] +local URL = "https://sos.noaa.gov/catalog/datasets/sea-ice-animation-2009/" + + +local syncedDirectory = asset.syncedResource({ + Name = Name, + Type = "HttpSynchronization", + Identifier = Identifier, + Version = 1 +}) + +local imagesDestination = syncedDirectory .. "images" + +local layer = { + Identifier = Identifier, + Name = Name, + Type = "ImageSequenceTileLayer", + FolderPath = imagesDestination, + Description = Description +} + +local colorbar_2007_2009 = { + Identifier = Identifier .. "-2007_2009", + Name = Name .. " (2007-2009 Compare)", + Type = "ScreenSpaceImageLocal", + TexturePath = syncedDirectory .. "2007-2009-Compare.png", + FaceCamera = false, + CartesianPosition = { -0.85, -0.5, -2.0 } +} + +local colorbar_2008_minimum = { + Identifier = Identifier .. "-2008_minimum", + Name = Name .. " (2008 Minimum)", + Type = "ScreenSpaceImageLocal", + TexturePath = syncedDirectory .. "2008-Minimum-Label.png", + FaceCamera = false, + CartesianPosition = { 0.6, -0.4, -2.0 } +} + +local colorbar_2009_iceconcentration = { + Identifier = Identifier .. "-2009_iceconcentration", + Name = Name .. " (2009 Ice Concentration)", + Type = "ScreenSpaceImageLocal", + TexturePath = syncedDirectory .. "2009-IceConcentration-Label.png", + FaceCamera = false, + CartesianPosition = { 0.6, -0.6, -2.0 } +} + +asset.onInitialize(function() + if not openspace.directoryExists(imagesDestination) then + openspace.printInfo("Extracting " .. Name) + openspace.unzipFile(syncedDirectory .. "4096.zip", imagesDestination, true) + end + + openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer) + openspace.addScreenSpaceRenderable(colorbar_2007_2009); + openspace.addScreenSpaceRenderable(colorbar_2008_minimum); + openspace.addScreenSpaceRenderable(colorbar_2009_iceconcentration); +end) + +asset.onDeinitialize(function() + openspace.globebrowsing.deleteLayer(globeIdentifier, "ColorLayers", layer) + openspace.removeScreenSpaceRenderable(colorbar_2007_2009) + openspace.removeScreenSpaceRenderable(colorbar_2008_minimum) + openspace.removeScreenSpaceRenderable(colorbar_2009_iceconcentration) +end) + +asset.export(layer) +asset.export(colorbar_2007_2009) +asset.export(colorbar_2008_minimum) +asset.export(colorbar_2009_iceconcentration) + + +asset.meta = { + Name = Name, + Version = "1.0", + Description = Description .. "Data provided by the National Oceanic and Atmospheric Administration.", + Author = "National Oceanic and Atmospheric Administration", + URL = URL, + License = "https://sos.noaa.gov/copyright/" +} diff --git a/data/assets/scene/solarsystem/planets/earth/noaa-sos/oceans/6m_sea_level_rise-black.asset b/data/assets/scene/solarsystem/planets/earth/noaa-sos/oceans/6m_sea_level_rise-black.asset new file mode 100644 index 0000000000..a020cee489 --- /dev/null +++ b/data/assets/scene/solarsystem/planets/earth/noaa-sos/oceans/6m_sea_level_rise-black.asset @@ -0,0 +1,115 @@ +local globeIdentifier = asset.require("../../earth").Earth.Identifier + + +local Name = "Sea Level Rise: Impact of 6 meter (black)" +local Identifier = "noaa-sos-oceans-6m_sea_level_rise-black" +local Description = [[ There are many questions surrounding climate change. One big +question is how the changing climate will affect the oceans. The sea level has been +steadily rising since 1900 at a rate of 1 to 2.5 millimeters per year. In fact, since +1992 new methods of satellite altimetry using the TOPEX/Poseidon satellite indicate a +rate of rise of 3 millimeters per year. The Fourth Assessment Report from the IPCC states +that "there is strong evidence that global sea level gradually rose in the 20th century +and is currently rising at an increased rate, after a period of little change between AD +0 and AD 1900. Sea level is projected to rise at an even greater rate in this century. " +- Fourth Assessment Report on Sea Level Rise Sea level can rise by two different +mechanisms with respect to climate change. The first is the expansion of the sea water as +the oceans warm due to an increasing global temperature. The second mechanism is the +melting of ice over land, which then adds water to the ocean. The IPCC Fourth Assessment +Report predicts that total global-average sea level rise from 1990 - 2100 will be 7 - 15 +inches for low emission scenarios and 10 - 23 inches for high emission scenarios. ]] +local URL = "https://sos.noaa.gov/catalog/datasets/sea-level-rise-impact-of-6-meter-black/" + + +local syncedDirectory = asset.syncedResource({ + Name = Name, + Type = "HttpSynchronization", + Identifier = Identifier, + Version = 1 +}) + +local layer_0m = { + Identifier = Identifier .. "-0m", + Name = Name .. " (0m)", + FilePath = syncedDirectory .. "0m-new.png", + Description = Description +} + +local layer_1m = { + Identifier = Identifier .. "-1m", + Name = Name .. " (1m)", + FilePath = syncedDirectory .. "1m-new.png", + Description = Description +} + +local layer_2m = { + Identifier = Identifier .. "-2m", + Name = Name .. " (2m)", + FilePath = syncedDirectory .. "2m-new.png", + Description = Description +} + +local layer_3m = { + Identifier = Identifier .. "-3m", + Name = Name .. " (3m)", + FilePath = syncedDirectory .. "3m-new.png", + Description = Description +} + +local layer_4m = { + Identifier = Identifier .. "-4m", + Name = Name .. " (4m)", + FilePath = syncedDirectory .. "4m-new.png", + Description = Description +} + +local layer_5m = { + Identifier = Identifier .. "-5m", + Name = Name .. " (5m)", + FilePath = syncedDirectory .. "5m-new.png", + Description = Description +} + +local layer_6m = { + Identifier = Identifier .. "-6m", + Name = Name .. " (6m)", + FilePath = syncedDirectory .. "6m-new.png", + Description = Description +} + +asset.onInitialize(function() + openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer_0m) + openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer_1m) + openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer_2m) + openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer_3m) + openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer_4m) + openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer_5m) + openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer_6m) +end) + +asset.onDeinitialize(function() + openspace.globebrowsing.deleteLayer(globeIdentifier, "ColorLayers", layer_0m) + openspace.globebrowsing.deleteLayer(globeIdentifier, "ColorLayers", layer_1m) + openspace.globebrowsing.deleteLayer(globeIdentifier, "ColorLayers", layer_2m) + openspace.globebrowsing.deleteLayer(globeIdentifier, "ColorLayers", layer_3m) + openspace.globebrowsing.deleteLayer(globeIdentifier, "ColorLayers", layer_4m) + openspace.globebrowsing.deleteLayer(globeIdentifier, "ColorLayers", layer_5m) + openspace.globebrowsing.deleteLayer(globeIdentifier, "ColorLayers", layer_6m) +end) + +asset.export(layer_0m) +asset.export(layer_1m) +asset.export(layer_2m) +asset.export(layer_3m) +asset.export(layer_4m) +asset.export(layer_5m) +asset.export(layer_6m) + + +asset.meta = { + Name = Name, + Version = "1.0", + Description = Description .. "Data provided by the National Oceanic and Atmospheric Administration.", + Author = "National Oceanic and Atmospheric Administration", + URL = URL, + License = "https://sos.noaa.gov/copyright/" +} diff --git a/data/assets/scene/solarsystem/planets/earth/noaa-sos/oceans/6m_sea_level_rise-red.asset b/data/assets/scene/solarsystem/planets/earth/noaa-sos/oceans/6m_sea_level_rise-red.asset new file mode 100644 index 0000000000..f98f0c3ebd --- /dev/null +++ b/data/assets/scene/solarsystem/planets/earth/noaa-sos/oceans/6m_sea_level_rise-red.asset @@ -0,0 +1,115 @@ +local globeIdentifier = asset.require("../../earth").Earth.Identifier + + +local Name = "Sea Level Rise: Impact of 6 meter (red)" +local Identifier = "noaa-sos-oceans-6m_sea_level_rise-red" +local Description = [[ There are many questions surrounding climate change. One big +question is how the changing climate will affect the oceans. The sea level has been +steadily rising since 1900 at a rate of 1 to 2.5 millimeters per year. In fact, since +1992 new methods of satellite altimetry using the TOPEX/Poseidon satellite indicate a +rate of rise of 3 millimeters per year. The Fourth Assessment Report from the IPCC states +that "there is strong evidence that global sea level gradually rose in the 20th century +and is currently rising at an increased rate, after a period of little change between AD +0 and AD 1900. Sea level is projected to rise at an even greater rate in this century. " +- Fourth Assessment Report on Sea Level Rise Sea level can rise by two different +mechanisms with respect to climate change. The first is the expansion of the sea water as +the oceans warm due to an increasing global temperature. The second mechanism is the +melting of ice over land, which then adds water to the ocean. The IPCC Fourth Assessment +Report predicts that total global-average sea level rise from 1990 - 2100 will be 7 - +15 inches for low emission scenarios and 10 - 23 inches for high emission scenarios. ]] +local URL = "https://sos.noaa.gov/catalog/datasets/sea-level-rise-impact-of-6-meter-red/" + + +local syncedDirectory = asset.syncedResource({ + Name = Name, + Type = "HttpSynchronization", + Identifier = Identifier, + Version = 1 +}) + +local layer_0m = { + Identifier = Identifier .. "-0m", + Name = Name .. " (0m)", + FilePath = syncedDirectory .. "0m-new.png", + Description = Description +} + +local layer_1m = { + Identifier = Identifier .. "-1m", + Name = Name .. " (1m)", + FilePath = syncedDirectory .. "1m-new.png", + Description = Description +} + +local layer_2m = { + Identifier = Identifier .. "-2m", + Name = Name .. " (2m)", + FilePath = syncedDirectory .. "2m-new.png", + Description = Description +} + +local layer_3m = { + Identifier = Identifier .. "-3m", + Name = Name .. " (3m)", + FilePath = syncedDirectory .. "3m-new.png", + Description = Description +} + +local layer_4m = { + Identifier = Identifier .. "-4m", + Name = Name .. " (4m)", + FilePath = syncedDirectory .. "4m-new.png", + Description = Description +} + +local layer_5m = { + Identifier = Identifier .. "-5m", + Name = Name .. " (5m)", + FilePath = syncedDirectory .. "5m-new.png", + Description = Description +} + +local layer_6m = { + Identifier = Identifier .. "-6m", + Name = Name .. " (6m)", + FilePath = syncedDirectory .. "6m-new.png", + Description = Description +} + +asset.onInitialize(function() + openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer_0m) + openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer_1m) + openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer_2m) + openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer_3m) + openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer_4m) + openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer_5m) + openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer_6m) +end) + +asset.onDeinitialize(function() + openspace.globebrowsing.deleteLayer(globeIdentifier, "ColorLayers", layer_0m) + openspace.globebrowsing.deleteLayer(globeIdentifier, "ColorLayers", layer_1m) + openspace.globebrowsing.deleteLayer(globeIdentifier, "ColorLayers", layer_2m) + openspace.globebrowsing.deleteLayer(globeIdentifier, "ColorLayers", layer_3m) + openspace.globebrowsing.deleteLayer(globeIdentifier, "ColorLayers", layer_4m) + openspace.globebrowsing.deleteLayer(globeIdentifier, "ColorLayers", layer_5m) + openspace.globebrowsing.deleteLayer(globeIdentifier, "ColorLayers", layer_6m) +end) + +asset.export(layer_0m) +asset.export(layer_1m) +asset.export(layer_2m) +asset.export(layer_3m) +asset.export(layer_4m) +asset.export(layer_5m) +asset.export(layer_6m) + + +asset.meta = { + Name = Name, + Version = "1.0", + Description = Description .. "Data provided by the National Oceanic and Atmospheric Administration.", + Author = "National Oceanic and Atmospheric Administration", + URL = URL, + License = "https://sos.noaa.gov/copyright/" +} diff --git a/data/assets/scene/solarsystem/planets/earth/noaa-sos/oceans/animal_tracking.asset b/data/assets/scene/solarsystem/planets/earth/noaa-sos/oceans/animal_tracking.asset new file mode 100644 index 0000000000..7ca47aafb2 --- /dev/null +++ b/data/assets/scene/solarsystem/planets/earth/noaa-sos/oceans/animal_tracking.asset @@ -0,0 +1,75 @@ +local globeIdentifier = asset.require("../../earth").Earth.Identifier + + +local Name = "Seal and Seabird Tracks: Pacific Ocean" +local Identifier = "noaa-sos-oceans-animal_tracking" +local Description = [[ "TOPP, Tagging of the Pacific Predators, began in 2000 as one of +17 projects of the Census of Marine Life, an ambitios 10-year, 80-nation endeavor to +assess and explain the diversity and abundance of life in the oceans, and where that life +has lived, is living, and will live." - From TOPP website . Out of this came the Tagging +of the Pacific Pelagics Project. Pelagaics are open ocean species such as sea birds and +elephant seals. Scientists put satellite tags on animals that collect information about +position, ocean temperature, pressure, salinity and more! This allows scientists to +better understand the migration patterns and habits of these animals. ]] +local URL = "https://sos.noaa.gov/catalog/datasets/seal-and-seabird-tracks-pacific-ocean/" + + +local syncedDirectory = asset.syncedResource({ + Name = Name, + Type = "HttpSynchronization", + Identifier = Identifier, + Version = 1 +}) + +local imagesDestination = syncedDirectory .. "images" + +local layer = { + Identifier = Identifier, + Name = Name, + Type = "TemporalTileLayer", + Mode = "Folder", + Folder = { + Folder = imagesDestination, + -- See https://en.cppreference.com/w/cpp/io/manip/get_time for an explanation of the + -- time formatting string + Format = "TOPPMOVIE.%Y-%m-%d.png" + }, + Description = Description +} + +local colorbar = { + Identifier = Identifier, + Name = Name, + Type = "ScreenSpaceImageLocal", + TexturePath = syncedDirectory .. "colorbar.jpg", + FaceCamera = false, + CartesianPosition = { 0.85, 0.0, -2.0 } +} + +asset.onInitialize(function() + if not openspace.directoryExists(imagesDestination) then + openspace.printInfo("Extracting " .. Name) + openspace.unzipFile(syncedDirectory .. "4096.zip", imagesDestination, true) + end + + openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer) + openspace.addScreenSpaceRenderable(colorbar); +end) + +asset.onDeinitialize(function() + openspace.globebrowsing.deleteLayer(globeIdentifier, "ColorLayers", layer) + openspace.removeScreenSpaceRenderable(colorbar) +end) + +asset.export(layer) +asset.export(colorbar) + + +asset.meta = { + Name = Name, + Version = "1.0", + Description = Description .. "Data provided by the National Oceanic and Atmospheric Administration.", + Author = "National Oceanic and Atmospheric Administration", + URL = URL, + License = "https://sos.noaa.gov/copyright/" +} diff --git a/data/assets/scene/solarsystem/planets/earth/noaa-sos/oceans/argo_buoy_tracks.asset b/data/assets/scene/solarsystem/planets/earth/noaa-sos/oceans/argo_buoy_tracks.asset new file mode 100644 index 0000000000..df5f378fec --- /dev/null +++ b/data/assets/scene/solarsystem/planets/earth/noaa-sos/oceans/argo_buoy_tracks.asset @@ -0,0 +1,71 @@ +local globeIdentifier = asset.require("../../earth").Earth.Identifier + + +local Name = "Float Tracks: Argo (buoy surface animation)" +local Identifier = "noaa-sos-oceans-argo_buoy_tracks" +local Description = [[ "Argo is a global array of 3,000 free-drifting profiling floats +that measures the temperature and salinity of the upper 2000 m of the ocean. This allows, +for the first time, continuous monitoring of the temperature, salinity, and velocity of +the upper ocean, with all data being relayed and made publicly available within hours +after collection." - from the Argo website. In Greek mythology, Jason sailed on the ship +Argo to capture a golden fleece. In the world of oceanography, Jason is a satellite +altimeter that allows scientists to measure the heights of the ocean surfaces. This +worldwide buoy program was named Argo because the data from the Jason project and from +this buoy project will be used together in computer models to help forecast ocean +climate. ]] +local URL = "https://sos.noaa.gov/catalog/datasets/float-tracks-argo-buoy-surface-animation/" + + +local syncedDirectory = asset.syncedResource({ + Name = Name, + Type = "HttpSynchronization", + Identifier = Identifier, + Version = 1 +}) + +local imagesDestination = syncedDirectory .. "images" + +local layer = { + Identifier = Identifier, + Name = Name, + Type = "ImageSequenceTileLayer", + FolderPath = imagesDestination, + Description = Description +} + +local buoy = { + Identifier = Identifier, + Name = Name, + Type = "ScreenSpaceImageLocal", + TexturePath = syncedDirectory .. "argobuoy.jpg", + FaceCamera = false, + CartesianPosition = { 0.0, -0.25, -2.0 } +} + +asset.onInitialize(function() + if not openspace.directoryExists(imagesDestination) then + openspace.printInfo("Extracting " .. Name) + openspace.unzipFile(syncedDirectory .. "4096.zip", imagesDestination, true) + end + + openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer) + openspace.addScreenSpaceRenderable(buoy); +end) + +asset.onDeinitialize(function() + openspace.globebrowsing.deleteLayer(globeIdentifier, "ColorLayers", layer) + openspace.removeScreenSpaceRenderable(buoy) +end) + +asset.export(layer) +asset.export(buoy) + + +asset.meta = { + Name = Name, + Version = "1.0", + Description = Description .. "Data provided by the National Oceanic and Atmospheric Administration.", + Author = "National Oceanic and Atmospheric Administration", + URL = URL, + License = "https://sos.noaa.gov/copyright/" +} diff --git a/data/assets/scene/solarsystem/planets/earth/noaa-sos/oceans/argo_buoy_waterfall.asset b/data/assets/scene/solarsystem/planets/earth/noaa-sos/oceans/argo_buoy_waterfall.asset new file mode 100644 index 0000000000..b356232df7 --- /dev/null +++ b/data/assets/scene/solarsystem/planets/earth/noaa-sos/oceans/argo_buoy_waterfall.asset @@ -0,0 +1,59 @@ +local globeIdentifier = asset.require("../../earth").Earth.Identifier + + +local Name = "Float Tracks: Argo (buoy depths animation)" +local Identifier = "noaa-sos-oceans-argo_buoy_waterfall" +local Description = [[ "Argo is a global array of 3,000 free-drifting profiling floats +that measures the temperature and salinity of the upper 2000 m of the ocean. This allows, +for the first time, continuous monitoring of the temperature, salinity, and velocity of +the upper ocean, with all data being relayed and made publicly available within hours +after collection." - from the Argo website. In Greek mythology, Jason sailed on the ship +Argo to capture a golden fleece. In the world of oceanography, Jason is a satellite +altimeter that allows scientists to measure the heights of the ocean surfaces. This +worldwide buoy program was named Argo because the data from the Jason project and from +this buoy project will be used together in computer models to help forecast ocean +climate. ]] +local URL = "https://sos.noaa.gov/catalog/datasets/float-tracks-argo-buoy-depths-animation/" + + +local syncedDirectory = asset.syncedResource({ + Name = Name, + Type = "HttpSynchronization", + Identifier = Identifier, + Version = 1 +}) + +local imagesDestination = syncedDirectory .. "images" + +local layer = { + Identifier = Identifier, + Name = Name, + Type = "ImageSequenceTileLayer", + FolderPath = imagesDestination, + Description = Description +} + +asset.onInitialize(function() + if not openspace.directoryExists(imagesDestination) then + openspace.printInfo("Extracting " .. Name) + openspace.unzipFile(syncedDirectory .. "4096.zip", imagesDestination, true) + end + + openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer) +end) + +asset.onDeinitialize(function() + openspace.globebrowsing.deleteLayer(globeIdentifier, "ColorLayers", layer) +end) + +asset.export(layer) + + +asset.meta = { + Name = Name, + Version = "1.0", + Description = Description .. "Data provided by the National Oceanic and Atmospheric Administration.", + Author = "National Oceanic and Atmospheric Administration", + URL = URL, + License = "https://sos.noaa.gov/copyright/" +} diff --git a/data/assets/scene/solarsystem/planets/earth/noaa-sos/oceans/atl_turtle.asset b/data/assets/scene/solarsystem/planets/earth/noaa-sos/oceans/atl_turtle.asset new file mode 100644 index 0000000000..7b4b286cd1 --- /dev/null +++ b/data/assets/scene/solarsystem/planets/earth/noaa-sos/oceans/atl_turtle.asset @@ -0,0 +1,65 @@ +local globeIdentifier = asset.require("../../earth").Earth.Identifier + + +local Name = "Sea Turtle Track: Atlantic Ocean" +local Identifier = "noaa-sos-oceans-atl_turtle" +local Description = [[ The Virginia Institute of Marine Science found a sub-adult +juvenile loggerhead (Caretta caretta) sea turtle stranded off of Deltaville, Virginia +along the western Chesapeake Bay in July 2004. The sea turtle, appropriately named Delta +for the location where s/he was found stranded, had a broken left flipper and a severe +head injury most likely from a collision with a boat propeller. Delta was transferred to +the Virginia Aquarium Stranding Program for rehabilitation. After many months of recovery +and head surgery, Delta was ready for release in November of 2004. Before release, Delta +was outfitted with a satellite tag by Kate Mansfield, then a Ph.D. student at the + Virginia Institute of Marine Science (College of William and Mary). This was done in + order to track Delta's movements and determine the success of the recovery. ]] +local URL = "https://sos.noaa.gov/catalog/datasets/sea-turtle-track-atlantic-ocean/" + + +local syncedDirectory = asset.syncedResource({ + Name = Name, + Type = "HttpSynchronization", + Identifier = Identifier, + Version = 1 +}) + +local imagesDestination = syncedDirectory .. "images" + +local layer = { + Identifier = Identifier, + Name = Name, + Type = "TemporalTileLayer", + Mode = "Folder", + Folder = { + Folder = imagesDestination, + -- See https://en.cppreference.com/w/cpp/io/manip/get_time for an explanation of the + -- time formatting string + Format = "turtle-migration-%y%j-%H%M.jpg" + }, + Description = Description +} + +asset.onInitialize(function() + if not openspace.directoryExists(imagesDestination) then + openspace.printInfo("Extracting " .. Name) + openspace.unzipFile(syncedDirectory .. "2048.zip", imagesDestination, true) + end + + openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer) +end) + +asset.onDeinitialize(function() + openspace.globebrowsing.deleteLayer(globeIdentifier, "ColorLayers", layer) +end) + +asset.export(layer) + + +asset.meta = { + Name = Name, + Version = "1.0", + Description = Description .. "Data provided by the National Oceanic and Atmospheric Administration.", + Author = "National Oceanic and Atmospheric Administration", + URL = URL, + License = "https://sos.noaa.gov/copyright/" +} diff --git a/data/assets/scene/solarsystem/planets/earth/noaa-sos/oceans/buoy_locations.asset b/data/assets/scene/solarsystem/planets/earth/noaa-sos/oceans/buoy_locations.asset new file mode 100644 index 0000000000..af0ee015fe --- /dev/null +++ b/data/assets/scene/solarsystem/planets/earth/noaa-sos/oceans/buoy_locations.asset @@ -0,0 +1,60 @@ +local globeIdentifier = asset.require("../../earth").Earth.Identifier + + +local Name = "Buoy and Float Locations" +local Identifier = "noaa-sos-oceans-buoy_locations" +local Description = [[ Buoys and floats with the ability to collect data are scattered +through out the world's oceans in order to gain a better understanding of how the oceans +work and how they are changing. The data is being used for monitoring chemical levels in +the oceans, garnering accurate ocean temperatures and change in temperature, and many +other endless uses. Each dot on this visualization represents a buoy or float, and each +color indicates the use of the instrument. The buoy network is still expanding past what +can be seen on this visualization. ]] +local URL = "https://sos.noaa.gov/catalog/datasets/buoy-and-float-locations/" + + +local syncedDirectory = asset.syncedResource({ + Name = Name, + Type = "HttpSynchronization", + Identifier = Identifier, + Version = 1 +}) + +local layer = { + Identifier = Identifier, + Name = Name, + FilePath = syncedDirectory .. "4096.jpg", + Description = Description +} + +local colorbar = { + Identifier = Identifier, + Name = Name, + Type = "ScreenSpaceImageLocal", + TexturePath = syncedDirectory .. "colorbar.png", + FaceCamera = false, + CartesianPosition = { 0.85, 0.0, -2.0 } +} + +asset.onInitialize(function() + openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer) + openspace.addScreenSpaceRenderable(colorbar); +end) + +asset.onDeinitialize(function() + openspace.globebrowsing.deleteLayer(globeIdentifier, "ColorLayers", layer) + openspace.removeScreenSpaceRenderable(colorbar) +end) + +asset.export(layer) +asset.export(colorbar) + + +asset.meta = { + Name = Name, + Version = "1.0", + Description = Description .. "Data provided by the National Oceanic and Atmospheric Administration.", + Author = "National Oceanic and Atmospheric Administration", + URL = URL, + License = "https://sos.noaa.gov/copyright/" +} diff --git a/data/assets/scene/solarsystem/planets/earth/noaa-sos/oceans/catch_model.asset b/data/assets/scene/solarsystem/planets/earth/noaa-sos/oceans/catch_model.asset new file mode 100644 index 0000000000..4d9927e081 --- /dev/null +++ b/data/assets/scene/solarsystem/planets/earth/noaa-sos/oceans/catch_model.asset @@ -0,0 +1,64 @@ +local globeIdentifier = asset.require("../../earth").Earth.Identifier + + +local Name = "Fisheries Catch Model - 2005 vs 2050" +local Identifier = "noaa-sos-oceans-catch_model" +local Description = [[ Climate change may pose a significant threat to fisheries +resources globally. This dataset shows percent change in global fisheries catch projected +to occur by 2050 due to climate change. Comparison is made with fisheries catch levels +reported in 2005. This study suggests that the distribution of major fish stocks will +shift because of climate change as ocean temperature changes. Areas in orange experience +reduced fisheries catch while areas in blue experience higher fisheries catch. The +general pattern is a poleward shift in potential fisheries catches - that is fish +distributions will shift to higher latitude areas (towards poles) and cooler waters as +ocean temperatures increase. The study also predicts species extinction to occur in areas +where species are most sensitive to temperature changes, resulting in reduced fisheries +catch in these areas. ]] +local URL = "https://sos.noaa.gov/catalog/datasets/fisheries-catch-model-2005-vs-2050/" + + +local syncedDirectory = asset.syncedResource({ + Name = Name, + Type = "HttpSynchronization", + Identifier = Identifier, + Version = 1 +}) + +local layer = { + Identifier = Identifier, + Name = Name, + FilePath = syncedDirectory .. "4096.png", + Description = Description +} + +local colorbar = { + Identifier = Identifier, + Name = Name, + Type = "ScreenSpaceImageLocal", + TexturePath = syncedDirectory .. "colorbar-catch.png", + FaceCamera = false, + CartesianPosition = { 0.0, -0.5, -2.0 } +} + +asset.onInitialize(function() + openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer) + openspace.addScreenSpaceRenderable(colorbar); +end) + +asset.onDeinitialize(function() + openspace.globebrowsing.deleteLayer(globeIdentifier, "ColorLayers", layer) + openspace.removeScreenSpaceRenderable(colorbar) +end) + +asset.export(layer) +asset.export(colorbar) + + +asset.meta = { + Name = Name, + Version = "1.0", + Description = Description .. "Data provided by the National Oceanic and Atmospheric Administration.", + Author = "National Oceanic and Atmospheric Administration", + URL = URL, + License = "https://sos.noaa.gov/copyright/" +} diff --git a/data/assets/scene/solarsystem/planets/earth/noaa-sos/oceans/chlorophyll_model.asset b/data/assets/scene/solarsystem/planets/earth/noaa-sos/oceans/chlorophyll_model.asset new file mode 100644 index 0000000000..08850f73ba --- /dev/null +++ b/data/assets/scene/solarsystem/planets/earth/noaa-sos/oceans/chlorophyll_model.asset @@ -0,0 +1,73 @@ +local globeIdentifier = asset.require("../../earth").Earth.Identifier + + +local Name = "Biosphere: Marine Chlorophyll Concentration Model" +local Identifier = "noaa-sos-oceans-chlorophyll_model" +local Description = [[ This animation shows the daily concentration of ocean surface +chlorophyll as simulated by the Parallel Ocean Program (POP) with an embedded marine +ecosystem model. While POP calculates the ocean currents, temperature and salinity, the +ecosystem model simulates the complex interaction of microscopic marine plants +(chlorophyll-containing phytoplankton), animals (zooplankton) and nutrients (such as +nitrogen, phosphorus and iron). In addition to constituting a major part of the global +food web, phytoplankton remove carbon dioxide from the atmosphere via photosynthesis much +like their counterparts on land. As conditions in the ocean and atmosphere change due to +increased carbon emissions, it is important to be able to use these kinds of models to +understand the possible effects on life in the ocean and the global carbon cycle. ]] +local URL = "https://sos.noaa.gov/catalog/datasets/biosphere-marine-chlorophyll-concentration-model/" + + +local syncedDirectory = asset.syncedResource({ + Name = Name, + Type = "HttpSynchronization", + Identifier = Identifier, + Version = 1 +}) + +local imagesDestination = syncedDirectory .. "images" + +local layer = { + Identifier = Identifier, + Name = Name, + Type = "ImageSequenceTileLayer", + FolderPath = imagesDestination, + Description = Description +} + +local colorbar = { + Identifier = Identifier, + Name = Name, + Type = "ScreenSpaceImageLocal", + TexturePath = syncedDirectory .. "colorbar.png", + FaceCamera = false, + Scale = 0.3, + BackgroundColor = { 1.0, 1.0, 1.0, 1.0 }, + CartesianPosition = { 0.0, -0.5, -2.0 } +} + +asset.onInitialize(function() + if not openspace.directoryExists(imagesDestination) then + openspace.printInfo("Extracting " .. Name) + openspace.unzipFile(syncedDirectory .. "3232.zip", imagesDestination, true) + end + + openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer) + openspace.addScreenSpaceRenderable(colorbar); +end) + +asset.onDeinitialize(function() + openspace.globebrowsing.deleteLayer(globeIdentifier, "ColorLayers", layer) + openspace.removeScreenSpaceRenderable(colorbar) +end) + +asset.export(layer) +asset.export(colorbar) + + +asset.meta = { + Name = Name, + Version = "1.0", + Description = Description .. "Data provided by the National Oceanic and Atmospheric Administration.", + Author = "National Oceanic and Atmospheric Administration", + URL = URL, + License = "https://sos.noaa.gov/copyright/" +} diff --git a/data/assets/scene/solarsystem/planets/earth/noaa-sos/oceans/currents.asset b/data/assets/scene/solarsystem/planets/earth/noaa-sos/oceans/currents.asset new file mode 100644 index 0000000000..e606d75f1b --- /dev/null +++ b/data/assets/scene/solarsystem/planets/earth/noaa-sos/oceans/currents.asset @@ -0,0 +1,67 @@ +local globeIdentifier = asset.require("../../earth").Earth.Identifier + + +local Name = "Ocean Circulation (labeled currents)" +local Identifier = "noaa-sos-oceans-currents" +local Description = [[ The ocean is not a still body of water. There is constant motion +in the ocean in the form of a global ocean conveyor belt due to thermohaline currents. +These currents are density driven, which are affected by both temperature and salinity. +Cold, salty water is dense and sinks to the bottom of the ocean while warm water is less +dense and rises to the surface. The "start" of the ocean conveyor belt is in the +Norwegian Sea. Warm water is transported to the Norwegian Sea by the Gulf Stream. The +warm water provides heat for the atmosphere in the northern latitudes that gets +particularly cold during the winter. This loss of heat to the atmosphere makes the water +cooler and denser, causing it to sink to the bottom of the ocean. As more warm water is +transported north, the cooler water sinks and moves south to make room for the incoming +warm water. This cold bottom water flows south of the equator all the way down to +Antarctica. Eventually, the cold bottom waters are able to warm and rise to the surface, +continuing the conveyor belt that encircles the global. It takes water almost 1000 years +to move through the whole conveyor belt. ]] +local URL = "https://sos.noaa.gov/catalog/datasets/ocean-circulation-labeled-currents/" + + +local syncedDirectory = asset.syncedResource({ + Name = Name, + Type = "HttpSynchronization", + Identifier = Identifier, + Version = 1 +}) + +local layer = { + Identifier = Identifier, + Name = Name, + FilePath = syncedDirectory .. "4096.jpg", + Description = Description +} + +local legend = { + Identifier = Identifier, + Name = Name, + Type = "ScreenSpaceImageLocal", + TexturePath = syncedDirectory .. "legend.jpg", + FaceCamera = false, + CartesianPosition = { 0.0, -0.5, -2.0 } +} + +asset.onInitialize(function() + openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer) + openspace.addScreenSpaceRenderable(legend); +end) + +asset.onDeinitialize(function() + openspace.globebrowsing.deleteLayer(globeIdentifier, "ColorLayers", layer) + openspace.removeScreenSpaceRenderable(legend) +end) + +asset.export(layer) +asset.export(legend) + + +asset.meta = { + Name = Name, + Version = "1.0", + Description = Description .. "Data provided by the National Oceanic and Atmospheric Administration.", + Author = "National Oceanic and Atmospheric Administration", + URL = URL, + License = "https://sos.noaa.gov/copyright/" +} diff --git a/data/assets/scene/solarsystem/planets/earth/noaa-sos/oceans/dart_buoy.asset b/data/assets/scene/solarsystem/planets/earth/noaa-sos/oceans/dart_buoy.asset new file mode 100644 index 0000000000..69b488be73 --- /dev/null +++ b/data/assets/scene/solarsystem/planets/earth/noaa-sos/oceans/dart_buoy.asset @@ -0,0 +1,50 @@ +local globeIdentifier = asset.require("../../earth").Earth.Identifier + + +local Name = "Buoy Locations (DART only)" +local Identifier = "noaa-sos-oceans-dart_buoy" +local Description = [[ After the horrific events of the Indian Ocean Tsunami on December +26, 2004, the need for a tsunami warning system was apparent. As part of the U.S. +National Tsunami Hazard Mitigation Program (NTHMP), the Deep Ocean Assessment and +Reporting of Tsunamis (DART) Project is an ongoing effort to maintain and improve the +capability for the early detection and real-time reporting of tsunamis in the open ocean. +Developed by NOAA's Pacific Marine Environmental Laboratory (PMEL) and operated by NOAA's +National Data Buoy Center (NDBC), DART is essential to fulfilling NOAA's national +responsibility for tsunami hazard mitigation and warnings. When completed in mid2007, the +DART Project will consist of 32 DART buoys. ]] +local URL = "https://sos.noaa.gov/catalog/datasets/buoy-locations-dart-only/" + + +local syncedDirectory = asset.syncedResource({ + Name = Name, + Type = "HttpSynchronization", + Identifier = Identifier, + Version = 1 +}) + +local layer = { + Identifier = Identifier, + Name = Name, + FilePath = syncedDirectory .. "2000.jpg", + Description = Description +} + +asset.onInitialize(function() + openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer) +end) + +asset.onDeinitialize(function() + openspace.globebrowsing.deleteLayer(globeIdentifier, "ColorLayers", layer) +end) + +asset.export(layer) + + +asset.meta = { + Name = Name, + Version = "1.0", + Description = Description .. "Data provided by the National Oceanic and Atmospheric Administration.", + Author = "National Oceanic and Atmospheric Administration", + URL = URL, + License = "https://sos.noaa.gov/copyright/" +} diff --git a/data/assets/scene/solarsystem/planets/earth/noaa-sos/oceans/ecco2_sst-gray_land.asset b/data/assets/scene/solarsystem/planets/earth/noaa-sos/oceans/ecco2_sst-gray_land.asset new file mode 100644 index 0000000000..c649d8896a --- /dev/null +++ b/data/assets/scene/solarsystem/planets/earth/noaa-sos/oceans/ecco2_sst-gray_land.asset @@ -0,0 +1,79 @@ +local globeIdentifier = asset.require("../../earth").Earth.Identifier + + +local Name = "Sea Surface Currents and Temperature (gray land)" +local Identifier = "noaa-sos-oceans-ecco2_sst-gray_land" +local Description = [[ To increase understanding and predictive capability for the +ocean's role in future climate change scenarios, the NASA Modeling, Analysis, and +Prediction (MAP) program has created a project called Estimating the Circulation and +Climate of the Ocean, Phase II (ECCO2): High-Resolution Global-Ocean and Sea-Ice Data +Synthesis. ECCO2 produces increasingly accurate syntheses of all available global-scale +ocean and sea-ice data at resolutions that start to resolve ocean eddies and other narrow +current systems, which transport heat, and other properties within the ocean. ECCO2 data +syntheses are created by using the available satellite and in-situ data in the +Massachusetts Institute of Technology General Circulation Model (MIT GCM). ECCO2 +simulates ocean flows at all depths, but only surface flows are used in this +visualization. The global sea surface current flows are colored by corresponding sea +surface temperatures. The sea surface temperature data is also from the ECCO2 model. ]] +local URL = "https://sos.noaa.gov/catalog/datasets/sea-surface-currents-and-temperature-gray-land/" + + +local syncedDirectory = asset.syncedResource({ + Name = Name, + Type = "HttpSynchronization", + Identifier = Identifier, + Version = 1 +}) + +local imagesDestination = syncedDirectory .. "images" + +local layer = { + Identifier = Identifier, + Name = Name, + Type = "ImageSequenceTileLayer", + FolderPath = imagesDestination, + Description = Description +} + +local colorbar = { + Identifier = Identifier, + Name = Name, + Type = "ScreenSpaceImageLocal", + TexturePath = syncedDirectory .. "colorbar.png", + FaceCamera = false, + CartesianPosition = { 0.0, -0.5, -2.0 } +} + +asset.onInitialize(function() + if not openspace.directoryExists(imagesDestination) then + openspace.printInfo("Extracting " .. Name) + openspace.unzipFile(syncedDirectory .. "4096-1.zip", imagesDestination, true) + openspace.unzipFile(syncedDirectory .. "4096-2.zip", imagesDestination, true) + openspace.unzipFile(syncedDirectory .. "4096-3.zip", imagesDestination, true) + openspace.unzipFile(syncedDirectory .. "4096-4.zip", imagesDestination, true) + openspace.unzipFile(syncedDirectory .. "4096-5.zip", imagesDestination, true) + openspace.unzipFile(syncedDirectory .. "4096-6.zip", imagesDestination, true) + openspace.unzipFile(syncedDirectory .. "4096-7.zip", imagesDestination, true) + end + + openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer) + openspace.addScreenSpaceRenderable(colorbar); +end) + +asset.onDeinitialize(function() + openspace.globebrowsing.deleteLayer(globeIdentifier, "ColorLayers", layer) + openspace.removeScreenSpaceRenderable(colorbar) +end) + +asset.export(layer) +asset.export(colorbar) + + +asset.meta = { + Name = Name, + Version = "1.0", + Description = Description .. "Data provided by the National Oceanic and Atmospheric Administration.", + Author = "National Oceanic and Atmospheric Administration", + URL = URL, + License = "https://sos.noaa.gov/copyright/" +} diff --git a/data/assets/scene/solarsystem/planets/earth/noaa-sos/oceans/ecco2_sst-veg_land.asset b/data/assets/scene/solarsystem/planets/earth/noaa-sos/oceans/ecco2_sst-veg_land.asset new file mode 100644 index 0000000000..e6eed7449b --- /dev/null +++ b/data/assets/scene/solarsystem/planets/earth/noaa-sos/oceans/ecco2_sst-veg_land.asset @@ -0,0 +1,81 @@ +local globeIdentifier = asset.require("../../earth").Earth.Identifier + + +local Name = "Sea Surface Currents and Temperature (vegetation on land)" +local Identifier = "noaa-sos-oceans-ecco2_sst-veg_land" +local Description = [[ To increase understanding and predictive capability for the +ocean's role in future climate change scenarios, the NASA Modeling, Analysis, and +Prediction (MAP) program has created a project called Estimating the Circulation and +Climate of the Ocean, Phase II (ECCO2): High-Resolution Global-Ocean and Sea-Ice Data +Synthesis. ECCO2 produces increasingly accurate syntheses of all available global-scale +ocean and sea-ice data at resolutions that start to resolve ocean eddies and other narrow +current systems, which transport heat, and other properties within the ocean. ECCO2 data +syntheses are created by using the available satellite and in-situ data in the +Massachusetts Institute of Technology General Circulation Model (MIT GCM). ECCO2 +simulates ocean flows at all depths, but only surface flows are used in this +visualization. The global sea surface current flows are colored by corresponding sea +surface temperatures. The sea surface temperature data is also from the ECCO2 model. ]] +local URL = "https://sos.noaa.gov/catalog/datasets/sea-surface-currents-and-temperature-vegetation-on-land/" + + +local syncedDirectory = asset.syncedResource({ + Name = Name, + Type = "HttpSynchronization", + Identifier = Identifier, + Version = 1 +}) + +local imagesDestination = syncedDirectory .. "images" + +local layer = { + Identifier = Identifier, + Name = Name, + Type = "ImageSequenceTileLayer", + FolderPath = imagesDestination, + Description = Description +} + +local colorbar = { + Identifier = Identifier, + Name = Name, + Type = "ScreenSpaceImageLocal", + TexturePath = syncedDirectory .. "colorbar.png", + FaceCamera = false, + CartesianPosition = { 0.0, -0.5, -2.0 } +} + +asset.onInitialize(function() + if not openspace.directoryExists(imagesDestination) then + openspace.printInfo("Extracting " .. Name) + openspace.unzipFile(syncedDirectory .. "4096-1.zip", imagesDestination, true) + openspace.unzipFile(syncedDirectory .. "4096-2.zip", imagesDestination, true) + openspace.unzipFile(syncedDirectory .. "4096-3.zip", imagesDestination, true) + openspace.unzipFile(syncedDirectory .. "4096-4.zip", imagesDestination, true) + openspace.unzipFile(syncedDirectory .. "4096-5.zip", imagesDestination, true) + openspace.unzipFile(syncedDirectory .. "4096-6.zip", imagesDestination, true) + openspace.unzipFile(syncedDirectory .. "4096-7.zip", imagesDestination, true) + openspace.unzipFile(syncedDirectory .. "4096-8.zip", imagesDestination, true) + openspace.unzipFile(syncedDirectory .. "4096-9.zip", imagesDestination, true) + end + + openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer) + openspace.addScreenSpaceRenderable(colorbar); +end) + +asset.onDeinitialize(function() + openspace.globebrowsing.deleteLayer(globeIdentifier, "ColorLayers", layer) + openspace.removeScreenSpaceRenderable(colorbar) +end) + +asset.export(layer) +asset.export(colorbar) + + +asset.meta = { + Name = Name, + Version = "1.0", + Description = Description .. "Data provided by the National Oceanic and Atmospheric Administration.", + Author = "National Oceanic and Atmospheric Administration", + URL = URL, + License = "https://sos.noaa.gov/copyright/" +} diff --git a/data/assets/scene/solarsystem/planets/earth/noaa-sos/oceans/elnino.asset b/data/assets/scene/solarsystem/planets/earth/noaa-sos/oceans/elnino.asset new file mode 100644 index 0000000000..d013f867e0 --- /dev/null +++ b/data/assets/scene/solarsystem/planets/earth/noaa-sos/oceans/elnino.asset @@ -0,0 +1,80 @@ +local globeIdentifier = asset.require("../../earth").Earth.Identifier + + +local Name = "El Nino and La Nina Seasonal Impacts" +local Identifier = "noaa-sos-oceans-elnino" +local Description = [[ El Nino is the warming of the Pacific Ocean off of the western +coast of South America near Ecuador and Peru. It is called El Nino, or little boy in +Spanish, referring to the Christ child because the phenomena was originally noticed near +Christmas time. The opposite of El Nino is La Nina, or little girl in Spanish, which is a +cooling of the Pacific Ocean. Because the Earth system is interconnected, changes in the +ocean cause changes in the atmosphere. El Nino and La Nina events not only impact ocean +temperatures in the tropical Pacific, but also global weather. The occurrence of El Nino +and La Nina is not predictable, but on average occurs once every four year and usually +lasts for about 18 months. ]] +local URL = "https://sos.noaa.gov/catalog/datasets/el-nino-and-la-nina-seasonal-impacts/" + + +local syncedDirectory = asset.syncedResource({ + Name = Name, + Type = "HttpSynchronization", + Identifier = Identifier, + Version = 1 +}) + +local layer_elnino_summer = { + Identifier = Identifier .. "-elnino_summer", + Name = Name .. " (El Nino, summer)", + FilePath = syncedDirectory .. "elnino-summer-no-map-transparent-shapes.png", + Description = Description +} + +local layer_elnino_winter = { + Identifier = Identifier .. "-elnino_winter", + Name = Name .. " (El Nino, winter)", + FilePath = syncedDirectory .. "elnino-winter-no-map-transparent-shapes.png", + Description = Description +} + +local layer_lanina_summer = { + Identifier = Identifier .. "-lanina_summer", + Name = Name .. " (La Nina, summer)", + FilePath = syncedDirectory .. "lanina-summer-no-map-transparent-shapes.png", + Description = Description +} + +local layer_lanina_winter = { + Identifier = Identifier .. "-lanina_winter", + Name = Name .. " (La Nina, winter)", + FilePath = syncedDirectory .. "lanina-winter-no-map-transparent-shapes.png", + Description = Description +} + +asset.onInitialize(function() + openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer_elnino_summer) + openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer_elnino_winter) + openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer_lanina_summer) + openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer_lanina_winter) +end) + +asset.onDeinitialize(function() + openspace.globebrowsing.deleteLayer(globeIdentifier, "ColorLayers", layer_elnino_summer) + openspace.globebrowsing.deleteLayer(globeIdentifier, "ColorLayers", layer_elnino_winter) + openspace.globebrowsing.deleteLayer(globeIdentifier, "ColorLayers", layer_lanina_summer) + openspace.globebrowsing.deleteLayer(globeIdentifier, "ColorLayers", layer_lanina_winter) +end) + +asset.export(layer_elnino_summer) +asset.export(layer_elnino_winter) +asset.export(layer_lanina_summer) +asset.export(layer_lanina_winter) + + +asset.meta = { + Name = Name, + Version = "1.0", + Description = Description .. "Data provided by the National Oceanic and Atmospheric Administration.", + Author = "National Oceanic and Atmospheric Administration", + URL = URL, + License = "https://sos.noaa.gov/copyright/" +} diff --git a/data/assets/scene/solarsystem/planets/earth/noaa-sos/oceans/gfdl_sst-black_background.asset b/data/assets/scene/solarsystem/planets/earth/noaa-sos/oceans/gfdl_sst-black_background.asset new file mode 100644 index 0000000000..91245e549b --- /dev/null +++ b/data/assets/scene/solarsystem/planets/earth/noaa-sos/oceans/gfdl_sst-black_background.asset @@ -0,0 +1,75 @@ +local globeIdentifier = asset.require("../../earth").Earth.Identifier + + +local Name = "Sea Surface Temperature NOAA Model (black land)" +local Identifier = "noaa-sos-oceans-gfdl_sst-black_background" +local Description = [[ This dataset shows how the global ocean's surface water +temperatures vary over the course of few years. In addition to seeing the effects of the +seasonal cycle, the viewer can see how surface ocean currents and eddies transport heat +and water around the globe. The images were generated not from observations, but from a +state-of-the-art computer model of Earth's climate created at NOAA's Geophysical Fluid +Dynamics Laboratory (GFDL). ]] +local URL = "https://sos.noaa.gov/catalog/datasets/sea-surface-temperature-noaa-model-black-land/" + + +local syncedDirectory = asset.syncedResource({ + Name = Name, + Type = "HttpSynchronization", + Identifier = Identifier, + Version = 1 +}) + +local imagesDestination = syncedDirectory .. "images" + +local layer = { + Identifier = Identifier, + Name = Name, + Type = "TemporalTileLayer", + Mode = "Folder", + Folder = { + Folder = imagesDestination, + -- See https://en.cppreference.com/w/cpp/io/manip/get_time for an explanation of the + -- time formatting string + Format = "GFDL_CM2p4_SSTctl_%Y.png" + }, + Description = Description +} + +local colorbar = { + Identifier = Identifier, + Name = Name, + Type = "ScreenSpaceImageLocal", + TexturePath = syncedDirectory .. "colorbar.png", + FaceCamera = false, + Scale = 0.04, + CartesianPosition = { 0.85, 0.0, -2.0 } +} + +asset.onInitialize(function() + if not openspace.directoryExists(imagesDestination) then + openspace.printInfo("Extracting " .. Name) + openspace.unzipFile(syncedDirectory .. "2048_png-1.zip", imagesDestination, true) + openspace.unzipFile(syncedDirectory .. "2048_png-2.zip", imagesDestination, true) + end + + openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer) + openspace.addScreenSpaceRenderable(colorbar); +end) + +asset.onDeinitialize(function() + openspace.globebrowsing.deleteLayer(globeIdentifier, "ColorLayers", layer) + openspace.removeScreenSpaceRenderable(colorbar) +end) + +asset.export(layer) +asset.export(colorbar) + + +asset.meta = { + Name = Name, + Version = "1.0", + Description = Description .. "Data provided by the National Oceanic and Atmospheric Administration.", + Author = "National Oceanic and Atmospheric Administration", + URL = URL, + License = "https://sos.noaa.gov/copyright/" +} diff --git a/data/assets/scene/solarsystem/planets/earth/noaa-sos/oceans/gfdl_sst-land_background.asset b/data/assets/scene/solarsystem/planets/earth/noaa-sos/oceans/gfdl_sst-land_background.asset new file mode 100644 index 0000000000..d3393d6000 --- /dev/null +++ b/data/assets/scene/solarsystem/planets/earth/noaa-sos/oceans/gfdl_sst-land_background.asset @@ -0,0 +1,77 @@ +local globeIdentifier = asset.require("../../earth").Earth.Identifier + + +local Name = "Sea Surface Temperature NOAA Model (with vegetation)" +local Identifier = "noaa-sos-oceans-gfdl_sst-land_background" +local Description = [[ This dataset shows how the global ocean's surface water +temperatures vary over the course of few years. In addition to seeing the effects of the +seasonal cycle, the viewer can see how surface ocean currents and eddies transport heat +and water around the globe. The images were generated not from observations, but from a +state-of-the-art computer model of Earth's climate created at NOAA's Geophysical Fluid +Dynamics Laboratory (GFDL). ]] +local URL = "https://sos.noaa.gov/catalog/datasets/sea-surface-temperature-noaa-model-with-vegetation/" + + +local syncedDirectory = asset.syncedResource({ + Name = Name, + Type = "HttpSynchronization", + Identifier = Identifier, + Version = 1 +}) + +local imagesDestination = syncedDirectory .. "images" + +local layer = { + Identifier = Identifier, + Name = Name, + Type = "TemporalTileLayer", + Mode = "Folder", + Folder = { + Folder = imagesDestination, + -- See https://en.cppreference.com/w/cpp/io/manip/get_time for an explanation of the + -- time formatting string + Format = "GFDL_CM2p4_SSTctl_%Y.png" + }, + Description = Description +} + +local colorbar = { + Identifier = Identifier, + Name = Name, + Type = "ScreenSpaceImageLocal", + TexturePath = syncedDirectory .. "colorbar.png", + FaceCamera = false, + Scale = 0.04, + CartesianPosition = { 0.85, 0.0, -2.0 } +} + +asset.onInitialize(function() + if not openspace.directoryExists(imagesDestination) then + openspace.printInfo("Extracting " .. Name) + openspace.unzipFile(syncedDirectory .. "2048_png-1.zip", imagesDestination, true) + openspace.unzipFile(syncedDirectory .. "2048_png-2.zip", imagesDestination, true) + openspace.unzipFile(syncedDirectory .. "2048_png-3.zip", imagesDestination, true) + openspace.unzipFile(syncedDirectory .. "2048_png-4.zip", imagesDestination, true) + end + + openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer) + openspace.addScreenSpaceRenderable(colorbar); +end) + +asset.onDeinitialize(function() + openspace.globebrowsing.deleteLayer(globeIdentifier, "ColorLayers", layer) + openspace.removeScreenSpaceRenderable(colorbar) +end) + +asset.export(layer) +asset.export(colorbar) + + +asset.meta = { + Name = Name, + Version = "1.0", + Description = Description .. "Data provided by the National Oceanic and Atmospheric Administration.", + Author = "National Oceanic and Atmospheric Administration", + URL = URL, + License = "https://sos.noaa.gov/copyright/" +} diff --git a/data/assets/scene/solarsystem/planets/earth/noaa-sos/oceans/greenland_melt.asset b/data/assets/scene/solarsystem/planets/earth/noaa-sos/oceans/greenland_melt.asset new file mode 100644 index 0000000000..c370da29d7 --- /dev/null +++ b/data/assets/scene/solarsystem/planets/earth/noaa-sos/oceans/greenland_melt.asset @@ -0,0 +1,65 @@ +local globeIdentifier = asset.require("../../earth").Earth.Identifier + + +local Name = "Greenland Melting Trends" +local Identifier = "noaa-sos-oceans-greenland_melt" +local Description = [[ Changes in the climate around Greenland can have a world-wide +effect. According to Dr. Konrad Steffen, professor of geography at the University of +Colorado and director of the NOAA joint institute CIRES, "For every degree (F) increase +in the mean annual temperature near Greenland, the rate of sea level rise increases by +about 10 percent." As Greenland warms, the ice that covers it melts and flows into the +oceans. In order to study melting trends on Greenland, researchers at NASA developed a +"melt index" which is the number of days that melting occurred multiplied by the melting +area. There is a steady increase in the melt index from 1988 through present. In fact, +in 2006 Greenland experienced more days of melting snow and at higher altitudes than the +average over the past 18 years that have been studied. ]] +local URL = "https://sos.noaa.gov/catalog/datasets/greenland-melting-trends/" + + +local syncedDirectory = asset.syncedResource({ + Name = Name, + Type = "HttpSynchronization", + Identifier = Identifier, + Version = 1 +}) + +local imagesDestination = syncedDirectory .. "images" + +local layer = { + Identifier = Identifier, + Name = Name, + Type = "TemporalTileLayer", + Mode = "Folder", + Folder = { + Folder = imagesDestination, + -- See https://en.cppreference.com/w/cpp/io/manip/get_time for an explanation of the + -- time formatting string + Format = "dav19_%Y.jpg" + }, + Description = Description +} + +asset.onInitialize(function() + if not openspace.directoryExists(imagesDestination) then + openspace.printInfo("Extracting " .. Name) + openspace.unzipFile(syncedDirectory .. "2048.zip", imagesDestination, true) + end + + openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer) +end) + +asset.onDeinitialize(function() + openspace.globebrowsing.deleteLayer(globeIdentifier, "ColorLayers", layer) +end) + +asset.export(layer) + + +asset.meta = { + Name = Name, + Version = "1.0", + Description = Description .. "Data provided by the National Oceanic and Atmospheric Administration.", + Author = "National Oceanic and Atmospheric Administration", + URL = URL, + License = "https://sos.noaa.gov/copyright/" +} diff --git a/data/assets/scene/solarsystem/planets/earth/noaa-sos/oceans/japan_tsunami.asset b/data/assets/scene/solarsystem/planets/earth/noaa-sos/oceans/japan_tsunami.asset new file mode 100644 index 0000000000..aa5d96e225 --- /dev/null +++ b/data/assets/scene/solarsystem/planets/earth/noaa-sos/oceans/japan_tsunami.asset @@ -0,0 +1,48 @@ +local globeIdentifier = asset.require("../../earth").Earth.Identifier + + +local Name = "Japan Tsunami: Wave Heights - March 11, 2011" +local Identifier = "noaa-sos-oceans-japan_tsunami" +local Description = [[ On March 11, 2011 at 2:45 local time, a 9.0 magnitude earthquake +occurred 81 miles (130 km) off the east coast of Sendai, Japan, triggering a massive +tsunami. It is estimated that the initial tsunami wave took 10 to 30 minutes to make its +first landfall. Forecasted wave heights were up to 33 ft (10 m) and there were many +reports of tsunami waves three stories high in parts of Japan. Across the Pacific Ocean, +many countries issued evacuations along the coasts because of the predicted tsunami +waves. ]] +local URL = "https://sos.noaa.gov/catalog/datasets/japan-tsunami-wave-heights-march-11-2011/" + + +local syncedDirectory = asset.syncedResource({ + Name = Name, + Type = "HttpSynchronization", + Identifier = Identifier, + Version = 1 +}) + +local layer = { + Identifier = Identifier, + Name = Name, + FilePath = syncedDirectory .. "4096.png", + Description = Description +} + +asset.onInitialize(function() + openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer) +end) + +asset.onDeinitialize(function() + openspace.globebrowsing.deleteLayer(globeIdentifier, "ColorLayers", layer) +end) + +asset.export(layer) + + +asset.meta = { + Name = Name, + Version = "1.0", + Description = Description .. "Data provided by the National Oceanic and Atmospheric Administration.", + Author = "National Oceanic and Atmospheric Administration", + URL = URL, + License = "https://sos.noaa.gov/copyright/" +} diff --git a/data/assets/scene/solarsystem/planets/earth/noaa-sos/oceans/japan_tsunami_waves.asset b/data/assets/scene/solarsystem/planets/earth/noaa-sos/oceans/japan_tsunami_waves.asset new file mode 100644 index 0000000000..d475c106d7 --- /dev/null +++ b/data/assets/scene/solarsystem/planets/earth/noaa-sos/oceans/japan_tsunami_waves.asset @@ -0,0 +1,62 @@ +local globeIdentifier = asset.require("../../earth").Earth.Identifier + + +local Name = "Japan Tsunami: Wave Propagation - March 11, 2011" +local Identifier = "noaa-sos-oceans-japan_tsunami_waves" +local Description = [[ On March 11, 2011 at 2:45 p.m. local time, a 9.0 magnitude +earthquake occurred 81 miles (130 km) off the east coast of Sendai, Honshu, Japan, +triggering a massive tsunami. A tsunami is a series of ocean waves generated by sudden +displacements in the sea floor, landslides, or volcanic activity. In the deep ocean, the +tsunami wave may only be a few inches high. The tsunami wave may come gently ashore or +may increase in height to become a fast moving wall of turbulent water several meters +high. Forecasted wave heights in Japan were up to 66 ft (20 m) and there were many +reports of tsunami waves three stories high in parts of Japan. Across the Pacific Ocean, +many countries issued evacuations along the coasts because of the predicted tsunami +waves. Propagation of the tsunami was computed with the NOAA forecast method using the +MOST (Method of Splitting Tsunami) model with the tsunami source inferred from DART. +Approximately 25 minutes after the earthquake, the tsunami was first recorded by one of +the DART buoys. ]] +local URL = "https://sos.noaa.gov/catalog/datasets/japan-tsunami-wave-propagation-march-11-2011/" + + +local syncedDirectory = asset.syncedResource({ + Name = Name, + Type = "HttpSynchronization", + Identifier = Identifier, + Version = 1 +}) + +local imagesDestination = syncedDirectory .. "images" + +local layer = { + Identifier = Identifier, + Name = Name, + Type = "ImageSequenceTileLayer", + FolderPath = imagesDestination, + Description = Description +} + +asset.onInitialize(function() + if not openspace.directoryExists(imagesDestination) then + openspace.printInfo("Extracting " .. Name) + openspace.unzipFile(syncedDirectory .. "4096.zip", imagesDestination, true) + end + + openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer) +end) + +asset.onDeinitialize(function() + openspace.globebrowsing.deleteLayer(globeIdentifier, "ColorLayers", layer) +end) + +asset.export(layer) + + +asset.meta = { + Name = Name, + Version = "1.0", + Description = Description .. "Data provided by the National Oceanic and Atmospheric Administration.", + Author = "National Oceanic and Atmospheric Administration", + URL = URL, + License = "https://sos.noaa.gov/copyright/" +} diff --git a/data/assets/scene/solarsystem/planets/earth/noaa-sos/oceans/loggerheadseaturtletracks.asset b/data/assets/scene/solarsystem/planets/earth/noaa-sos/oceans/loggerheadseaturtletracks.asset new file mode 100644 index 0000000000..705944d456 --- /dev/null +++ b/data/assets/scene/solarsystem/planets/earth/noaa-sos/oceans/loggerheadseaturtletracks.asset @@ -0,0 +1,59 @@ +local globeIdentifier = asset.require("../../earth").Earth.Identifier + + +local Name = "Loggerhead Sea Turtle Tracks" +local Identifier = "noaa-sos-oceans-loggerheadseaturtletracks" +local Description = [[ Using satellite transmitting tags on wildlife allows scientists to +monitor the behaviors of the wildlife in their natural habitats. This dataset contains +the tracks of juvenile loggerhead sea turtles that were tagged and monitored. Some of the +turtles were caught on commercial fishing vessels north of Hawaii and the other turtles +were raised in the hatchery at the Port of Nagoya Aquarium in Japan. After being tagged +the turtles were released at various at-sea locations. The data used in this dataset is +from 1997 through 2006. The animation represents a daily climatology showing the turtle +daily movement, independent of the year. The background is a daily climatology of +satellite remotely-sensed sea surface temperature. The size of the turtle graphic is +proportional to the turtle length. ]] +local URL = "https://sos.noaa.gov/catalog/datasets/loggerhead-sea-turtle-tracks/" + + +local syncedDirectory = asset.syncedResource({ + Name = Name, + Type = "HttpSynchronization", + Identifier = Identifier, + Version = 1 +}) + +local imagesDestination = syncedDirectory .. "images" + +local layer = { + Identifier = Identifier, + Name = Name, + Type = "ImageSequenceTileLayer", + FolderPath = imagesDestination, + Description = Description +} + +asset.onInitialize(function() + if not openspace.directoryExists(imagesDestination) then + openspace.printInfo("Extracting " .. Name) + openspace.unzipFile(syncedDirectory .. "4096.zip", imagesDestination, true) + end + + openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer) +end) + +asset.onDeinitialize(function() + openspace.globebrowsing.deleteLayer(globeIdentifier, "ColorLayers", layer) +end) + +asset.export(layer) + + +asset.meta = { + Name = Name, + Version = "1.0", + Description = Description .. "Data provided by the National Oceanic and Atmospheric Administration.", + Author = "National Oceanic and Atmospheric Administration", + URL = URL, + License = "https://sos.noaa.gov/copyright/" +} diff --git a/data/assets/scene/solarsystem/planets/earth/noaa-sos/oceans/marine_impacts.asset b/data/assets/scene/solarsystem/planets/earth/noaa-sos/oceans/marine_impacts.asset new file mode 100644 index 0000000000..a2f63b138b --- /dev/null +++ b/data/assets/scene/solarsystem/planets/earth/noaa-sos/oceans/marine_impacts.asset @@ -0,0 +1,76 @@ +local globeIdentifier = asset.require("../../earth").Earth.Identifier + + +local Name = "Human Influences on Marine Ecosystems" +local Identifier = "noaa-sos-oceans-marine_impacts" +local Description = [[ The ocean has an impact on the lives of everyone on Earth, even +those who don't live on the coasts. It has been estimated that one in every six jobs in +the United States is marine-related and that 50% of all species on Earth are supported by +the ocean. Because of this, it is important to protect and preserve the oceans. Humans +however have been shown to have a negative impact on the oceans. A report issued in +February 2008 found that 40% of the world's oceans are heavily impacted by human +activities, such as overfishing and pollution. In all 17 different human activities were +examined in the report, including fertilizer run-off, commercial shipping, and indirect +activities such as changes in sea surface temperature, UV radiation, and ocean +acidification. ]] +local URL = "https://sos.noaa.gov/catalog/datasets/human-influences-on-marine-ecosystems/" + + +local syncedDirectory = asset.syncedResource({ + Name = Name, + Type = "HttpSynchronization", + Identifier = Identifier, + Version = 1 +}) + +local layer = { + Identifier = Identifier, + Name = Name, + FilePath = syncedDirectory .. "5000.png", + Description = Description +} + +local colorbar = { + Identifier = Identifier, + Name = Name, + Type = "ScreenSpaceImageLocal", + TexturePath = syncedDirectory .. "colorbar.png", + FaceCamera = false, + CartesianPosition = { 0.0, -0.5, -2.0 } +} + +local colorbar_human_impact = { + Identifier = Identifier, + Name = Name, + Type = "ScreenSpaceImageLocal", + TexturePath = syncedDirectory .. "HumanImpactColorbar.png", + Enabled = false, + FaceCamera = false, + CartesianPosition = { 0.0, -0.5, -2.0 } +} + +asset.onInitialize(function() + openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer) + openspace.addScreenSpaceRenderable(colorbar); + openspace.addScreenSpaceRenderable(colorbar_human_impact); +end) + +asset.onDeinitialize(function() + openspace.globebrowsing.deleteLayer(globeIdentifier, "ColorLayers", layer) + openspace.removeScreenSpaceRenderable(colorbar) + openspace.removeScreenSpaceRenderable(colorbar_human_impact) +end) + +asset.export(layer) +asset.export(colorbar) +asset.export(colorbar_human_impact) + + +asset.meta = { + Name = Name, + Version = "1.0", + Description = Description .. "Data provided by the National Oceanic and Atmospheric Administration.", + Author = "National Oceanic and Atmospheric Administration", + URL = URL, + License = "https://sos.noaa.gov/copyright/" +} diff --git a/data/assets/scene/solarsystem/planets/earth/noaa-sos/oceans/marine_life_tracking.asset b/data/assets/scene/solarsystem/planets/earth/noaa-sos/oceans/marine_life_tracking.asset new file mode 100644 index 0000000000..82e101f63c --- /dev/null +++ b/data/assets/scene/solarsystem/planets/earth/noaa-sos/oceans/marine_life_tracking.asset @@ -0,0 +1,60 @@ +local globeIdentifier = asset.require("../../earth").Earth.Identifier + + +local Name = "Marine Life Tracks: Pacific Ocean" +local Identifier = "noaa-sos-oceans-marine_life_tracking" +local Description = [[ This dataset contains the locations of a leatherback turtle, a +northern elephant seal, and two white sharks for each day over the course of several +months. The data used was taken from topp.org (TOPP stands for Tagging of Pelagic +Predators), a site that tracks marine animals in an attempt to learn more about them. +TOPP's goal is to protect marine wildlife from overfishing, climate change, and various +other threats. The purpose of this dataset is to serve as an example of a hand-made +animal tracking dataset. For a more extensive dataset using data from TOPP, go here. ]] +local URL = "https://sos.noaa.gov/catalog/datasets/marine-life-tracks-pacific-ocean/" + + +local syncedDirectory = asset.syncedResource({ + Name = Name, + Type = "HttpSynchronization", + Identifier = Identifier, + Version = 1 +}) + +local layer = { + Identifier = Identifier, + Name = Name, + FilePath = syncedDirectory .. "2048.png", + Description = Description +} + +local legend = { + Identifier = Identifier, + Name = Name, + Type = "ScreenSpaceImageLocal", + TexturePath = syncedDirectory .. "legend.png", + FaceCamera = false, + CartesianPosition = { 0.0, -0.5, -2.0 } +} + +asset.onInitialize(function() + openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer) + openspace.addScreenSpaceRenderable(legend); +end) + +asset.onDeinitialize(function() + openspace.globebrowsing.deleteLayer(globeIdentifier, "ColorLayers", layer) + openspace.removeScreenSpaceRenderable(legend) +end) + +asset.export(layer) +asset.export(legend) + + +asset.meta = { + Name = Name, + Version = "1.0", + Description = Description .. "Data provided by the National Oceanic and Atmospheric Administration.", + Author = "National Oceanic and Atmospheric Administration", + URL = URL, + License = "https://sos.noaa.gov/copyright/" +} diff --git a/data/assets/scene/solarsystem/planets/earth/noaa-sos/oceans/mexico_turtles_947293.asset b/data/assets/scene/solarsystem/planets/earth/noaa-sos/oceans/mexico_turtles_947293.asset new file mode 100644 index 0000000000..7ccfdf50ed --- /dev/null +++ b/data/assets/scene/solarsystem/planets/earth/noaa-sos/oceans/mexico_turtles_947293.asset @@ -0,0 +1,64 @@ +local globeIdentifier = asset.require("../../earth").Earth.Identifier + + +local Name = "Sea Turtle Track: Gulf of Mexico (94-7293)" +local Identifier = "noaa-sos-oceans-mexico_turtles_947293" +local Description = [[ Three Kemp's ridley sea turtles were captured near the Calcasieu +Pass jetties at Cameron, Louisiana and tracked by National Oceanographic and Atmospheric +Administration's (NOAA) National Marine Fisheries Service Galveston Laboratory. Two adult +females (94-7293 and 94-7295) were captured on 11 August 1994 in a turtle entanglement +net by Texas A&M University biologists. Turtle 94-7293's shell measured 65.6 cm in length +and 64.9 cm in width, and weighed 84.4 pounds (38.3 kg). Turtle 94-7295's shell measured +65.8 cm in length and 64.9 cm in width, and weighed 93.9 pounds (42.6 kg). Both were +fitted with Telonics ST-10 satellite transmitters and released within 2 days at the +capture site. ]] +local URL = "https://sos.noaa.gov/catalog/datasets/sea-turtle-track-gulf-of-mexico-94-7293/" + + +local syncedDirectory = asset.syncedResource({ + Name = Name, + Type = "HttpSynchronization", + Identifier = Identifier, + Version = 1 +}) + +local imagesDestination = syncedDirectory .. "images" + +local layer = { + Identifier = Identifier, + Name = Name, + Type = "TemporalTileLayer", + Mode = "Folder", + Folder = { + Folder = imagesDestination, + -- See https://en.cppreference.com/w/cpp/io/manip/get_time for an explanation of the + -- time formatting string + Format = "NOAA-turtle-S947293-%y%j-%H%M.jpg" + }, + Description = Description +} + +asset.onInitialize(function() + if not openspace.directoryExists(imagesDestination) then + openspace.printInfo("Extracting " .. Name) + openspace.unzipFile(syncedDirectory .. "2048.zip", imagesDestination, true) + end + + openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer) +end) + +asset.onDeinitialize(function() + openspace.globebrowsing.deleteLayer(globeIdentifier, "ColorLayers", layer) +end) + +asset.export(layer) + + +asset.meta = { + Name = Name, + Version = "1.0", + Description = Description .. "Data provided by the National Oceanic and Atmospheric Administration.", + Author = "National Oceanic and Atmospheric Administration", + URL = URL, + License = "https://sos.noaa.gov/copyright/" +} diff --git a/data/assets/scene/solarsystem/planets/earth/noaa-sos/oceans/mexico_turtles_958002.asset b/data/assets/scene/solarsystem/planets/earth/noaa-sos/oceans/mexico_turtles_958002.asset new file mode 100644 index 0000000000..200c480009 --- /dev/null +++ b/data/assets/scene/solarsystem/planets/earth/noaa-sos/oceans/mexico_turtles_958002.asset @@ -0,0 +1,64 @@ +local globeIdentifier = asset.require("../../earth").Earth.Identifier + + +local Name = "Sea Turtle Track: Gulf of Mexico (94-8002)" +local Identifier = "noaa-sos-oceans-mexico_turtles_958002" +local Description = [[ These three Kemp's ridley sea turtles were captured near the +Calcasieu Pass jetties at Cameron, Louisiana and tracked by National Oceanographic and +Atmospheric Administration's (NOAA) National Marine Fisheries Service Galveston +Laboratory. Two adult females (94-7293 and 94-7295) were captured on 11 August 1994 in a +turtle entanglement net by Texas A&M University biologists. Turtle 94-7293's shell +measured 65.6 cm in length and 64.9 cm in width, and weighed 84.4 pounds (38.3 kg). +Turtle 94-7295's shell measured 65.8 cm in length and 64.9 cm in width, and weighed 93.9 +pounds (42.6 kg). Both were fitted with Telonics ST-10 satellite transmitters and +released within 2 days at the capture site. ]] +local URL = "https://sos.noaa.gov/catalog/datasets/sea-turtle-track-gulf-of-mexico-94-8002/" + + +local syncedDirectory = asset.syncedResource({ + Name = Name, + Type = "HttpSynchronization", + Identifier = Identifier, + Version = 1 +}) + +local imagesDestination = syncedDirectory .. "images" + +local layer = { + Identifier = Identifier, + Name = Name, + Type = "TemporalTileLayer", + Mode = "Folder", + Folder = { + Folder = imagesDestination, + -- See https://en.cppreference.com/w/cpp/io/manip/get_time for an explanation of the + -- time formatting string + Format = "NOAA-turtle-S958002-%y%j-%H%M.jpg" + }, + Description = Description +} + +asset.onInitialize(function() + if not openspace.directoryExists(imagesDestination) then + openspace.printInfo("Extracting " .. Name) + openspace.unzipFile(syncedDirectory .. "2048.zip", imagesDestination, true) + end + + openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer) +end) + +asset.onDeinitialize(function() + openspace.globebrowsing.deleteLayer(globeIdentifier, "ColorLayers", layer) +end) + +asset.export(layer) + + +asset.meta = { + Name = Name, + Version = "1.0", + Description = Description .. "Data provided by the National Oceanic and Atmospheric Administration.", + Author = "National Oceanic and Atmospheric Administration", + URL = URL, + License = "https://sos.noaa.gov/copyright/" +} diff --git a/data/assets/scene/solarsystem/planets/earth/noaa-sos/oceans/modis_sst.asset b/data/assets/scene/solarsystem/planets/earth/noaa-sos/oceans/modis_sst.asset new file mode 100644 index 0000000000..b495283c22 --- /dev/null +++ b/data/assets/scene/solarsystem/planets/earth/noaa-sos/oceans/modis_sst.asset @@ -0,0 +1,57 @@ +local globeIdentifier = asset.require("../../earth").Earth.Identifier + + +local Name = "Sea Surface Temperature Observations - 2002 - 2006" +local Identifier = "noaa-sos-oceans-modis_sst" +local Description = [[ Sea surface temperature, much like the atmosphere's temperature, +is constantly changing. The interaction between the ocean and the atmosphere is one that +scientists are constantly researching, especially in light of climate change. Water warms +up and cools down at a slower rate than air, so diurnal variations (heating during the +day and cooling during the night) seen in the atmosphere are hard to observe in the +ocean. The seasons, however, can be seen as the warmest water near the equator expands +toward the United States during the summer months and withdraws again during the winter +months. ]] +local URL = "https://sos.noaa.gov/catalog/datasets/sea-surface-temperature-observations-2002-2006/" + + +local syncedDirectory = asset.syncedResource({ + Name = Name, + Type = "HttpSynchronization", + Identifier = Identifier, + Version = 1 +}) + +local imagesDestination = syncedDirectory .. "images" + +local layer = { + Identifier = Identifier, + Name = Name, + Type = "ImageSequenceTileLayer", + FolderPath = imagesDestination, + Description = Description +} + +asset.onInitialize(function() + if not openspace.directoryExists(imagesDestination) then + openspace.printInfo("Extracting " .. Name) + openspace.unzipFile(syncedDirectory .. "2048.zip", imagesDestination, true) + end + + openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer) +end) + +asset.onDeinitialize(function() + openspace.globebrowsing.deleteLayer(globeIdentifier, "ColorLayers", layer) +end) + +asset.export(layer) + + +asset.meta = { + Name = Name, + Version = "1.0", + Description = Description .. "Data provided by the National Oceanic and Atmospheric Administration.", + Author = "National Oceanic and Atmospheric Administration", + URL = URL, + License = "https://sos.noaa.gov/copyright/" +} diff --git a/data/assets/scene/solarsystem/planets/earth/noaa-sos/oceans/nasa_speed.asset b/data/assets/scene/solarsystem/planets/earth/noaa-sos/oceans/nasa_speed.asset new file mode 100644 index 0000000000..b0d8dd4d8e --- /dev/null +++ b/data/assets/scene/solarsystem/planets/earth/noaa-sos/oceans/nasa_speed.asset @@ -0,0 +1,57 @@ +local globeIdentifier = asset.require("../../earth").Earth.Identifier + + +local Name = "Sea Surface Currents" +local Identifier = "noaa-sos-oceans-nasa_speed" +local Description = [[ The water in the ocean is constantly moving. Ocean currents are +typically driven by surface wind and can have a huge impact on climate. Northwest Europe +is moderately temperate considering its latitude because the Gulf Stream off of the +eastern coast of the United States transports warm water north to those areas. In fact, +the Atlantic Ocean along the U.S. coast is much warmer than the Pacific Ocean along the +U.S. coast because of the warm water transported in the Gulf Stream. In this +visualization, a model created by NASA, the color variations denote speed. The lighter +green areas are moving faster than the blue areas. ]] +local URL = "https://sos.noaa.gov/catalog/datasets/sea-surface-currents/" + + +local syncedDirectory = asset.syncedResource({ + Name = Name, + Type = "HttpSynchronization", + Identifier = Identifier, + Version = 1 +}) + +local imagesDestination = syncedDirectory .. "images" + +local layer = { + Identifier = Identifier, + Name = Name, + Type = "ImageSequenceTileLayer", + FolderPath = imagesDestination, + Description = Description +} + +asset.onInitialize(function() + if not openspace.directoryExists(imagesDestination) then + openspace.printInfo("Extracting " .. Name) + openspace.unzipFile(syncedDirectory .. "4000.zip", imagesDestination, true) + end + + openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer) +end) + +asset.onDeinitialize(function() + openspace.globebrowsing.deleteLayer(globeIdentifier, "ColorLayers", layer) +end) + +asset.export(layer) + + +asset.meta = { + Name = Name, + Version = "1.0", + Description = Description .. "Data provided by the National Oceanic and Atmospheric Administration.", + Author = "National Oceanic and Atmospheric Administration", + URL = URL, + License = "https://sos.noaa.gov/copyright/" +} diff --git a/data/assets/scene/solarsystem/planets/earth/noaa-sos/oceans/nasa_sst.asset b/data/assets/scene/solarsystem/planets/earth/noaa-sos/oceans/nasa_sst.asset new file mode 100644 index 0000000000..14aee5b2c3 --- /dev/null +++ b/data/assets/scene/solarsystem/planets/earth/noaa-sos/oceans/nasa_sst.asset @@ -0,0 +1,55 @@ +local globeIdentifier = asset.require("../../earth").Earth.Identifier + + +local Name = "Sea Surface Temperature Model" +local Identifier = "noaa-sos-oceans-nasa_sst" +local Description = [[ " Sea surface temperature plays a vital role in the behavior of +the Earth's climate and weather. It is both a causal factor and a resulting effect of +complex interactions of natural forces on Earth. NASA not only measures sea surface +temperature from space using powerful scientific instruments, but it also studies +temperature processes in advanced computer models." -Gretchen Cook-Anderson, Goddard +Space Flight Center. ]] +local URL = "https://sos.noaa.gov/catalog/datasets/sea-surface-temperature-model/" + + +local syncedDirectory = asset.syncedResource({ + Name = Name, + Type = "HttpSynchronization", + Identifier = Identifier, + Version = 1 +}) + +local imagesDestination = syncedDirectory .. "images" + +local layer = { + Identifier = Identifier, + Name = Name, + Type = "ImageSequenceTileLayer", + FolderPath = imagesDestination, + Description = Description +} + +asset.onInitialize(function() + if not openspace.directoryExists(imagesDestination) then + openspace.printInfo("Extracting " .. Name) + openspace.unzipFile(syncedDirectory .. "4000.zip", imagesDestination, true) + end + + openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer) +end) + +asset.onDeinitialize(function() + openspace.globebrowsing.deleteLayer(globeIdentifier, "ColorLayers", layer) +end) + +asset.export(layer) + + +asset.meta = { + Name = Name, + Version = "1.0", + Description = Description .. "Data provided by the National Oceanic and Atmospheric Administration.", + Author = "National Oceanic and Atmospheric Administration", + URL = URL, + License = "https://sos.noaa.gov/copyright/" +} diff --git a/data/assets/scene/solarsystem/planets/earth/noaa-sos/oceans/ocean_acid-co2_flux.asset b/data/assets/scene/solarsystem/planets/earth/noaa-sos/oceans/ocean_acid-co2_flux.asset new file mode 100644 index 0000000000..c4a29120cb --- /dev/null +++ b/data/assets/scene/solarsystem/planets/earth/noaa-sos/oceans/ocean_acid-co2_flux.asset @@ -0,0 +1,73 @@ +local globeIdentifier = asset.require("../../earth").Earth.Identifier + + +local Name = "Ocean-Atmosphere CO2 Exchange" +local Identifier = "noaa-sos-oceans-ocean_acid-co2_flux" +local Description = [[ When carbon dioxide CO2 is released into the atmosphere from the +burning of fossil fuels, approximately 50% remains in the atmosphere, while 25% is +absorbed by land plants and trees, and the other 25% is absorbed into certain areas of +the ocean. In other areas of the ocean, where the concentration of CO2 is higher in the +water than in atmosphere above, CO2 is released to the atmosphere. ]] +local URL = "https://sos.noaa.gov/catalog/datasets/ocean-atmosphere-co2-exchange/" + + +local syncedDirectory = asset.syncedResource({ + Name = Name, + Type = "HttpSynchronization", + Identifier = Identifier, + Version = 1 +}) + +local imagesDestination = syncedDirectory .. "images" + + +local layer = { + Identifier = Identifier, + Name = Name, + Type = "TemporalTileLayer", + Mode = "Folder", + Folder = { + Folder = imagesDestination, + -- See https://en.cppreference.com/w/cpp/io/manip/get_time for an explanation of the + -- time formatting string + Format = "CO2F.yearly.%Y.color.png" + }, + Description = Description +} + +local colorbar = { + Identifier = Identifier, + Name = Name, + Type = "ScreenSpaceImageLocal", + TexturePath = syncedDirectory .. "colorbar.png", + FaceCamera = false, + CartesianPosition = { 0.0, -0.5, -2.0 } +} + +asset.onInitialize(function() + if not openspace.directoryExists(imagesDestination) then + openspace.printInfo("Extracting " .. Name) + openspace.unzipFile(syncedDirectory .. "images.zip", imagesDestination, true) + end + + openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer) + openspace.addScreenSpaceRenderable(colorbar); +end) + +asset.onDeinitialize(function() + openspace.globebrowsing.deleteLayer(globeIdentifier, "ColorLayers", layer) + openspace.removeScreenSpaceRenderable(colorbar) +end) + +asset.export(layer) +asset.export(colorbar) + + +asset.meta = { + Name = Name, + Version = "1.0", + Description = Description .. "Data provided by the National Oceanic and Atmospheric Administration.", + Author = "National Oceanic and Atmospheric Administration", + URL = URL, + License = "https://sos.noaa.gov/copyright/" +} diff --git a/data/assets/scene/solarsystem/planets/earth/noaa-sos/oceans/ocean_acid-ph.asset b/data/assets/scene/solarsystem/planets/earth/noaa-sos/oceans/ocean_acid-ph.asset new file mode 100644 index 0000000000..c6a0939d88 --- /dev/null +++ b/data/assets/scene/solarsystem/planets/earth/noaa-sos/oceans/ocean_acid-ph.asset @@ -0,0 +1,75 @@ +local globeIdentifier = asset.require("../../earth").Earth.Identifier + + +local Name = "Ocean Acidification: Surface pH" +local Identifier = "noaa-sos-oceans-ocean_acid-ph" +local Description = [[ Ranging from 0 to 14, pH is a scale that describes the acid and +base properties of a solution. The ocean's surface has an average pH of around 8.1, which +is slightly basic. The pH of the open ocean is relatively stable in both time and space; +however, the uptake of CO2 by the ocean has caused measurable changes in seawater. The +imagery here shows the output of a computer model that makes predictions of how the pH +will change over time based on best estimates of likely CO2 emissions (RCP 8.5) used in +the United Nations Intergovernmental Panel on Climate Change's AR5 assessment. The +dataset starts in 1861 and runs through 2100. ]] +local URL = "https://sos.noaa.gov/catalog/datasets/ocean-acidification-surface-ph/" + + +local syncedDirectory = asset.syncedResource({ + Name = Name, + Type = "HttpSynchronization", + Identifier = Identifier, + Version = 1 +}) + +local imagesDestination = syncedDirectory .. "images" + +local layer = { + Identifier = Identifier, + Name = Name, + Type = "TemporalTileLayer", + Mode = "Folder", + Folder = { + Folder = imagesDestination, + -- See https://en.cppreference.com/w/cpp/io/manip/get_time for an explanation of the + -- time formatting string + Format = "ACID.yearly.%Y.color.png" + }, + Description = Description +} + +local colorbar = { + Identifier = Identifier, + Name = Name, + Type = "ScreenSpaceImageLocal", + TexturePath = syncedDirectory .. "colorbar.png", + FaceCamera = false, + CartesianPosition = { 0.0, -0.5, -2.0 } +} + +asset.onInitialize(function() + if not openspace.directoryExists(imagesDestination) then + openspace.printInfo("Extracting " .. Name) + openspace.unzipFile(syncedDirectory .. "images.zip", imagesDestination, true) + end + + openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer) + openspace.addScreenSpaceRenderable(colorbar); +end) + +asset.onDeinitialize(function() + openspace.globebrowsing.deleteLayer(globeIdentifier, "ColorLayers", layer) + openspace.removeScreenSpaceRenderable(colorbar) +end) + +asset.export(layer) +asset.export(colorbar) + + +asset.meta = { + Name = Name, + Version = "1.0", + Description = Description .. "Data provided by the National Oceanic and Atmospheric Administration.", + Author = "National Oceanic and Atmospheric Administration", + URL = URL, + License = "https://sos.noaa.gov/copyright/" +} diff --git a/data/assets/scene/solarsystem/planets/earth/noaa-sos/oceans/ocean_acid-saturation.asset b/data/assets/scene/solarsystem/planets/earth/noaa-sos/oceans/ocean_acid-saturation.asset new file mode 100644 index 0000000000..3138c61ec2 --- /dev/null +++ b/data/assets/scene/solarsystem/planets/earth/noaa-sos/oceans/ocean_acid-saturation.asset @@ -0,0 +1,90 @@ +local globeIdentifier = asset.require("../../earth").Earth.Identifier + + +local Name = "Ocean Acidification: Saturation State" +local Identifier = "noaa-sos-oceans-ocean_acid-saturation" +local Description = [[ Ocean acidification is an often overlooked consequence of +humankind's release of carbon dioxide emissions into the atmosphere from fossil fuel +burning. Excess carbon dioxide enters the ocean and reacts with water to form carbonic +acid, which decreases ocean pH (i.e., makes seawater less basic), and lowers carbonate +ion concentrations. Organisms such as corals, clams, oysters, and some plankton use +carbonate ions to create their shells and skeletons. Decreases in carbonate ion +concentration will make it difficult for these creatures to form hard structures, +particularly for juveniles. Ocean acidification may cause some organisms to die, +reproduce less successfully, or leave an area. Other organisms such as seagrass and some +plankton species may do better in oceans affected by ocean acidification because they use +carbon dioxide to photosynthesize, but do not require carbonate ions to survive. Ocean +ecosystem diversity and ecosystem services may therefore change dramatically from ocean +acidification. ]] +local URL = "https://sos.noaa.gov/catalog/datasets/ocean-acidification-saturation-state/" + + +local syncedDirectory = asset.syncedResource({ + Name = Name, + Type = "HttpSynchronization", + Identifier = Identifier, + Version = 1 +}) + +local imagesDestination = syncedDirectory .. "images" + +local layer = { + Identifier = Identifier, + Name = Name, + Type = "TemporalTileLayer", + Mode = "Folder", + Folder = { + Folder = imagesDestination, + -- See https://en.cppreference.com/w/cpp/io/manip/get_time for an explanation of the + -- time formatting string + Format = "ARAG.yearly.%Y.color.png" + }, + Description = Description +} + +local reefs = { + Identifier = Identifier .. "-reefs", + Name = Name .. " (Reefs)", + FilePath = syncedDirectory .. "reefs.png", + Description = Description, +} + +local colorbar = { + Identifier = Identifier, + Name = Name, + Type = "ScreenSpaceImageLocal", + TexturePath = syncedDirectory .. "colorbar.png", + FaceCamera = false, + CartesianPosition = { 0.0, -0.5, -2.0 } +} + +asset.onInitialize(function() + if not openspace.directoryExists(imagesDestination) then + openspace.printInfo("Extracting " .. Name) + openspace.unzipFile(syncedDirectory .. "images.zip", imagesDestination, true) + end + + openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer) + openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", reefs) + openspace.addScreenSpaceRenderable(colorbar); +end) + +asset.onDeinitialize(function() + openspace.globebrowsing.deleteLayer(globeIdentifier, "ColorLayers", layer) + openspace.globebrowsing.deleteLayer(globeIdentifier, "ColorLayers", reefs) + openspace.removeScreenSpaceRenderable(colorbar) +end) + +asset.export(layer) +asset.export(reefs) +asset.export(colorbar) + + +asset.meta = { + Name = Name, + Version = "1.0", + Description = Description .. "Data provided by the National Oceanic and Atmospheric Administration.", + Author = "National Oceanic and Atmospheric Administration", + URL = URL, + License = "https://sos.noaa.gov/copyright/" +} diff --git a/data/assets/scene/solarsystem/planets/earth/noaa-sos/oceans/ocean_depths_temp.asset b/data/assets/scene/solarsystem/planets/earth/noaa-sos/oceans/ocean_depths_temp.asset new file mode 100644 index 0000000000..a7222d6a56 --- /dev/null +++ b/data/assets/scene/solarsystem/planets/earth/noaa-sos/oceans/ocean_depths_temp.asset @@ -0,0 +1,83 @@ +local globeIdentifier = asset.require("../../earth").Earth.Identifier + + +local Name = "Ocean Temperature at Depth - Seasonal" +local Identifier = "noaa-sos-oceans-ocean_depths_temp" +local Description = [[ Though satellites provide highly detailed analyses of the +temperature of the ocean surface, they cannot measure temperatures below the first 1 mm +of water. For that deeper understanding, NOAA relies on thousands of buoys, ships, +undersea gliders and other devices to measure temperatures at depth. The measurements are +consolidated every few years by the National Oceanographic Data Center into a product +known as the World Ocean Atlas. The measurements shown here go as deep as 5,000 m — far +deeper than many places in the ocean — which is why there is a lack of data (black areas) +in some of the deeper imagery. ]] +local URL = "https://sos.noaa.gov/catalog/datasets/ocean-temperature-at-depth-seasonal/" + + +local syncedDirectory = asset.syncedResource({ + Name = Name, + Type = "HttpSynchronization", + Identifier = Identifier, + Version = 1 +}) + +local imagesDestination = syncedDirectory .. "images" +local imagesByDepthDestination = syncedDirectory .. "bydepth" + +local layer = { + Identifier = Identifier, + Name = Name, + Type = "ImageSequenceTileLayer", + FolderPath = imagesDestination, + Description = Description +} + +local layerByDepth = { + Identifier = Identifier .. "-bydepth", + Name = Name .. " (by Depth)", + Type = "ImageSequenceTileLayer", + FolderPath = imagesByDepthDestination, + Description = Description +} + +local colorbar = { + Identifier = Identifier, + Name = Name, + Type = "ScreenSpaceImageLocal", + TexturePath = syncedDirectory .. "colorbar.png", + FaceCamera = false, + CartesianPosition = { 0.0, -0.5, -2.0 } +} + +asset.onInitialize(function() + if not openspace.directoryExists(imagesDestination) then + openspace.printInfo("Extracting " .. Name) + openspace.unzipFile(syncedDirectory .. "4096.zip", imagesDestination, true) + end + + if not openspace.directoryExists(imagesByDepthDestination) then + openspace.printInfo("Extracting " .. Name) + openspace.unzipFile(syncedDirectory .. "4096_by_depth.zip", imagesByDepthDestination, true) + end + + openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer) + openspace.addScreenSpaceRenderable(colorbar); +end) + +asset.onDeinitialize(function() + openspace.globebrowsing.deleteLayer(globeIdentifier, "ColorLayers", layer) + openspace.removeScreenSpaceRenderable(colorbar) +end) + +asset.export(layer) +asset.export(colorbar) + + +asset.meta = { + Name = Name, + Version = "1.0", + Description = Description .. "Data provided by the National Oceanic and Atmospheric Administration.", + Author = "National Oceanic and Atmospheric Administration", + URL = URL, + License = "https://sos.noaa.gov/copyright/" +} diff --git a/data/assets/scene/solarsystem/planets/earth/noaa-sos/oceans/ocean_drain-gray.asset b/data/assets/scene/solarsystem/planets/earth/noaa-sos/oceans/ocean_drain-gray.asset new file mode 100644 index 0000000000..695f1dead5 --- /dev/null +++ b/data/assets/scene/solarsystem/planets/earth/noaa-sos/oceans/ocean_drain-gray.asset @@ -0,0 +1,55 @@ +local globeIdentifier = asset.require("../../earth").Earth.Identifier + + +local Name = "Ocean Drain (with gray bathymetry)" +local Identifier = "noaa-sos-oceans-ocean_drain-gray" +local Description = [[ Beneath the sea surface is an amazing sea floor that contains +mountain ranges, trenches and plains. The ocean covers 71% of the Earth's surface, has an +area of 139,400,000 square miles and an average depth of 2.3 miles. Due to this vast +size, only a few percent the sea floor has been mapped by ships. Maps of the sea floor +are created by combining soundings from ships, sonar scans from ships, and gravity +anomalies in the sea surface detected by satellites. ]] +local URL = "https://sos.noaa.gov/catalog/datasets/ocean-drain-with-gray-bathymetry/" + + +local syncedDirectory = asset.syncedResource({ + Name = Name, + Type = "HttpSynchronization", + Identifier = Identifier, + Version = 1 +}) + +local imagesDestination = syncedDirectory .. "images" + +local layer = { + Identifier = Identifier, + Name = Name, + Type = "ImageSequenceTileLayer", + FolderPath = imagesDestination, + Description = Description +} + +asset.onInitialize(function() + if not openspace.directoryExists(imagesDestination) then + openspace.printInfo("Extracting " .. Name) + openspace.unzipFile(syncedDirectory .. "4096.zip", imagesDestination, true) + end + + openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer) +end) + +asset.onDeinitialize(function() + openspace.globebrowsing.deleteLayer(globeIdentifier, "ColorLayers", layer) +end) + +asset.export(layer) + + +asset.meta = { + Name = Name, + Version = "1.0", + Description = Description .. "Data provided by the National Oceanic and Atmospheric Administration.", + Author = "National Oceanic and Atmospheric Administration", + URL = URL, + License = "https://sos.noaa.gov/copyright/" +} diff --git a/data/assets/scene/solarsystem/planets/earth/noaa-sos/oceans/pac_turtle.asset b/data/assets/scene/solarsystem/planets/earth/noaa-sos/oceans/pac_turtle.asset new file mode 100644 index 0000000000..c2d428e604 --- /dev/null +++ b/data/assets/scene/solarsystem/planets/earth/noaa-sos/oceans/pac_turtle.asset @@ -0,0 +1,63 @@ +local globeIdentifier = asset.require("../../earth").Earth.Identifier + + +local Name = "Sea Turtle Track: Pacific Ocean" +local Identifier = "noaa-sos-oceans-pac_turtle" +local Description = [[ It is common for scientists to tag animals and release them into +their natural environment in order to study their behaviors and migration. Adelita, a +loggerhead (Caretta caretta) sea turtle, was originally captured off of Baja, Mexico as +an 8-pound juvenile. After being raised in captivity, Adelita was released on August 10, +1996 from Santa Rosaliita, a small town in Mexico on the Baja Peninsula. Adelita weighed +223 pounds when she was released. Before she was released, Wallace J. Nichols, then a + Ph.D. student at the University of Arizona, outfitted Adelita with a satellite tag. The + tag transmitted a signal that allowed Adelita's track to be monitored post-release. ]] +local URL = "https://sos.noaa.gov/catalog/datasets/sea-turtle-track-pacific-ocean/" + + +local syncedDirectory = asset.syncedResource({ + Name = Name, + Type = "HttpSynchronization", + Identifier = Identifier, + Version = 1 +}) + +local imagesDestination = syncedDirectory .. "images" + +local layer = { + Identifier = Identifier, + Name = Name, + Type = "TemporalTileLayer", + Mode = "Folder", + Folder = { + Folder = imagesDestination, + -- See https://en.cppreference.com/w/cpp/io/manip/get_time for an explanation of the + -- time formatting string + Format = "pac-turtle-migration-%y%j-%H%M.jpg" + }, + Description = Description +} + +asset.onInitialize(function() + if not openspace.directoryExists(imagesDestination) then + openspace.printInfo("Extracting " .. Name) + openspace.unzipFile(syncedDirectory .. "2048.zip", imagesDestination, true) + end + + openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer) +end) + +asset.onDeinitialize(function() + openspace.globebrowsing.deleteLayer(globeIdentifier, "ColorLayers", layer) +end) + +asset.export(layer) + + +asset.meta = { + Name = Name, + Version = "1.0", + Description = Description .. "Data provided by the National Oceanic and Atmospheric Administration.", + Author = "National Oceanic and Atmospheric Administration", + URL = URL, + License = "https://sos.noaa.gov/copyright/" +} diff --git a/data/assets/scene/solarsystem/planets/earth/noaa-sos/oceans/phytoplankton.asset b/data/assets/scene/solarsystem/planets/earth/noaa-sos/oceans/phytoplankton.asset new file mode 100644 index 0000000000..ca35f0a57c --- /dev/null +++ b/data/assets/scene/solarsystem/planets/earth/noaa-sos/oceans/phytoplankton.asset @@ -0,0 +1,79 @@ +local globeIdentifier = asset.require("../../earth").Earth.Identifier + + +local Name = "Phytoplankton Model" +local Identifier = "noaa-sos-oceans-phytoplankton" +local Description = [[ Phytoplankton are the base of the marine food web and are crucial +players in the Earth's carbon cycle. They are also incredibly diverse. This visualization +shows dominant phytoplankton types from 1994-1998 generated by the Darwin Project using a +high-resolution ocean and ecosystem model. The model contains flow fields from 1994-1999 +(generated by the ECCO2 model), inorganic nutrients, 78 species of phytoplankton, +zooplankton, as well as particulate and dissolved organic matter. Colors represent the +most dominant type of phytoplankton at a given location based on their size and ability +to uptake nutrients. Red represents diatoms (big phytoplankton, which need silica), +yellow represents flagellates (other big phytoplankton), green represents prochlorococcus +(small phytoplankton that cannot use nitrate), and cyan represents synechococcus (other +small phytoplankton). Opacity indicates concentration of the phytoplankton as carbon +biomass. ]] +local URL = "https://sos.noaa.gov/catalog/datasets/phytoplankton-model/" + + +local syncedDirectory = asset.syncedResource({ + Name = Name, + Type = "HttpSynchronization", + Identifier = Identifier, + Version = 1 +}) + +local imagesDestination = syncedDirectory .. "images" + +local layer = { + Identifier = Identifier, + Name = Name, + Type = "ImageSequenceTileLayer", + FolderPath = imagesDestination, + Description = Description +} + +local colorbar = { + Identifier = Identifier, + Name = Name, + Type = "ScreenSpaceImageLocal", + TexturePath = syncedDirectory .. "colorbar.png", + FaceCamera = false, + CartesianPosition = { 0.8, 0.0, -2.0 } +} + +asset.onInitialize(function() + if not openspace.directoryExists(imagesDestination) then + openspace.printInfo("Extracting " .. Name) + openspace.unzipFile(syncedDirectory .. "4096-1.zip", imagesDestination, true) + openspace.unzipFile(syncedDirectory .. "4096-2.zip", imagesDestination, true) + openspace.unzipFile(syncedDirectory .. "4096-3.zip", imagesDestination, true) + openspace.unzipFile(syncedDirectory .. "4096-4.zip", imagesDestination, true) + openspace.unzipFile(syncedDirectory .. "4096-5.zip", imagesDestination, true) + openspace.unzipFile(syncedDirectory .. "4096-6.zip", imagesDestination, true) + openspace.unzipFile(syncedDirectory .. "4096-7.zip", imagesDestination, true) + end + + openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer) + openspace.addScreenSpaceRenderable(colorbar); +end) + +asset.onDeinitialize(function() + openspace.globebrowsing.deleteLayer(globeIdentifier, "ColorLayers", layer) + openspace.removeScreenSpaceRenderable(colorbar) +end) + +asset.export(layer) +asset.export(colorbar) + + +asset.meta = { + Name = Name, + Version = "1.0", + Description = Description .. "Data provided by the National Oceanic and Atmospheric Administration.", + Author = "National Oceanic and Atmospheric Administration", + URL = URL, + License = "https://sos.noaa.gov/copyright/" +} diff --git a/data/assets/scene/solarsystem/planets/earth/noaa-sos/oceans/pr_tsunami.asset b/data/assets/scene/solarsystem/planets/earth/noaa-sos/oceans/pr_tsunami.asset new file mode 100644 index 0000000000..4df07ef217 --- /dev/null +++ b/data/assets/scene/solarsystem/planets/earth/noaa-sos/oceans/pr_tsunami.asset @@ -0,0 +1,58 @@ +local globeIdentifier = asset.require("../../earth").Earth.Identifier + + +local Name = "Puerto Rico Hypothetical Tsunami" +local Identifier = "noaa-sos-oceans-pr_tsunami" +local Description = [[ After the devastation of the Indian Ocean Tsunami on December 26, +2004, much attention has been given to tsunami research. The National Center for Tsunami +Research, which is part of the Pacific Marine Environmental Laboratory, spearheaded the +research efforts in the United States. A tsunami is a series of waves generated when a +body of water, such as the ocean, is rapidly displaced on a massive scale. This is most +likely to happen where the tectonic plates meet and create trenches. An earthquake in +these regions can cause one plate to subduct under another and displace huge amounts of +water. One location that has garnered much attention from scientists is the Puerto Rico +Trench, the deepest location in the Atlantic Ocean. ]] +local URL = "https://sos.noaa.gov/catalog/datasets/puerto-rico-hypothetical-tsunami/" + + +local syncedDirectory = asset.syncedResource({ + Name = Name, + Type = "HttpSynchronization", + Identifier = Identifier, + Version = 1 +}) + +local imagesDestination = syncedDirectory .. "images" + +local layer = { + Identifier = Identifier, + Name = Name, + Type = "ImageSequenceTileLayer", + FolderPath = imagesDestination, + Description = Description +} + +asset.onInitialize(function() + if not openspace.directoryExists(imagesDestination) then + openspace.printInfo("Extracting " .. Name) + openspace.unzipFile(syncedDirectory .. "2048.zip", imagesDestination, true) + end + + openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer) +end) + +asset.onDeinitialize(function() + openspace.globebrowsing.deleteLayer(globeIdentifier, "ColorLayers", layer) +end) + +asset.export(layer) + + +asset.meta = { + Name = Name, + Version = "1.0", + Description = Description .. "Data provided by the National Oceanic and Atmospheric Administration.", + Author = "National Oceanic and Atmospheric Administration", + URL = URL, + License = "https://sos.noaa.gov/copyright/" +} diff --git a/data/assets/scene/solarsystem/planets/earth/noaa-sos/oceans/reefs_risk.asset b/data/assets/scene/solarsystem/planets/earth/noaa-sos/oceans/reefs_risk.asset new file mode 100644 index 0000000000..10adb3332f --- /dev/null +++ b/data/assets/scene/solarsystem/planets/earth/noaa-sos/oceans/reefs_risk.asset @@ -0,0 +1,91 @@ +local globeIdentifier = asset.require("../../earth").Earth.Identifier + + +local Name = "Coral Reef Risk Outlook" +local Identifier = "noaa-sos-oceans-reefs_risk" +local Description = [[ From tourism to disease prevention, it's clear that reefs offer +much more than recreation. According to the newly released Reefs at Risk Revisited +report, coral reefs: + +Support more than 275 million people worldwide. +Protect coastlines in more than 100 countries - helping defend against storms and erosion. +Accounts for 15% of gross domestic product in more than 20 countries. +Hold the potential to fight disease - including treatments for cancer, HIV, malaria, and +other diseases. + +Yet coral reefs today face serious threats. The new report finds that approximately 75% +of world's coral reefs are currently threatened by local and global pressures. Local +pressures pose the most immediate threat - especially from overfishing and destructive +fishing, which is particularly widespread in Southeast Asia. Global threats from climate +change and alterations in ocean chemistry (i.e. ocean acidification) are compounding the +pressures on reefs. Climate change is causing ocean temperatures to rise, which, in turn, +is leading to wide-spread coral bleaching. ]] +local URL = "https://sos.noaa.gov/catalog/datasets/coral-reef-risk-outlook/" + + +local syncedDirectory = asset.syncedResource({ + Name = Name, + Type = "HttpSynchronization", + Identifier = Identifier, + Version = 1 +}) + +local layer_2012 = { + Identifier = Identifier .. "-2012", + Name = Name .. " (2012)", + FilePath = syncedDirectory .. "2012_2048.jpg", + Description = Description +} + +local layer_2030 = { + Identifier = Identifier .. "-2030", + Name = Name .. " (2030)", + FilePath = syncedDirectory .. "2030_2048.jpg", + Description = Description +} + +local layer_2050 = { + Identifier = Identifier .. "-2050", + Name = Name .. " (2050)", + FilePath = syncedDirectory .. "2050_2048.jpg", + Description = Description +} + +local legend = { + Identifier = Identifier, + Name = Name, + Type = "ScreenSpaceImageLocal", + TexturePath = syncedDirectory .. "coral_legend.png", + FaceCamera = false, + Scale = 0.3, + CartesianPosition = { 0.0, -0.5, -2.0 } +} + +asset.onInitialize(function() + openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer_2012) + openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer_2030) + openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer_2050) + openspace.addScreenSpaceRenderable(legend); +end) + +asset.onDeinitialize(function() + openspace.globebrowsing.deleteLayer(globeIdentifier, "ColorLayers", layer_2012) + openspace.globebrowsing.deleteLayer(globeIdentifier, "ColorLayers", layer_2030) + openspace.globebrowsing.deleteLayer(globeIdentifier, "ColorLayers", layer_2050) + openspace.removeScreenSpaceRenderable(legend) +end) + +asset.export(layer_2012) +asset.export(layer_2030) +asset.export(layer_2050) +asset.export(legend) + + +asset.meta = { + Name = Name, + Version = "1.0", + Description = Description .. "Data provided by the National Oceanic and Atmospheric Administration.", + Author = "National Oceanic and Atmospheric Administration", + URL = URL, + License = "https://sos.noaa.gov/copyright/" +} diff --git a/data/assets/scene/solarsystem/planets/earth/noaa-sos/oceans/sea_level.asset b/data/assets/scene/solarsystem/planets/earth/noaa-sos/oceans/sea_level.asset new file mode 100644 index 0000000000..4e7aa0eaae --- /dev/null +++ b/data/assets/scene/solarsystem/planets/earth/noaa-sos/oceans/sea_level.asset @@ -0,0 +1,63 @@ +local globeIdentifier = asset.require("../../earth").Earth.Identifier + + +local Name = "Sea Level Rise: 10m Increments" +local Identifier = "noaa-sos-oceans-sea_level" +local Description = [[ There are many questions surrounding climate change. One big +question is how the changing climate will affect the oceans. The sea level has been +steadily rising since 1900 at a rate of 1 to 2.5 millimeters per year. In fact, since +1992 new methods of satellite altimetry using the TOPEX/Poseidon satellite indicate a +rate of rise of 3 millimeters per year. The Fourth Assessment Report from the IPCC states +that "there is strong evidence that global sea level gradually rose in the 20th century +and is currently rising at an increased rate, after a period of little change between AD +0 and AD 1900. Sea level is projected to rise at an even greater rate in this century. " +- Fourth Assessment Report on Sea Level Rise Sea level can rise by two different +mechanisms with respect to climate change. The first is the expansion of the sea water as +the oceans warm due to an increasing global temperature. The second mechanism is the +melting of ice over land, which then adds water to the ocean. The IPCC Fourth Assessment +Report predicts that total global-average sea level rise from 1990 - 2100 will be 7 - 15 +inches for low emission scenarios and 10 - 23 inches for high emission scenarios. ]] +local URL = "https://sos.noaa.gov/catalog/datasets/sea-level-rise-10m-increments/" + + +local syncedDirectory = asset.syncedResource({ + Name = Name, + Type = "HttpSynchronization", + Identifier = Identifier, + Version = 1 +}) + +local imagesDestination = syncedDirectory .. "images" + +local layer = { + Identifier = Identifier, + Name = Name, + Type = "ImageSequenceTileLayer", + FolderPath = imagesDestination, + Description = Description +} + +asset.onInitialize(function() + if not openspace.directoryExists(imagesDestination) then + openspace.printInfo("Extracting " .. Name) + openspace.unzipFile(syncedDirectory .. "4000.zip", imagesDestination, true) + end + + openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer) +end) + +asset.onDeinitialize(function() + openspace.globebrowsing.deleteLayer(globeIdentifier, "ColorLayers", layer) +end) + +asset.export(layer) + + +asset.meta = { + Name = Name, + Version = "1.0", + Description = Description .. "Data provided by the National Oceanic and Atmospheric Administration.", + Author = "National Oceanic and Atmospheric Administration", + URL = URL, + License = "https://sos.noaa.gov/copyright/" +} diff --git a/data/assets/scene/solarsystem/planets/earth/noaa-sos/oceans/sea_level_trends.asset b/data/assets/scene/solarsystem/planets/earth/noaa-sos/oceans/sea_level_trends.asset new file mode 100644 index 0000000000..d9c8e89878 --- /dev/null +++ b/data/assets/scene/solarsystem/planets/earth/noaa-sos/oceans/sea_level_trends.asset @@ -0,0 +1,69 @@ +local globeIdentifier = asset.require("../../earth").Earth.Identifier + + +local Name = "Sea Level Trends - 1993 - 2012" +local Identifier = "noaa-sos-oceans-sea_level_trends" +local Description = [[ There are many questions surrounding climate change. One big +question is how the changing climate will affect the oceans. The sea level has been +steadily rising since 1900 at a rate of 1 to 2.5 millimeters per year. In fact, since +1992 new methods of satellite altimetry using the TOPEX/Poseidon satellite indicate a +rate of rise of 3 millimeters per year. The Fourth Assessment Report from the IPCC states +that "there is strong evidence that global sea level gradually rose in the 20th century +and is currently rising at an increased rate, after a period of little change between AD +0 and AD 1900. Sea level is projected to rise at an even greater rate in this century. " +- Fourth Assessment Report on Sea Level Rise Sea level can rise by two different +mechanisms with respect to climate change. The first is the expansion of the sea water as +the oceans warm due to an increasing global temperature. The second mechanism is the +melting of ice over land, which then adds water to the ocean. The IPCC Fourth Assessment +Report predicts that total global-average sea level rise from 1990 - 2100 will be 7 - 15 +inches (177 - 381 mm) for low emission scenarios and 10 - 23 inches (254 - 584 mm) for +high emission scenarios. ]] +local URL = "https://sos.noaa.gov/catalog/datasets/sea-level-trends-1993-2012/" + + +local syncedDirectory = asset.syncedResource({ + Name = Name, + Type = "HttpSynchronization", + Identifier = Identifier, + Version = 1 +}) + +local layer = { + Identifier = Identifier, + Name = Name, + FilePath = syncedDirectory .. "4096.png", + Description = Description +} + +local colorbar = { + Identifier = Identifier, + Name = Name, + Type = "ScreenSpaceImageLocal", + TexturePath = syncedDirectory .. "colorbar.png", + FaceCamera = false, + BackgroundColor = { 1.0, 1.0, 1.0, 1.0 }, + CartesianPosition = { 0.0, -0.5, -2.0 } +} + +asset.onInitialize(function() + openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer) + openspace.addScreenSpaceRenderable(colorbar); +end) + +asset.onDeinitialize(function() + openspace.globebrowsing.deleteLayer(globeIdentifier, "ColorLayers", layer) + openspace.removeScreenSpaceRenderable(colorbar) +end) + +asset.export(layer) +asset.export(colorbar) + + +asset.meta = { + Name = Name, + Version = "1.0", + Description = Description .. "Data provided by the National Oceanic and Atmospheric Administration.", + Author = "National Oceanic and Atmospheric Administration", + URL = URL, + License = "https://sos.noaa.gov/copyright/" +} diff --git a/data/assets/scene/solarsystem/planets/earth/noaa-sos/oceans/sea_surface_height_anomaly.asset b/data/assets/scene/solarsystem/planets/earth/noaa-sos/oceans/sea_surface_height_anomaly.asset new file mode 100644 index 0000000000..1187e8c627 --- /dev/null +++ b/data/assets/scene/solarsystem/planets/earth/noaa-sos/oceans/sea_surface_height_anomaly.asset @@ -0,0 +1,73 @@ +local globeIdentifier = asset.require("../../earth").Earth.Identifier + + +local Name = "Sea Surface Height Anomaly" +local Identifier = "noaa-sos-oceans-sea_surface_height_anomaly" +local Description = [[ To gather long-term information about the world's oceans and +currents, satellite instruments make extremely precise measurements of the height of the +ocean surface above the center of the Earth, a measurement commonly called sea level. +These data are combined to reveal the ocean surface topography (not to be confused with +bathymetry, which is the relief on the bottom of the ocean). Sea surface height is of +interest to scientists because it reveals information about how much heat is stored in +the ocean. Warm water is less dense than cold water, so higher areas tend to be warmer +than lower areas. Radar altimeter instruments onboard spacecraft have been continuously +collecting sea surface height data over the global ocean for almost two decades. ]] +local URL = "https://sos.noaa.gov/catalog/datasets/sea-surface-height-anomaly/" + + +local syncedDirectory = asset.syncedResource({ + Name = Name, + Type = "HttpSynchronization", + Identifier = Identifier, + Version = 1 +}) + +local imagesDestination = syncedDirectory .. "images" + +local layer = { + Identifier = Identifier, + Name = Name, + Type = "ImageSequenceTileLayer", + FolderPath = imagesDestination, + Description = Description +} + +local colorbar = { + Identifier = Identifier, + Name = Name, + Type = "ScreenSpaceImageLocal", + TexturePath = syncedDirectory .. "colorbar.png", + FaceCamera = false, + BackgroundColor = { 1.0, 1.0, 1.0, 1.0 }, + CartesianPosition = { 0.0, -0.5, -2.0 } +} + +asset.onInitialize(function() + if not openspace.directoryExists(imagesDestination) then + openspace.printInfo("Extracting " .. Name) + openspace.unzipFile(syncedDirectory .. "8192-1.zip", imagesDestination, true) + openspace.unzipFile(syncedDirectory .. "8192-2.zip", imagesDestination, true) + openspace.unzipFile(syncedDirectory .. "8192-3.zip", imagesDestination, true) + end + + openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer) + openspace.addScreenSpaceRenderable(colorbar); +end) + +asset.onDeinitialize(function() + openspace.globebrowsing.deleteLayer(globeIdentifier, "ColorLayers", layer) + openspace.removeScreenSpaceRenderable(colorbar) +end) + +asset.export(layer) +asset.export(colorbar) + + +asset.meta = { + Name = Name, + Version = "1.0", + Description = Description .. "Data provided by the National Oceanic and Atmospheric Administration.", + Author = "National Oceanic and Atmospheric Administration", + URL = URL, + License = "https://sos.noaa.gov/copyright/" +} diff --git a/data/assets/scene/solarsystem/planets/earth/noaa-sos/oceans/seaice_monthly.asset b/data/assets/scene/solarsystem/planets/earth/noaa-sos/oceans/seaice_monthly.asset new file mode 100644 index 0000000000..7c00ef3d7e --- /dev/null +++ b/data/assets/scene/solarsystem/planets/earth/noaa-sos/oceans/seaice_monthly.asset @@ -0,0 +1,63 @@ +local globeIdentifier = asset.require("../../earth").Earth.Identifier + + +local Name = "Sea Ice Extent (Arctic only) - 1850 - Present" +local Identifier = "noaa-sos-oceans-seaice_monthly" +local Description = [[ Arctic sea ice extent is declining at a rapid rate; the extent in +September, 2019 was about 30% lower than the average September extent over 1980-2010. Sea +ice in both hemispheres can be easily monitored now, with data from a series of +satellites that have been operating since the late 1970s. Every year, NOAA publishes the +Arctic Report Card. In it, scientists summarize how sea ice, along with snow cover, +tundra greenness, marine algae, caribou, and other indicators of change are responding to +warming that is taking place about two times faster in the Arctic than elsewhere on the +planet. ]] +local URL = "https://sos.noaa.gov/catalog/datasets/sea-ice-extent-arctic-only-1850-present/" + + +local syncedDirectory = asset.syncedResource({ + Name = Name, + Type = "HttpSynchronization", + Identifier = Identifier, + Version = 1 +}) + +local imagesDestination = syncedDirectory .. "images" + +local layer = { + Identifier = Identifier, + Name = Name, + Type = "TemporalTileLayer", + Mode = "Folder", + Folder = { + Folder = imagesDestination, + -- See https://en.cppreference.com/w/cpp/io/manip/get_time for an explanation of the + -- time formatting string + Format = "sibt1850_seaice_extent_%Y%M%H_sos.png" + }, + Description = Description +} + +asset.onInitialize(function() + if not openspace.directoryExists(imagesDestination) then + openspace.printInfo("Extracting " .. Name) + openspace.unzipFile(syncedDirectory .. "4096.zip", imagesDestination, true) + end + + openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer) +end) + +asset.onDeinitialize(function() + openspace.globebrowsing.deleteLayer(globeIdentifier, "ColorLayers", layer) +end) + +asset.export(layer) + + +asset.meta = { + Name = Name, + Version = "1.0", + Description = Description .. "Data provided by the National Oceanic and Atmospheric Administration.", + Author = "National Oceanic and Atmospheric Administration", + URL = URL, + License = "https://sos.noaa.gov/copyright/" +} diff --git a/data/assets/scene/solarsystem/planets/earth/noaa-sos/oceans/seaice_radiation.asset b/data/assets/scene/solarsystem/planets/earth/noaa-sos/oceans/seaice_radiation.asset new file mode 100644 index 0000000000..2b373ea854 --- /dev/null +++ b/data/assets/scene/solarsystem/planets/earth/noaa-sos/oceans/seaice_radiation.asset @@ -0,0 +1,57 @@ +local globeIdentifier = asset.require("../../earth").Earth.Identifier + + +local Name = "Sea Ice: Fraction and Solar Radiation Absorption" +local Identifier = "noaa-sos-oceans-seaice_radiation" +local Description = [[ While sea ice is mostly white and reflects the sun's rays, ocean +water is dark and absorbs the sun's energy at a higher rate. A decline in the region's +albedo - its reflectivity, in effect - has been a key concern among scientists since the +summer Arctic sea ice cover began shrinking in recent decades. As more of the sun's +energy is absorbed by the climate system, it enhances ongoing warming in the region, +which is more pronounced than anywhere else on the planet. ]] +local URL = "https://sos.noaa.gov/catalog/datasets/sea-ice-fraction-and-solar-radiation-absorption/" + + +local syncedDirectory = asset.syncedResource({ + Name = Name, + Type = "HttpSynchronization", + Identifier = Identifier, + Version = 1 +}) + +local layer_fraction = { + Identifier = Identifier, + Name = Name, + FilePath = syncedDirectory .. "sea_ice_fraction.png", + Description = Description +} + +local layer_solar = { + Identifier = Identifier .. "-solar", + Name = Name .. " (Solar)", + FilePath = syncedDirectory .. "solar.png", + Description = Description +} + +asset.onInitialize(function() + openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer_fraction) + openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer_solar) +end) + +asset.onDeinitialize(function() + openspace.globebrowsing.deleteLayer(globeIdentifier, "ColorLayers", layer_fraction) + openspace.globebrowsing.deleteLayer(globeIdentifier, "ColorLayers", layer_solar) +end) + +asset.export(layer_fraction) +asset.export(layer_solar) + + +asset.meta = { + Name = Name, + Version = "1.0", + Description = Description .. "Data provided by the National Oceanic and Atmospheric Administration.", + Author = "National Oceanic and Atmospheric Administration", + URL = URL, + License = "https://sos.noaa.gov/copyright/" +} diff --git a/data/assets/scene/solarsystem/planets/earth/noaa-sos/oceans/seawifs-land_background.asset b/data/assets/scene/solarsystem/planets/earth/noaa-sos/oceans/seawifs-land_background.asset new file mode 100644 index 0000000000..b0a7cc7c73 --- /dev/null +++ b/data/assets/scene/solarsystem/planets/earth/noaa-sos/oceans/seawifs-land_background.asset @@ -0,0 +1,64 @@ +local globeIdentifier = asset.require("../../earth").Earth.Identifier + + +local Name = "Biosphere: Marine Chlorophyll Concentration" +local Identifier = "noaa-sos-oceans-seawifs-land_background" +local Description = [[ The term biosphere refers to the regions of the surface, +atmosphere, and hydrosphere of the earth occupied by living organisms.This dataset shows +quantity of marine plant-life as it changes throughout the seasons of the year. ]] +local URL = "https://sos.noaa.gov/catalog/datasets/biosphere-marine-chlorophyll-concentration/" + + +local syncedDirectory = asset.syncedResource({ + Name = Name, + Type = "HttpSynchronization", + Identifier = Identifier, + Version = 1 +}) + +local imagesDestination = syncedDirectory .. "images" + +local layer = { + Identifier = Identifier, + Name = Name, + Type = "ImageSequenceTileLayer", + FolderPath = imagesDestination, + Description = Description +} + +local colorbar = { + Identifier = Identifier, + Name = Name, + Type = "ScreenSpaceImageLocal", + TexturePath = syncedDirectory .. "colorbar.png", + FaceCamera = false, + CartesianPosition = { 0.0, -0.5, -2.0 } +} + +asset.onInitialize(function() + if not openspace.directoryExists(imagesDestination) then + openspace.printInfo("Extracting " .. Name) + openspace.unzipFile(syncedDirectory .. "4096.zip", imagesDestination, true) + end + + openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer) + openspace.addScreenSpaceRenderable(colorbar); +end) + +asset.onDeinitialize(function() + openspace.globebrowsing.deleteLayer(globeIdentifier, "ColorLayers", layer) + openspace.removeScreenSpaceRenderable(colorbar) +end) + +asset.export(layer) +asset.export(colorbar) + + +asset.meta = { + Name = Name, + Version = "1.0", + Description = Description .. "Data provided by the National Oceanic and Atmospheric Administration.", + Author = "National Oceanic and Atmospheric Administration", + URL = URL, + License = "https://sos.noaa.gov/copyright/" +} diff --git a/data/assets/scene/solarsystem/planets/earth/noaa-sos/oceans/seawifs-no_holes.asset b/data/assets/scene/solarsystem/planets/earth/noaa-sos/oceans/seawifs-no_holes.asset new file mode 100644 index 0000000000..af079a3d04 --- /dev/null +++ b/data/assets/scene/solarsystem/planets/earth/noaa-sos/oceans/seawifs-no_holes.asset @@ -0,0 +1,65 @@ +local globeIdentifier = asset.require("../../earth").Earth.Identifier + + +local Name = "Biosphere: Marine Chlorophyll Concentration and Land Vegetation (with CO2 labels)" +local Identifier = "noaa-sos-oceans-seawifs-no_holes" +local Description = [[ The term biosphere refers to the regions of the surface, +atmosphere, and hydrosphere of the earth occupied by living organisms.This dataset shows +quantity of marine and land-based plant-life as it changes throughout the seasons of the +year. ]] +local URL = "https://sos.noaa.gov/catalog/datasets/biosphere-marine-chlorophyll-concentration-and-land-vegetation-with-co2-labels/" + + +local syncedDirectory = asset.syncedResource({ + Name = Name, + Type = "HttpSynchronization", + Identifier = Identifier, + Version = 1 +}) + +local imagesDestination = syncedDirectory .. "images" + +local layer = { + Identifier = Identifier, + Name = Name, + Type = "ImageSequenceTileLayer", + FolderPath = imagesDestination, + Description = Description +} + +local colorbar = { + Identifier = Identifier, + Name = Name, + Type = "ScreenSpaceImageLocal", + TexturePath = syncedDirectory .. "colorbar.png", + FaceCamera = false, + CartesianPosition = { 0.0, -0.5, -2.0 } +} + +asset.onInitialize(function() + if not openspace.directoryExists(imagesDestination) then + openspace.printInfo("Extracting " .. Name) + openspace.unzipFile(syncedDirectory .. "2048.zip", imagesDestination, true) + end + + openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer) + openspace.addScreenSpaceRenderable(colorbar); +end) + +asset.onDeinitialize(function() + openspace.globebrowsing.deleteLayer(globeIdentifier, "ColorLayers", layer) + openspace.removeScreenSpaceRenderable(colorbar) +end) + +asset.export(layer) +asset.export(colorbar) + + +asset.meta = { + Name = Name, + Version = "1.0", + Description = Description .. "Data provided by the National Oceanic and Atmospheric Administration.", + Author = "National Oceanic and Atmospheric Administration", + URL = URL, + License = "https://sos.noaa.gov/copyright/" +} diff --git a/data/assets/scene/solarsystem/planets/earth/noaa-sos/oceans/seawifs-polar_holes.asset b/data/assets/scene/solarsystem/planets/earth/noaa-sos/oceans/seawifs-polar_holes.asset new file mode 100644 index 0000000000..4edbacf3d5 --- /dev/null +++ b/data/assets/scene/solarsystem/planets/earth/noaa-sos/oceans/seawifs-polar_holes.asset @@ -0,0 +1,65 @@ +local globeIdentifier = asset.require("../../earth").Earth.Identifier + + +local Name = "Biosphere: Marine Chlorophyll Concentration and Land Vegetation" +local Identifier = "noaa-sos-oceans-seawifs-polar_holes" +local Description = [[ The term biosphere refers to the regions of the surface, +atmosphere, and hydrosphere of the earth occupied by living organisms.This dataset shows +quantity of marine and land-based plant-life as it changes throughout the seasons of the +year. ]] +local URL = "https://sos.noaa.gov/catalog/datasets/biosphere-marine-chlorophyll-concentration-and-land-vegetation/" + + +local syncedDirectory = asset.syncedResource({ + Name = Name, + Type = "HttpSynchronization", + Identifier = Identifier, + Version = 1 +}) + +local imagesDestination = syncedDirectory .. "images" + +local layer = { + Identifier = Identifier, + Name = Name, + Type = "ImageSequenceTileLayer", + FolderPath = imagesDestination, + Description = Description +} + +local colorbar = { + Identifier = Identifier, + Name = Name, + Type = "ScreenSpaceImageLocal", + TexturePath = syncedDirectory .. "colorbar.png", + FaceCamera = false, + CartesianPosition = { 0.0, -0.5, -2.0 } +} + +asset.onInitialize(function() + if not openspace.directoryExists(imagesDestination) then + openspace.printInfo("Extracting " .. Name) + openspace.unzipFile(syncedDirectory .. "4320_png.zip", imagesDestination, true) + end + + openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer) + openspace.addScreenSpaceRenderable(colorbar); +end) + +asset.onDeinitialize(function() + openspace.globebrowsing.deleteLayer(globeIdentifier, "ColorLayers", layer) + openspace.removeScreenSpaceRenderable(colorbar) +end) + +asset.export(layer) +asset.export(colorbar) + + +asset.meta = { + Name = Name, + Version = "1.0", + Description = Description .. "Data provided by the National Oceanic and Atmospheric Administration.", + Author = "National Oceanic and Atmospheric Administration", + URL = URL, + License = "https://sos.noaa.gov/copyright/" +} diff --git a/data/assets/scene/solarsystem/planets/earth/noaa-sos/oceans/shark.asset b/data/assets/scene/solarsystem/planets/earth/noaa-sos/oceans/shark.asset new file mode 100644 index 0000000000..ee2886ddec --- /dev/null +++ b/data/assets/scene/solarsystem/planets/earth/noaa-sos/oceans/shark.asset @@ -0,0 +1,64 @@ +local globeIdentifier = asset.require("../../earth").Earth.Identifier + + +local Name = "Great White Shark Track" +local Identifier = "noaa-sos-oceans-shark" +local Description = [[ Before satellite tagging technology became feasible, it was +thought that great white sharks (Carcharodon carcharias), spent most of their time close +to the coasts feeding on seals and sea lions. With the advent of satellite tagging +technology, many new behaviors of the great white shark have been discovered. By tagging +a shark with a satellite transmitter, scientists are able to track the movement of the +shark for extended periods. In 2001, a shark tagged off of the coast of California was +tracked all the way to Hawaii, 3,800 km (2,280 miles) away. The shark spent the winter +there before returning to waters closer to California. Several other sharks tagged off +the coast of California also were tracked traveling great distances from California. ]] +local URL = "https://sos.noaa.gov/catalog/datasets/great-white-shark-track/" + + +local syncedDirectory = asset.syncedResource({ + Name = Name, + Type = "HttpSynchronization", + Identifier = Identifier, + Version = 1 +}) + +local imagesDestination = syncedDirectory .. "images" + +local layer = { + Identifier = Identifier, + Name = Name, + Type = "TemporalTileLayer", + Mode = "Folder", + Folder = { + Folder = imagesDestination, + -- See https://en.cppreference.com/w/cpp/io/manip/get_time for an explanation of the + -- time formatting string + Format = "shark-migration-%y%j-%H%M.jpg" + }, + Description = Description +} + +asset.onInitialize(function() + if not openspace.directoryExists(imagesDestination) then + openspace.printInfo("Extracting " .. Name) + openspace.unzipFile(syncedDirectory .. "2048.zip", imagesDestination, true) + end + + openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer) +end) + +asset.onDeinitialize(function() + openspace.globebrowsing.deleteLayer(globeIdentifier, "ColorLayers", layer) +end) + +asset.export(layer) + + +asset.meta = { + Name = Name, + Version = "1.0", + Description = Description .. "Data provided by the National Oceanic and Atmospheric Administration.", + Author = "National Oceanic and Atmospheric Administration", + URL = URL, + License = "https://sos.noaa.gov/copyright/" +} diff --git a/data/assets/scene/solarsystem/planets/earth/noaa-sos/oceans/ship_tracks-mosaic.asset b/data/assets/scene/solarsystem/planets/earth/noaa-sos/oceans/ship_tracks-mosaic.asset new file mode 100644 index 0000000000..5563c5c108 --- /dev/null +++ b/data/assets/scene/solarsystem/planets/earth/noaa-sos/oceans/ship_tracks-mosaic.asset @@ -0,0 +1,68 @@ +local globeIdentifier = asset.require("../../earth").Earth.Identifier + + +local Name = "Ship Multibeam Bathymetric Surveys Mosaic" +local Identifier = "noaa-sos-oceans-ship_tracks-mosaic" +local Description = [[ Beneath the sea surface is an amazing sea floor that contains +mountain ranges, trenches and plains. The ocean covers 71% of the Earth's surface, has an +area of 139,400,000 square miles and an average depth of 2.3 miles. The first +measurements of the sea floor were made with weighted lines that were lowered until they +hit the bottom. Vast improvements have been made since that time, yet the majority of the +sea floor remains unmapped. It's important to know the bathymetry, or the sea floor +terrain, of the ocean for navigation and exploration purposes. Today, bathymetric maps +are created using data from multibeam echosounders. A multibeam echosounder is a device +that is mounted to the hull of a ship to determine the depth of water and the nature of +the seabed. The system emits a broad acoustic pulse from under a ship and then records +how long it takes the beams to return to the ship after bouncing off the sea floor. If +the speed of sound in water is known for the full water column, then the depth of the sea +floor can be calculated from the travel time. Multiple beams are sent out in a fan shape +to collect depth information in a swath beneath the boat as it travels through the +ocean. ]] +local URL = "https://sos.noaa.gov/catalog/datasets/ship-multibeam-bathymetric-surveys-mosaic/" + + +local syncedDirectory = asset.syncedResource({ + Name = Name, + Type = "HttpSynchronization", + Identifier = Identifier, + Version = 1 +}) + +local layer = { + Identifier = Identifier, + Name = Name, + FilePath = syncedDirectory .. "4096.png", + Description = Description +} + +local legend = { + Identifier = Identifier, + Name = Name, + Type = "ScreenSpaceImageLocal", + TexturePath = syncedDirectory .. "legend.png", + FaceCamera = false, + CartesianPosition = { 0.85, 0.0, -2.0 } +} + +asset.onInitialize(function() + openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer) + openspace.addScreenSpaceRenderable(legend); +end) + +asset.onDeinitialize(function() + openspace.globebrowsing.deleteLayer(globeIdentifier, "ColorLayers", layer) + openspace.removeScreenSpaceRenderable(legend) +end) + +asset.export(layer) +asset.export(legend) + + +asset.meta = { + Name = Name, + Version = "1.0", + Description = Description .. "Data provided by the National Oceanic and Atmospheric Administration.", + Author = "National Oceanic and Atmospheric Administration", + URL = URL, + License = "https://sos.noaa.gov/copyright/" +} diff --git a/data/assets/scene/solarsystem/planets/earth/noaa-sos/oceans/ship_tracks-tracks.asset b/data/assets/scene/solarsystem/planets/earth/noaa-sos/oceans/ship_tracks-tracks.asset new file mode 100644 index 0000000000..915231716f --- /dev/null +++ b/data/assets/scene/solarsystem/planets/earth/noaa-sos/oceans/ship_tracks-tracks.asset @@ -0,0 +1,68 @@ +local globeIdentifier = asset.require("../../earth").Earth.Identifier + + +local Name = "Ship Tracklines of Multibeam Bathymetric Surveys" +local Identifier = "noaa-sos-oceans-ship_tracks-tracks" +local Description = [[ Beneath the sea surface is an amazing sea floor that contains +mountain ranges, trenches and plains. The ocean covers 71% of the Earth's surface, has an +area of 139,400,000 square miles and an average depth of 2.3 miles. The first +measurements of the sea floor were made with weighted lines that were lowered until they +hit the bottom. Vast improvements have been made since that time, yet the majority of the +sea floor remains unmapped. It's important to know the bathymetry, or the sea floor +terrain, of the ocean for navigation and exploration purposes. Today, bathymetric maps +are created using data from multibeam echosounders. A multibeam echosounder is a device +that is mounted to the hull of a ship to determine the depth of water and the nature of +the seabed. The system emits a broad acoustic pulse from under a ship and then records +how long it takes the beams to return to the ship after bouncing off the sea floor. If +the speed of sound in water is known for the full water column, then the depth of the sea +floor can be calculated from the travel time. Multiple beams are sent out in a fan +shape to collect depth information in a swath beneath the boat as it travels through the +ocean. ]] +local URL = "https://sos.noaa.gov/catalog/datasets/ship-tracklines-of-multibeam-bathymetric-surveys/" + + +local syncedDirectory = asset.syncedResource({ + Name = Name, + Type = "HttpSynchronization", + Identifier = Identifier, + Version = 1 +}) + +local layer = { + Identifier = Identifier, + Name = Name, + FilePath = syncedDirectory .. "4096.png", + Description = Description +} + +local legend = { + Identifier = Identifier, + Name = Name, + Type = "ScreenSpaceImageLocal", + TexturePath = syncedDirectory .. "legend.png", + FaceCamera = false, + CartesianPosition = { 0.85, 0.0, -2.0 } +} + +asset.onInitialize(function() + openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer) + openspace.addScreenSpaceRenderable(legend); +end) + +asset.onDeinitialize(function() + openspace.globebrowsing.deleteLayer(globeIdentifier, "ColorLayers", layer) + openspace.removeScreenSpaceRenderable(legend) +end) + +asset.export(layer) +asset.export(legend) + + +asset.meta = { + Name = Name, + Version = "1.0", + Description = Description .. "Data provided by the National Oceanic and Atmospheric Administration.", + Author = "National Oceanic and Atmospheric Administration", + URL = URL, + License = "https://sos.noaa.gov/copyright/" +} diff --git a/data/assets/scene/solarsystem/planets/earth/noaa-sos/oceans/shipping.asset b/data/assets/scene/solarsystem/planets/earth/noaa-sos/oceans/shipping.asset new file mode 100644 index 0000000000..61e0b05366 --- /dev/null +++ b/data/assets/scene/solarsystem/planets/earth/noaa-sos/oceans/shipping.asset @@ -0,0 +1,51 @@ +local globeIdentifier = asset.require("../../earth").Earth.Identifier + + +local Name = "Shipping Routes (with labels) - One Year" +local Identifier = "noaa-sos-oceans-shipping" +local Description = [[ There were more than 30,000 merchant ships greater than 1000 gross +tonnage at sea in 2005. The World Meteorological Organization has a Voluntary Observing +Ships Scheme that equips ships with weather instruments in order to provide observations +for weather models and forecasters. In addition to observing the weather, the location of +the ships is also recorded through GPS. From October 2004 through October of 2005 +1,189,127 mobile ship data points were collected from 3,374 commercial and research +vessels, which is about 11% of all ships at sea in 2005. By connecting the data points +for each vessel, shipping routes over the course of one year were plotted. The National +Center for Ecological Analysis and Synthesis compiled this data to include in their +Global Map of Human Impacts to Marine Ecosystems. ]] +local URL = "https://sos.noaa.gov/catalog/datasets/shipping-routes-with-labels-one-year/" + + +local syncedDirectory = asset.syncedResource({ + Name = Name, + Type = "HttpSynchronization", + Identifier = Identifier, + Version = 1 +}) + +local layer = { + Identifier = Identifier, + Name = Name, + FilePath = syncedDirectory .. "4096.jpg", + Description = Description +} + +asset.onInitialize(function() + openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer) +end) + +asset.onDeinitialize(function() + openspace.globebrowsing.deleteLayer(globeIdentifier, "ColorLayers", layer) +end) + +asset.export(layer) + + +asset.meta = { + Name = Name, + Version = "1.0", + Description = Description .. "Data provided by the National Oceanic and Atmospheric Administration.", + Author = "National Oceanic and Atmospheric Administration", + URL = URL, + License = "https://sos.noaa.gov/copyright/" +} diff --git a/data/assets/scene/solarsystem/planets/earth/noaa-sos/oceans/species_richness.asset b/data/assets/scene/solarsystem/planets/earth/noaa-sos/oceans/species_richness.asset new file mode 100644 index 0000000000..e670103f56 --- /dev/null +++ b/data/assets/scene/solarsystem/planets/earth/noaa-sos/oceans/species_richness.asset @@ -0,0 +1,67 @@ +local globeIdentifier = asset.require("../../earth").Earth.Identifier + + +local Name = "Fisheries Species Richness" +local Identifier = "noaa-sos-oceans-species_richness" +local Description = [[ pecies richness is a count of the number of different species in +an ecological community, landscape or region. Species richness is one of several +measurements used by scientists to help determine how biologically rich and diverse a +given area is. This map shows the predicted global distribution of 1066 commercially +harvested marine fish and invertebrates. Areas on the map with brighter colors +(orange/yellow) highlight areas with greater number of different species (higher species +richness), while cooler colors (purple) areas with lower number of species (lower species +richness). The map shows the highest number of different species is concentrated along +the coasts. These coastal areas are also where we find our largest marine ecosystems, +such as coral reefs, mangroves and marshes, which provide food and shelter for +economically, culturally, and ecologically important marine species. This stresses the +importance of protecting critical habitat along our coasts for marine life and +fisheries. ]] +local URL = "https://sos.noaa.gov/catalog/datasets/fisheries-species-richness/" + + +local syncedDirectory = asset.syncedResource({ + Name = Name, + Type = "HttpSynchronization", + Identifier = Identifier, + Version = 1 +}) + +local layer = { + Identifier = Identifier, + Name = Name, + FilePath = syncedDirectory .. "4096.png", + Description = Description +} + +local colorbar = { + Identifier = Identifier, + Name = Name, + Type = "ScreenSpaceImageLocal", + TexturePath = syncedDirectory .. "colorbar-speciesrichness.png", + FaceCamera = false, + Scale = 0.3, + CartesianPosition = { 0.0, -0.5, -2.0 } +} + +asset.onInitialize(function() + openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer) + openspace.addScreenSpaceRenderable(colorbar); +end) + +asset.onDeinitialize(function() + openspace.globebrowsing.deleteLayer(globeIdentifier, "ColorLayers", layer) + openspace.removeScreenSpaceRenderable(colorbar) +end) + +asset.export(layer) +asset.export(colorbar) + + +asset.meta = { + Name = Name, + Version = "1.0", + Description = Description .. "Data provided by the National Oceanic and Atmospheric Administration.", + Author = "National Oceanic and Atmospheric Administration", + URL = URL, + License = "https://sos.noaa.gov/copyright/" +} diff --git a/data/assets/scene/solarsystem/planets/earth/noaa-sos/oceans/sss.asset b/data/assets/scene/solarsystem/planets/earth/noaa-sos/oceans/sss.asset new file mode 100644 index 0000000000..246a085805 --- /dev/null +++ b/data/assets/scene/solarsystem/planets/earth/noaa-sos/oceans/sss.asset @@ -0,0 +1,68 @@ +local globeIdentifier = asset.require("../../earth").Earth.Identifier + + +local Name = "Sea Surface Salinity" +local Identifier = "noaa-sos-oceans-sss" +local Description = [[ Processes that took place through Earth's history, such as the +weathering of rocks, evaporation of ocean water, and the formation of sea ice, have made +the ocean salty. Those are still at work today and are counterbalanced by processes that +decrease the salt in the ocean, like freshwater input from rivers, precipitation, and the +melting of ice. The result is an ocean surface where the salinity - the concentration of +salt - changes and these changes, small as they may be, have large-scale effects on +Earth's water cycle and ocean circulation. ]] +local URL = "https://sos.noaa.gov/catalog/datasets/sea-surface-salinity/" + + +local syncedDirectory = asset.syncedResource({ + Name = Name, + Type = "HttpSynchronization", + Identifier = Identifier, + Version = 1 +}) + +local imagesDestination = syncedDirectory .. "images" + +local layer = { + Identifier = Identifier, + Name = Name, + Type = "ImageSequenceTileLayer", + FolderPath = imagesDestination, + Description = Description +} + +local colorbar = { + Identifier = Identifier, + Name = Name, + Type = "ScreenSpaceImageLocal", + TexturePath = syncedDirectory .. "colorbar.png", + FaceCamera = false, + CartesianPosition = { 0.0, -0.5, -2.0 } +} + +asset.onInitialize(function() + if not openspace.directoryExists(imagesDestination) then + openspace.printInfo("Extracting " .. Name) + openspace.unzipFile(syncedDirectory .. "4096.zip", imagesDestination, true) + end + + openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer) + openspace.addScreenSpaceRenderable(colorbar); +end) + +asset.onDeinitialize(function() + openspace.globebrowsing.deleteLayer(globeIdentifier, "ColorLayers", layer) + openspace.removeScreenSpaceRenderable(colorbar) +end) + +asset.export(layer) +asset.export(colorbar) + + +asset.meta = { + Name = Name, + Version = "1.0", + Description = Description .. "Data provided by the National Oceanic and Atmospheric Administration.", + Author = "National Oceanic and Atmospheric Administration", + URL = URL, + License = "https://sos.noaa.gov/copyright/" +} diff --git a/data/assets/scene/solarsystem/planets/earth/noaa-sos/oceans/sst_1980_1999.asset b/data/assets/scene/solarsystem/planets/earth/noaa-sos/oceans/sst_1980_1999.asset new file mode 100644 index 0000000000..3224cd26c8 --- /dev/null +++ b/data/assets/scene/solarsystem/planets/earth/noaa-sos/oceans/sst_1980_1999.asset @@ -0,0 +1,64 @@ +local globeIdentifier = asset.require("../../earth").Earth.Identifier + + +local Name = "Sea Surface Temperature Anomalies - 1980 - 1999" +local Identifier = "noaa-sos-oceans-sst_1980_1999" +local Description = [[ Rather than plotting sea surface temperatures, sea surface +temperature anomalies have been plotted here to show the dramatic departures from normal +that are associated with El Nino and La Nina from 1980 - 1999. El Nino is the warming of +the Pacific Ocean off of the western coast of South America near Ecuador and Peru. It is +called El Nino, or little boy in Spanish, referring to the Christ child because the +phenomena usually occurs near Christmas time. The opposite of El Nino is La Nina, or +little girl in Spanish, which is a cooling of the Pacific Ocean. The red shading +signifies a warming of the ocean by 5-10°F, the green shading is normal and the blue +shading is a cooling of the ocean by 5-10°F. ]] +local URL = "https://sos.noaa.gov/catalog/datasets/sea-surface-temperature-anomalies-1980-1999/" + + +local syncedDirectory = asset.syncedResource({ + Name = Name, + Type = "HttpSynchronization", + Identifier = Identifier, + Version = 1 +}) + +local imagesDestination = syncedDirectory .. "images" + +local layer = { + Identifier = Identifier, + Name = Name, + Type = "TemporalTileLayer", + Mode = "Folder", + Folder = { + Folder = imagesDestination, + -- See https://en.cppreference.com/w/cpp/io/manip/get_time for an explanation of the + -- time formatting string + Format = "cyl_%Y_%m_%d.jpg" + }, + Description = Description +} + +asset.onInitialize(function() + if not openspace.directoryExists(imagesDestination) then + openspace.printInfo("Extracting " .. Name) + openspace.unzipFile(syncedDirectory .. "4096.zip", imagesDestination, true) + end + + openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer) +end) + +asset.onDeinitialize(function() + openspace.globebrowsing.deleteLayer(globeIdentifier, "ColorLayers", layer) +end) + +asset.export(layer) + + +asset.meta = { + Name = Name, + Version = "1.0", + Description = Description .. "Data provided by the National Oceanic and Atmospheric Administration.", + Author = "National Oceanic and Atmospheric Administration", + URL = URL, + License = "https://sos.noaa.gov/copyright/" +} diff --git a/data/assets/scene/solarsystem/planets/earth/noaa-sos/oceans/tsunami_historical_series-alaska.asset b/data/assets/scene/solarsystem/planets/earth/noaa-sos/oceans/tsunami_historical_series-alaska.asset new file mode 100644 index 0000000000..58167e4d13 --- /dev/null +++ b/data/assets/scene/solarsystem/planets/earth/noaa-sos/oceans/tsunami_historical_series-alaska.asset @@ -0,0 +1,91 @@ +local globeIdentifier = asset.require("../../earth").Earth.Identifier + + +local Name = "Tsunami Historical Series: Alaska - 1964" +local Identifier = "noaa-sos-oceans-tsunami_historical_series-alaska" +local Description = [[ At 5:36 pm on Friday, March 27, 1964 (28 March, 03:36Z UTC) the +largest earthquake ever measured in North America, and the second-largest recorded +anywhere, struck 40 miles west of Valdez, Alaska in Prince William Sound with a moment +magnitude we now know to be 9.2. Almost an hour and a half later the Honolulu Magnetic +and Seismic Observatory (later renamed the Pacific Tsunami Warning Center, or PTWC) was +able to issue its first “tidal wave advisory” that noted that a tsunami was possible and +that it could arrive in the Hawaiian Islands five hours later. Upon learning of a tsunami +observation in Kodiak Island, Alaska, an hour and a half later the Honolulu Observatory +issued a formal “tidal wave/seismic sea-wave warning” cautioning that damage was possible +in Hawaii and throughout the Pacific Ocean but that it was not possible to predict the +intensity of the tsunami. The earthquake did in fact generate a tsunami that killed 124 +people (106 in Alaska, 13 in California, and 5 in Oregon) and caused about $2.3 billion +(2016 dollars) in property loss all along the Pacific coast of North America from Alaska +to southern California and in Hawaii. The greatest wave heights were in Alaska at over +67 m or 220 ft. and waves almost 10 m or 32 ft high struck British Columbia, Canada. In +the “lower 48” waves as high as 4.5 m or 15 ft. struck Washington, as high as 3.7 m or +12 ft. struck Oregon, and as high as 4.8 m or over 15 ft. struck California. Waves of +similar size struck Hawaii at nearly 5 m or over 16 ft. high. Waves over 1 m or 3 ft. +high also struck Mexico, Chile, and even New Zealand. ]] +local URL = "https://sos.noaa.gov/catalog/datasets/tsunami-historical-series-alaska-1964/" + + +local syncedDirectory = asset.syncedResource({ + Name = Name, + Type = "HttpSynchronization", + Identifier = Identifier, + Version = 1 +}) + +local layer_coastal = { + Identifier = Identifier .. "-coastal", + Name = Name .. " (Coastal)", + FilePath = syncedDirectory .. "Tsunami_Coastal_Map_Alaska_1964_4k.jpg", + Description = Description +} + +local layer_energy_coastal = { + Identifier = Identifier .. "-energy_coastal", + Name = Name .. " (Energy Coastal)", + FilePath = syncedDirectory .. "Tsunami_Energy+Coastal_Map_Alaska_1964_4k.jpg", + Description = Description +} + +local layer_energy = { + Identifier = Identifier .. "-energy", + Name = Name .. " (Energy)", + FilePath = syncedDirectory .. "Tsunami_Energy_Map_Alaska_1964_4k.jpg", + Description = Description +} + +local layer_null = { + Identifier = Identifier .. "-null", + Name = Name .. " (Null)", + FilePath = syncedDirectory .. "Tsunami_Null_Coastal_Map_Alaska_1964_4k.jpg", + Description = Description +} + + +asset.onInitialize(function() + openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer_coastal) + openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer_energy_coastal) + openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer_energy) + openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer_null) +end) + +asset.onDeinitialize(function() + openspace.globebrowsing.deleteLayer(globeIdentifier, "ColorLayers", layer_coastal) + openspace.globebrowsing.deleteLayer(globeIdentifier, "ColorLayers", layer_energy_coastal) + openspace.globebrowsing.deleteLayer(globeIdentifier, "ColorLayers", layer_energy) + openspace.globebrowsing.deleteLayer(globeIdentifier, "ColorLayers", layer_null) +end) + +asset.export(layer_coastal) +asset.export(layer_energy_coastal) +asset.export(layer_energy) +asset.export(layer_null) + + +asset.meta = { + Name = Name, + Version = "1.0", + Description = Description .. "Data provided by the National Oceanic and Atmospheric Administration.", + Author = "National Oceanic and Atmospheric Administration", + URL = URL, + License = "https://sos.noaa.gov/copyright/" +} diff --git a/data/assets/scene/solarsystem/planets/earth/noaa-sos/oceans/tsunami_historical_series-aleutians.asset b/data/assets/scene/solarsystem/planets/earth/noaa-sos/oceans/tsunami_historical_series-aleutians.asset new file mode 100644 index 0000000000..697318282b --- /dev/null +++ b/data/assets/scene/solarsystem/planets/earth/noaa-sos/oceans/tsunami_historical_series-aleutians.asset @@ -0,0 +1,89 @@ +local globeIdentifier = asset.require("../../earth").Earth.Identifier + + +local Name = "Tsunami Historical Series: Aleutian Islands - 1946" +local Identifier = "noaa-sos-oceans-tsunami_historical_series-aleutians" +local Description = [[ On April 1, 1946 at 4:28 am (12:28 UTC), an 8.6 moment magnitude +earthquake struck off the coast of Unimak Island in Alaska's Aleutian Islands, +generating a tsunami that caused the greatest damage and number of deaths in Hawaii's +history, leading to the creation of the United States' first tsunami warning system. As +is typical for dangerous tsunamis the greatest wave heights were nearest the epicenter. +The waves reached as high as 42 m or about 138 ft. on Unimak Island and destroyed its +lighthouse and killed the five people there. Elsewhere this tsunami caused the greatest +damage and number of deaths on inhabited Pacific islands. In Hawaii the waves reached +about 17 m or 55 ft. high and killed 158 people, most in the town of Hilo, while in the +Marquesas Islands in French Polynesia the waves reached even higher to 20 m or 65 ft but +killed only two people. Chile's Easter Island also got nearly 9 m or 28 ft.while its Juan +Fernandez Islands got nearly 3 m or 9 ft. high waves. Pitcairn Island also had 5 m or 16 +ft. high waves, New Zealand had over 2 m or 8 ft. high waves, and Samoa had over 1 m or +about 4 ft. high waves. In North America the highest waves were in California at over 2 m +or over 8 ft. and killed one person there and in South America it killed one more person +in Peru. ]] +local URL = "https://sos.noaa.gov/catalog/datasets/tsunami-historical-series-aleutian-islands-1946/" + + +local syncedDirectory = asset.syncedResource({ + Name = Name, + Type = "HttpSynchronization", + Identifier = Identifier, + Version = 1 +}) + +local layer_coastal = { + Identifier = Identifier .. "-coastal", + Name = Name .. " (Coastal)", + FilePath = syncedDirectory .. "Tsunami_Coastal_Map_Aleutians_1946_2k.jpg", + Description = Description +} + +local layer_energy_coastal = { + Identifier = Identifier .. "-energy_coastal", + Name = Name .. " (Energy Coastal)", + FilePath = syncedDirectory .. "Tsunami_Energy+Coastal_Map_Aleutians_1946_4k.jpg", + Description = Description +} + +local layer_energy = { + Identifier = Identifier .. "-energy", + Name = Name .. " (Energy)", + FilePath = syncedDirectory .. "Tsunami_Energy_Map_Aleutians_1946_4k.jpg", + Description = Description +} + +local layer_null = { + Identifier = Identifier .. "-null", + Name = Name .. " (Null)", + FilePath = syncedDirectory .. "Tsunami_Null_Coastal_Map_Aleutians_1946_4k.jpg", + Description = Description +} + + +asset.onInitialize(function() + openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer_coastal) + openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer_energy_coastal) + openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer_energy) + openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer_null) +end) + + +asset.onDeinitialize(function() + openspace.globebrowsing.deleteLayer(globeIdentifier, "ColorLayers", layer_coastal) + openspace.globebrowsing.deleteLayer(globeIdentifier, "ColorLayers", layer_energy_coastal) + openspace.globebrowsing.deleteLayer(globeIdentifier, "ColorLayers", layer_energy) + openspace.globebrowsing.deleteLayer(globeIdentifier, "ColorLayers", layer_null) +end) + +asset.export(layer_coastal) +asset.export(layer_energy_coastal) +asset.export(layer_energy) +asset.export(layer_null) + + +asset.meta = { + Name = Name, + Version = "1.0", + Description = Description .. "Data provided by the National Oceanic and Atmospheric Administration.", + Author = "National Oceanic and Atmospheric Administration", + URL = URL, + License = "https://sos.noaa.gov/copyright/" +} diff --git a/data/assets/scene/solarsystem/planets/earth/noaa-sos/oceans/tsunami_historical_series-aleutians_1957.asset b/data/assets/scene/solarsystem/planets/earth/noaa-sos/oceans/tsunami_historical_series-aleutians_1957.asset new file mode 100644 index 0000000000..bdb9e7209e --- /dev/null +++ b/data/assets/scene/solarsystem/planets/earth/noaa-sos/oceans/tsunami_historical_series-aleutians_1957.asset @@ -0,0 +1,90 @@ +local globeIdentifier = asset.require("../../earth").Earth.Identifier + + +local Name = "Tsunami Historical Series: Aleutian Islands - 1957" +local Identifier = "noaa-sos-oceans-tsunami_historical_series-aleutians_1957" +local Description = [[ At 4:22 am on Saturday, March 9, 1957 (9 March, 14:22 Z UTC) the +second great earthquake in 11 years struck Alaska's Aleutian Islands. This earthquake had +the same magnitude of the earlier earthquake--8.6 on the moment magnitude scale (Johnson +et al. 1994)--but was to the west of the 1946 earthquake, near the Andreanof Islands. As +with the earlier event it also caused a dangerous tsunami that caused significant damage +in the Aleutian Islands and in Hawaii and was observed as far away as Chile. The greatest +wave heights were in Alaska's Aleutian Islands, with waves nearly 23 m or 75 ft. high +coming ashore on Unimak Island. The tsunami would reach Hawaii a little over four hours +later, with the largest waves striking the island of Kauai at over 11 m or 38 ft. high +and would cause $5.3 million in damage statewide ($46 million in 2017), including the +destruction of more than 80 homes. Elsewhere around the Pacific Ocean the tsunami waves +would reach heights of 6 m or 20 ft. in the Marquesas Islands (French Polynesia), 3 m or +10 ft. in Japan, 1.5 m or 5 ft. in American Samoa, and over 1 m or 3 ft. in Mexico and +Chile. Unlike the earlier event, however, it did not kill any people thanks to effective +tsunami alerts from to the Honolulu Observatory and the Seismic Sea Wave Warning System. +These efforts, established in 1948, would later become the Pacific Tsunami Warning Center +(PTWC) and Pacific Tsunami Warning System. ]] +local URL = "https://sos.noaa.gov/catalog/datasets/tsunami-historical-series-aleutian-islands-1957/" + + +local syncedDirectory = asset.syncedResource({ + Name = Name, + Type = "HttpSynchronization", + Identifier = Identifier, + Version = 1 +}) + +-- OBS: This data seems to be incorrect +local layer_coastal = { + Identifier = Identifier .. "-coastal", + Name = Name .. " (Coastal)", + FilePath = syncedDirectory .. "Tsunami_Coastal_Map_Aleutians_1957_2k.jpg", + Description = Description +} + +local layer_energy_coastal = { + Identifier = Identifier .. "-energy_coastal", + Name = Name .. " (Energy Coastal)", + FilePath = syncedDirectory .. "Tsunami_Energy+Coastal_Map_Aleutians_1957_2k.jpg", + Description = Description +} + +local layer_energy = { + Identifier = Identifier .. "-energy", + Name = Name .. " (Energy)", + FilePath = syncedDirectory .. "Tsunami_Energy_Map_Aleutians_1957_2k.jpg", + Description = Description +} + +local layer_null = { + Identifier = Identifier .. "-null", + Name = Name .. " (Null)", + FilePath = syncedDirectory .. "Tsunami_Null_Coastal_Map_Aleutians_1957_2k.jpg", + Description = Description +} + + +asset.onInitialize(function() + openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer_coastal) + openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer_energy_coastal) + openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer_energy) + openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer_null) +end) + +asset.onDeinitialize(function() + openspace.globebrowsing.deleteLayer(globeIdentifier, "ColorLayers", layer_coastal) + openspace.globebrowsing.deleteLayer(globeIdentifier, "ColorLayers", layer_energy_coastal) + openspace.globebrowsing.deleteLayer(globeIdentifier, "ColorLayers", layer_energy) + openspace.globebrowsing.deleteLayer(globeIdentifier, "ColorLayers", layer_null) +end) + +asset.export(layer_coastal) +asset.export(layer_energy_coastal) +asset.export(layer_energy) +asset.export(layer_null) + + +asset.meta = { + Name = Name, + Version = "1.0", + Description = Description .. "Data provided by the National Oceanic and Atmospheric Administration.", + Author = "National Oceanic and Atmospheric Administration", + URL = URL, + License = "https://sos.noaa.gov/copyright/" +} diff --git a/data/assets/scene/solarsystem/planets/earth/noaa-sos/oceans/tsunami_historical_series-cascadia.asset b/data/assets/scene/solarsystem/planets/earth/noaa-sos/oceans/tsunami_historical_series-cascadia.asset new file mode 100644 index 0000000000..0584e796fe --- /dev/null +++ b/data/assets/scene/solarsystem/planets/earth/noaa-sos/oceans/tsunami_historical_series-cascadia.asset @@ -0,0 +1,91 @@ +local globeIdentifier = asset.require("../../earth").Earth.Identifier + + +local Name = "Tsunami Historical Series: Cascadia - 1700" +local Identifier = "noaa-sos-oceans-tsunami_historical_series-cascadia" +local Description = [[ Just before midnight on January 27, 1700 a tsunami struck the +coasts of Japan without warning since no one in Japan felt the earthquake that must have +caused it. Nearly 300 years later scientists and historians in Japan and the United +States solved the mystery of what caused this "orphan tsunami" through careful analysis +of historical records in Japan as well as oral histories of Native Americans, sediment +deposits, and ghost forests of drowned trees in the Pacific Northwest of North America, +a region also known as Cascadia. They learned that this geologically active region, the +Cascadia Subduction Zone, not only hosts erupting volcanoes but also produces megathrust +earthquakes capable of generating devastating, ocean-crossing tsunamis. By comparing the +tree rings of dead trees with those still living they could tell when the last of these +great earthquakes struck the region. The trees all died in the winter of 1699 - 1700 when +the coasts of northern California, Oregon, and Washington suddenly dropped 1- 2 m (3.3 - +6.6 ft.), flooding them with seawater. That much motion over such a large area requires a +very large earthquake to explain it - perhaps as large as 9.2 magnitude, comparable to +the Great Alaska Earthquake of 1964. Such an earthquake would have ruptured the earth +along the entire length of the 1000 km (~600 mi) long fault of the Cascadia Subduction +Zone and severe shaking could have lasted for 5 minutes or longer. Its tsunami would +cross the Pacific Ocean and reach Japan in about 9 hours, so the earthquake must have +occurred around 9:00 at night in Cascadia on January 26, 1700 (05:00 January 27 UTC). ]] +local URL = "https://sos.noaa.gov/catalog/datasets/tsunami-historical-series-cascadia-1700/" + + +local syncedDirectory = asset.syncedResource({ + Name = Name, + Type = "HttpSynchronization", + Identifier = Identifier, + Version = 1 +}) + +local layer_coastal = { + Identifier = Identifier .. "-coastal", + Name = Name .. " (Coastal)", + FilePath = syncedDirectory .. "Tsunami_Coastal_Map_Cascadia_1700_4k.jpg", + Description = Description +} + +local layer_energy_coastal = { + Identifier = Identifier .. "-energy_coastal", + Name = Name .. " (Energy Coastal)", + FilePath = syncedDirectory .. "Tsunami_Energy+Coastal_Map_Cascadia_1700_4k.jpg", + Description = Description +} + +local layer_energy = { + Identifier = Identifier .. "-energy", + Name = Name .. " (Energy)", + FilePath = syncedDirectory .. "Tsunami_Energy_Map_Cascadia_1700_4k.jpg", + Description = Description +} + +local layer_null = { + Identifier = Identifier .. "-null", + Name = Name .. " (Null)", + FilePath = syncedDirectory .. "Tsunami_Null_Coastal_Map_Cascadia_1700_4k.jpg", + Description = Description +} + + +asset.onInitialize(function() + openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer_coastal) + openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer_energy_coastal) + openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer_energy) + openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer_null) +end) + +asset.onDeinitialize(function() + openspace.globebrowsing.deleteLayer(globeIdentifier, "ColorLayers", layer_coastal) + openspace.globebrowsing.deleteLayer(globeIdentifier, "ColorLayers", layer_energy_coastal) + openspace.globebrowsing.deleteLayer(globeIdentifier, "ColorLayers", layer_energy) + openspace.globebrowsing.deleteLayer(globeIdentifier, "ColorLayers", layer_null) +end) + +asset.export(layer_coastal) +asset.export(layer_energy_coastal) +asset.export(layer_energy) +asset.export(layer_null) + + +asset.meta = { + Name = Name, + Version = "1.0", + Description = Description .. "Data provided by the National Oceanic and Atmospheric Administration.", + Author = "National Oceanic and Atmospheric Administration", + URL = URL, + License = "https://sos.noaa.gov/copyright/" +} diff --git a/data/assets/scene/solarsystem/planets/earth/noaa-sos/oceans/tsunami_historical_series-chile.asset b/data/assets/scene/solarsystem/planets/earth/noaa-sos/oceans/tsunami_historical_series-chile.asset new file mode 100644 index 0000000000..1b8b2461b1 --- /dev/null +++ b/data/assets/scene/solarsystem/planets/earth/noaa-sos/oceans/tsunami_historical_series-chile.asset @@ -0,0 +1,93 @@ +local globeIdentifier = asset.require("../../earth").Earth.Identifier + + +local Name = "Tsunami Historical Series: Chile - 2010" +local Identifier = "noaa-sos-oceans-tsunami_historical_series-chile" +local Description = [[ At 3:34 on the morning of February 27, 2010 (06:34 UTC), an 8.8 +moment magnitude earthquake struck near the coastline of central Chile. The Pacific +Tsunami Warning Center (PTWC) quickly determined that the large magnitude of this +earthquake, its location near the coastline, its relatively shallow depth within the +earth, and a history of megathrust earthquakes in the region meant that it could have +moved the seafloor and thus posed a significant tsunami risk and PTWC issued their first +tsunami warning several minutes later for Chile and Peru. The earthquake did in fact +cause a tsunami, and over the following hours as PTWC learned more about the earthquake +(confirming it was a megathrust and upgrading its magnitude) and its tsunami through +forecast models and direct observation with DART sensors and coastal sea-level gauges +PTWC would eventually issue tsunami warnings to the State of Hawaii and all 43 countries +and territories participating the Pacific Tsunami Warning System, keeping warnings in +some areas in effect for more than a day. PTWC's sister office, the West Coast and Alaska +Tsunami Warning Center (now known as the National Tsunami Warning Center), also issued +tsunami advisories for Alaska and the Pacific coasts of the United States and Canada. The +tsunami caused the greatest devastation and 124 deaths in Chile, where waves reached as +high as 29 m or 95 ft. on the mainland, over 18 m or 60 ft. in its Juan Fernandez +Islands, and over 4 m or 14 ft. at Rapa Nui (Easter Island). Outside of Chile tsunami +wave heights exceeded 1 m or 3 ft. in the Marquesas Islands (French Polynesia), New +Zealand, the Kuril Islands (Russia), and in the United States in California and Hawaii, +and caused minor damage in San Diego, California and in Japan. ]] +local URL = "https://sos.noaa.gov/catalog/datasets/tsunami-historical-series-chile-2010/" + + +local syncedDirectory = asset.syncedResource({ + Name = Name, + Type = "HttpSynchronization", + Identifier = Identifier, + Version = 1 +}) + +local layer_coastal = { + Identifier = Identifier .. "-coastal", + Name = Name .. " (Coastal)", + FilePath = syncedDirectory .. "Tsunami_Coastal_Map_Chile_2010_2k.jpg", + Description = Description +} + +local layer_energy_coastal = { + Identifier = Identifier .. "-energy_coastal", + Name = Name .. " (Energy Coastal)", + FilePath = syncedDirectory .. "Tsunami_Energy+Coastal_Map_Chile_2010_4k.jpg", + Description = Description +} + +local layer_energy = { + Identifier = Identifier .. "-energy", + Name = Name .. " (Energy)", + FilePath = syncedDirectory .. "Tsunami_Energy_Map_Chile_2010_4k.jpg", + Description = Description +} + +local layer_null = { + Identifier = Identifier .. "-null", + Name = Name .. " (Null)", + FilePath = syncedDirectory .. "Tsunami_Null_Coastal_Map_Chile_2010_4k.jpg", + Description = Description +} + + +asset.onInitialize(function() + openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer_coastal) + openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer_energy_coastal) + openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer_energy) + openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer_null) +end) + +asset.onDeinitialize(function() + openspace.globebrowsing.deleteLayer(globeIdentifier, "ColorLayers", layer_coastal) + openspace.globebrowsing.deleteLayer(globeIdentifier, "ColorLayers", layer_energy_coastal) + openspace.globebrowsing.deleteLayer(globeIdentifier, "ColorLayers", layer_energy) + openspace.globebrowsing.deleteLayer(globeIdentifier, "ColorLayers", layer_null) +end) + +asset.export(layer_coastal) +asset.export(layer_energy_coastal) +asset.export(layer_energy) +asset.export(layer_null) + + +asset.meta = { + Name = Name, + Version = "1.0", + Description = Description .. "Data provided by the National Oceanic and Atmospheric Administration.", + Author = "National Oceanic and Atmospheric Administration", + URL = URL, + License = "https://sos.noaa.gov/copyright/" +} diff --git a/data/assets/scene/solarsystem/planets/earth/noaa-sos/oceans/tsunami_historical_series-japan.asset b/data/assets/scene/solarsystem/planets/earth/noaa-sos/oceans/tsunami_historical_series-japan.asset new file mode 100644 index 0000000000..614baeafc8 --- /dev/null +++ b/data/assets/scene/solarsystem/planets/earth/noaa-sos/oceans/tsunami_historical_series-japan.asset @@ -0,0 +1,98 @@ +local globeIdentifier = asset.require("../../earth").Earth.Identifier + + +local Name = "Tsunami Historical Series: Japan - 2011" +local Identifier = "noaa-sos-oceans-tsunami_historical_series-japan" +local Description = [[ At 14:46 in the afternoon of March 11, 2011 (05:46 UTC), a 9.0 +moment magnitude earthquake struck near the coastline of Honshu, Japan. The Pacific +Tsunami Warning Center (PTWC) quickly determined that the very large magnitude of this +earthquake, its offshore location, its relatively shallow depth within the earth, and a +history of megathrust earthquakes in the region meant that it likely moved the seafloor +and thus posed a significant tsunami risk. As per international agreements Japanese +authorities issued tsunami warnings for their own coastlines while PTWC began issuing +warnings to other countries and territories in the western Pacific Ocean. The earthquake +did in fact cause a tsunami, and over the following hours as PTWC learned more about the +earthquake (confirming it was a megathrust and upgrading its magnitude) and its tsunami +through forecast models and direct observation with DART sensors and coastal sea-level +gauges PTWC would eventually issue tsunami warnings to the State of Hawaii and all +remaining countries and territories participating the Pacific Tsunami Warning System, +keeping warnings in some areas in effect for more than a day. PTWC's sister office, the +West Coast and Alaska Tsunami Warning Center (now known as the National Tsunami Warning +Center), also issued tsunami warnings for Alaska and the Pacific coasts of the United +States and Canada. The tsunami caused the greatest devastation and over 17,000 deaths in +Japan, where waves reached over 40 m or 130 ft. high. Outside of Japan the tsunami also +killed one person in Papua, Indonesia and rose to greater than 5 m or 16 ft. in the +Galapagos Islands (Ecuador), greater than 2m or 6.5 ft. in Indonesia, Russia's Kuril +Islands, and in Chile, and rose to greater than 1 m or 3 ft. in Costa Rica, the Marquesas +Islands (French Polynesia), Mexico, Papua New Guinea, and Peru. In the United States the +tsunami rose to more than 5 m or 16 ft. in Hawaii, more than 2 m or 6.5 ft in California +and Oregon, and more than 1 m or 3 ft. in the U.S. island territories of Midway and +Saipan (Northern Mariana Islands). The tsunami also killed one person in Crescent City, +California. ]] +local URL = "https://sos.noaa.gov/catalog/datasets/tsunami-historical-series-japan-2011/" + + +local syncedDirectory = asset.syncedResource({ + Name = Name, + Type = "HttpSynchronization", + Identifier = Identifier, + Version = 1 +}) + +local layer_coastal = { + Identifier = Identifier .. "-coastal", + Name = Name .. " (Coastal)", + FilePath = syncedDirectory .. "Tsunami_Coastal_Map_Japan_2011_4k.jpg", + Description = Description +} + +local layer_energy_coastal = { + Identifier = Identifier .. "-energy_coastal", + Name = Name .. " (Energy Coastal)", + FilePath = syncedDirectory .. "Tsunami_Energy+Coastal_Map_Japan_2011_4k.jpg", + Description = Description +} + +local layer_energy = { + Identifier = Identifier .. "-energy", + Name = Name .. " (Energy)", + FilePath = syncedDirectory .. "Tsunami_Energy_Map_Japan_2011_4k.jpg", + Description = Description +} + +local layer_null = { + Identifier = Identifier .. "-null", + Name = Name .. " (Null)", + FilePath = syncedDirectory .. "Tsunami_Null_Coastal_Map_Japan_2011_4k.jpg", + Description = Description +} + + +asset.onInitialize(function() + openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer_coastal) + openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer_energy_coastal) + openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer_energy) + openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer_null) +end) + +asset.onDeinitialize(function() + openspace.globebrowsing.deleteLayer(globeIdentifier, "ColorLayers", layer_coastal) + openspace.globebrowsing.deleteLayer(globeIdentifier, "ColorLayers", layer_energy_coastal) + openspace.globebrowsing.deleteLayer(globeIdentifier, "ColorLayers", layer_energy) + openspace.globebrowsing.deleteLayer(globeIdentifier, "ColorLayers", layer_null) +end) + +asset.export(layer_coastal) +asset.export(layer_energy_coastal) +asset.export(layer_energy) +asset.export(layer_null) + + +asset.meta = { + Name = Name, + Version = "1.0", + Description = Description .. "Data provided by the National Oceanic and Atmospheric Administration.", + Author = "National Oceanic and Atmospheric Administration", + URL = URL, + License = "https://sos.noaa.gov/copyright/" +} diff --git a/data/assets/scene/solarsystem/planets/earth/noaa-sos/oceans/tsunami_historical_series-lisbon.asset b/data/assets/scene/solarsystem/planets/earth/noaa-sos/oceans/tsunami_historical_series-lisbon.asset new file mode 100644 index 0000000000..637b30283b --- /dev/null +++ b/data/assets/scene/solarsystem/planets/earth/noaa-sos/oceans/tsunami_historical_series-lisbon.asset @@ -0,0 +1,81 @@ +local globeIdentifier = asset.require("../../earth").Earth.Identifier + + +local Name = "Tsunami Historical Series: Lisbon - 1755" +local Identifier = "noaa-sos-oceans-tsunami_historical_series-lisbon" +local Description = [[ On the morning of November 1, 1755, a great earthquake shook +Portugal's capital city of Lisbon as worshipers filled churches and cathedrals for the +All Saints' Day Mass. In seconds it left the city in ruins and in minutes those ruins +were on fire. The earthquake probably killed about 30,000 people, though some estimates +double that figure. Many of the survivors fled to the wharves and keys of Lisbon's port, +but they would find no safety there. The first tsunami wave surged up the Tagus estuary +about an hour after the earthquake, reached a maximum runup of 12 meters (40 feet), and +killed another 1000 people. At least two more tsunami waves surged into the city, +completing the earthquake's destruction. ]] +local URL = "https://sos.noaa.gov/catalog/datasets/tsunami-historical-series-lisbon-1755/" + + +local syncedDirectory = asset.syncedResource({ + Name = Name, + Type = "HttpSynchronization", + Identifier = Identifier, + Version = 1 +}) + +local layer_coastal = { + Identifier = Identifier .. "-coastal", + Name = Name .. " (Coastal)", + FilePath = syncedDirectory .. "Tsunami_Coastal_Map_Lisbon_1755_4k.jpg", + Description = Description +} + +local layer_energy_coastal = { + Identifier = Identifier .. "-energy_coastal", + Name = Name .. " (Energy Coastal)", + FilePath = syncedDirectory .. "Tsunami_Energy+Coastal_Map_Lisbon_1755_4k.jpg", + Description = Description +} + +local layer_energy = { + Identifier = Identifier .. "-energy", + Name = Name .. " (Energy)", + FilePath = syncedDirectory .. "Tsunami_Energy_Map_Lisbon_1755_4k.jpg", + Description = Description +} + +local layer_null = { + Identifier = Identifier .. "-null", + Name = Name .. " (Null)", + FilePath = syncedDirectory .. "Tsunami_Null_Coastal_Map_Lisbon_1755_4k.jpg", + Description = Description +} + + +asset.onInitialize(function() + openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer_coastal) + openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer_energy_coastal) + openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer_energy) + openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer_null) +end) + +asset.onDeinitialize(function() + openspace.globebrowsing.deleteLayer(globeIdentifier, "ColorLayers", layer_coastal) + openspace.globebrowsing.deleteLayer(globeIdentifier, "ColorLayers", layer_energy_coastal) + openspace.globebrowsing.deleteLayer(globeIdentifier, "ColorLayers", layer_energy) + openspace.globebrowsing.deleteLayer(globeIdentifier, "ColorLayers", layer_null) +end) + +asset.export(layer_coastal) +asset.export(layer_energy_coastal) +asset.export(layer_energy) +asset.export(layer_null) + + +asset.meta = { + Name = Name, + Version = "1.0", + Description = Description .. "Data provided by the National Oceanic and Atmospheric Administration.", + Author = "National Oceanic and Atmospheric Administration", + URL = URL, + License = "https://sos.noaa.gov/copyright/" +} diff --git a/data/assets/scene/solarsystem/planets/earth/noaa-sos/oceans/tsunami_historical_series-samoa.asset b/data/assets/scene/solarsystem/planets/earth/noaa-sos/oceans/tsunami_historical_series-samoa.asset new file mode 100644 index 0000000000..1ee0498014 --- /dev/null +++ b/data/assets/scene/solarsystem/planets/earth/noaa-sos/oceans/tsunami_historical_series-samoa.asset @@ -0,0 +1,83 @@ +local globeIdentifier = asset.require("../../earth").Earth.Identifier + + +local Name = "Tsunami Historical Series: Samoa - 2009" +local Identifier = "noaa-sos-oceans-tsunami_historical_series-samoa" +local Description = [[ At 6:48 on the morning of September 29, 2009 (17:48 UTC), an 8.1 +moment magnitude earthquake struck near the Samoan Islands in the southwest Pacific +Ocean. The Pacific Tsunami Warning Center (PTWC) quickly determined that the large +magnitude of this earthquake, its location under the sea floor, its relatively shallow +depth within the earth, and a history of tsunami-causing earthquakes in the region meant +that it could have moved the seafloor and thus posed a significant tsunami risk. PTWC +issued its first tsunami warning several minutes later for Samoa, American Samoa, Tonga, +and other nearby island groups. The earthquake did in fact cause a dangerous tsunami, and +over the following hours PTWC tracked it through the Pacific Ocean and updated its alerts +with measured tsunami wave heights and recommended that additional areas consider coastal +evacuation. PTWC canceled all tsunami alerts about four hours after the earthquake. ]] +local URL = "https://sos.noaa.gov/catalog/datasets/tsunami-historical-series-samoa-2009/" + + +local syncedDirectory = asset.syncedResource({ + Name = Name, + Type = "HttpSynchronization", + Identifier = Identifier, + Version = 1 +}) + +local layer_coastal = { + Identifier = Identifier .. "-coastal", + Name = Name .. " (Coastal)", + FilePath = syncedDirectory .. "Tsunami_Coastal_Map_Samoa_2009_4k.jpg", + Description = Description +} + +local layer_energy_coastal = { + Identifier = Identifier .. "-energy_coastal", + Name = Name .. " (Energy Coastal)", + FilePath = syncedDirectory .. "Tsunami_Energy+Coastal_Map_Samoa_2009_4k.jpg", + Description = Description +} + +local layer_energy = { + Identifier = Identifier .. "-energy", + Name = Name .. " (Energy)", + FilePath = syncedDirectory .. "Tsunami_Energy_Map_Samoa_2009_4k.jpg", + Description = Description +} + +local layer_null = { + Identifier = Identifier .. "-null", + Name = Name .. " (Null)", + FilePath = syncedDirectory .. "Tsunami_Null_Coastal_Map_Samoa_2009_4k.jpg", + Description = Description +} + + +asset.onInitialize(function() + openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer_coastal) + openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer_energy_coastal) + openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer_energy) + openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer_null) +end) + +asset.onDeinitialize(function() + openspace.globebrowsing.deleteLayer(globeIdentifier, "ColorLayers", layer_coastal) + openspace.globebrowsing.deleteLayer(globeIdentifier, "ColorLayers", layer_energy_coastal) + openspace.globebrowsing.deleteLayer(globeIdentifier, "ColorLayers", layer_energy) + openspace.globebrowsing.deleteLayer(globeIdentifier, "ColorLayers", layer_null) +end) + +asset.export(layer_coastal) +asset.export(layer_energy_coastal) +asset.export(layer_energy) +asset.export(layer_null) + + +asset.meta = { + Name = Name, + Version = "1.0", + Description = Description .. "Data provided by the National Oceanic and Atmospheric Administration.", + Author = "National Oceanic and Atmospheric Administration", + URL = URL, + License = "https://sos.noaa.gov/copyright/" +} diff --git a/data/assets/scene/solarsystem/planets/earth/noaa-sos/oceans/tsunami_historical_series-sumatra.asset b/data/assets/scene/solarsystem/planets/earth/noaa-sos/oceans/tsunami_historical_series-sumatra.asset new file mode 100644 index 0000000000..71867327a0 --- /dev/null +++ b/data/assets/scene/solarsystem/planets/earth/noaa-sos/oceans/tsunami_historical_series-sumatra.asset @@ -0,0 +1,77 @@ +local globeIdentifier = asset.require("../../earth").Earth.Identifier + + +local Name = "Tsunami Historical Series: Sumatra - 2004" +local Identifier = "noaa-sos-oceans-tsunami_historical_series-sumatra" +local Description = [[ The magnitude 9.1 Great Sumatra-Andaman Earthquake of December 26, +2004, spawned the deadliest tsunami in history, killing more than 230,000 people in 14 +countries around the Indian Ocean. More than half of those killed had lived in Acheh +Province, Sumatra, where the tsunami rose as high as 30 m (100 ft.) and traveled more than +4 km (2.5 mi.) inland in this low-lying region. ]] +local URL = "https://sos.noaa.gov/catalog/datasets/tsunami-historical-series-sumatra-2004//" + + +local syncedDirectory = asset.syncedResource({ + Name = Name, + Type = "HttpSynchronization", + Identifier = Identifier, + Version = 1 +}) + +local layer_coastal = { + Identifier = Identifier .. "-coastal", + Name = Name .. " (Coastal)", + FilePath = syncedDirectory .. "Tsunami_Coastal_Map_Sumatra_2004_2k.jpg", + Description = Description +} + +local layer_energy_coastal = { + Identifier = Identifier .. "-energy_coastal", + Name = Name .. " (Energy Coastal)", + FilePath = syncedDirectory .. "Tsunami_Energy+Coastal_Map_Sumatra_2004_2k.jpg", + Description = Description +} + +local layer_energy = { + Identifier = Identifier .. "-energy", + Name = Name .. " (Energy)", + FilePath = syncedDirectory .. "Tsunami_Energy_Map_Sumatra_2004_2k.jpg", + Description = Description +} + +local layer_null = { + Identifier = Identifier .. "-null", + Name = Name .. " (Null)", + FilePath = syncedDirectory .. "Tsunami_Null_Coastal_Map_Sumatra_2004_2k.jpg", + Description = Description +} + + +asset.onInitialize(function() + openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer_coastal) + openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer_energy_coastal) + openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer_energy) + openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer_null) +end) + +asset.onDeinitialize(function() + openspace.globebrowsing.deleteLayer(globeIdentifier, "ColorLayers", layer_coastal) + openspace.globebrowsing.deleteLayer(globeIdentifier, "ColorLayers", layer_energy_coastal) + openspace.globebrowsing.deleteLayer(globeIdentifier, "ColorLayers", layer_energy) + openspace.globebrowsing.deleteLayer(globeIdentifier, "ColorLayers", layer_null) +end) + +asset.export(layer_coastal) +asset.export(layer_energy_coastal) +asset.export(layer_energy) +asset.export(layer_null) + + +asset.meta = { + Name = Name, + Version = "1.0", + Description = Description .. "Data provided by the National Oceanic and Atmospheric Administration.", + Author = "National Oceanic and Atmospheric Administration", + URL = URL, + License = "https://sos.noaa.gov/copyright/" +} diff --git a/data/assets/scene/solarsystem/planets/earth/noaa-sos/oceans/tsunami_locations.asset b/data/assets/scene/solarsystem/planets/earth/noaa-sos/oceans/tsunami_locations.asset new file mode 100644 index 0000000000..5c4da42bc5 --- /dev/null +++ b/data/assets/scene/solarsystem/planets/earth/noaa-sos/oceans/tsunami_locations.asset @@ -0,0 +1,98 @@ +local globeIdentifier = asset.require("../../earth").Earth.Identifier + + +local Name = "Tsunami Locations - 2000 BCE - 2014" +local Identifier = "noaa-sos-oceans-tsunami_locations" +local Description = [[ Earthquakes, landslides, volcanoes, explosions, and atmospheric +processes - all of these disasters have caused tsunamis in the past. But by far, the most +common generator of tsunamis is earthquakes, as has recently been seen in Sumatra, Chile, +and Japan. The NOAA National Geophysical Data Center archives academic and historical +reports from around the world of where tsunamis are estimated to have originated, and +have compiled a database of over 2,500 events from 2,000 B.C. through 2014t. This image +plots about half of those events - tsunamis that are classified as a "definite tsunami" +or "probable tsunami." The icons are shaded according to the devastation of the event by +the number of fatalities caused where white = none, yellow = 1-50, orange = 51-100, and +red = >101. Since earthquakes are the most common tsunami generator, the highest density +of event origins are located around the Pacific "Ring of Fire" known for its prevalence +of volcanic and tectonic activity. The points are overlaid on top of a map of ocean +bathymetry (Natural Earth 2 from the Natural Earth project), which indicates many of the +pronounced ocean features, such as volcanic islands, rift zones, and plate boundaries + that are often associated with generating tsunamis. ]] +local URL = "https://sos.noaa.gov/catalog/datasets/tsunami-locations-2000-bce-2014/" + + +local syncedDirectory = asset.syncedResource({ + Name = Name, + Type = "HttpSynchronization", + Identifier = Identifier, + Version = 1 +}) + +local layer_base = { + Identifier = Identifier, + Name = Name, + FilePath = syncedDirectory .. "4096.jpg", + Description = Description +} + +local layer_gray = { + Identifier = Identifier .. "-gray", + Name = Name .. " (Gray)", + FilePath = syncedDirectory .. "gray_earth_with_countries_4096.png", + Description = Description +} + +local layer_neutral = { + Identifier = Identifier .. "-neutral", + Name = Name .. " (Neutral)", + FilePath = syncedDirectory .. "natural_earth_with_countries_4096.png", + Description = Description +} + +local layer_events = { + Identifier = Identifier .. "-events", + Name = Name .. " (Events)", + FilePath = syncedDirectory .. "tsunami_events.png", + Description = Description +} + +local legend = { + Identifier = Identifier, + Name = Name, + Type = "ScreenSpaceImageLocal", + TexturePath = syncedDirectory .. "legend.png", + FaceCamera = false, + CartesianPosition = { 0.85, 0.0, -2.0 } +} + + +asset.onInitialize(function() + openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer_base) + openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer_gray) + openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer_neutral) + openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer_events) + openspace.addScreenSpaceRenderable(legend); +end) + +asset.onDeinitialize(function() + openspace.globebrowsing.deleteLayer(globeIdentifier, "ColorLayers", layer_base) + openspace.globebrowsing.deleteLayer(globeIdentifier, "ColorLayers", layer_gray) + openspace.globebrowsing.deleteLayer(globeIdentifier, "ColorLayers", layer_neutral) + openspace.globebrowsing.deleteLayer(globeIdentifier, "ColorLayers", layer_events) + openspace.removeScreenSpaceRenderable(legend) +end) + +asset.export(layer_base) +asset.export(layer_gray) +asset.export(layer_neutral) +asset.export(layer_events) + + +asset.meta = { + Name = Name, + Version = "1.0", + Description = Description .. "Data provided by the National Oceanic and Atmospheric Administration.", + Author = "National Oceanic and Atmospheric Administration", + URL = URL, + License = "https://sos.noaa.gov/copyright/" +} diff --git a/data/assets/scene/solarsystem/planets/earth/noaa-sos/oceans/vector_winds.asset b/data/assets/scene/solarsystem/planets/earth/noaa-sos/oceans/vector_winds.asset new file mode 100644 index 0000000000..d9e42f3d94 --- /dev/null +++ b/data/assets/scene/solarsystem/planets/earth/noaa-sos/oceans/vector_winds.asset @@ -0,0 +1,71 @@ +local globeIdentifier = asset.require("../../earth").Earth.Identifier + + +local Name = "Ocean Surface Winds" +local Identifier = "noaa-sos-oceans-vector_winds" +local Description = [[ The SeaWinds scatterometer, carried aboard NASA's QuikSCAT +satellite, is a microwave radar designed to measure the backscatter related to +near-surface wind speed and direction over the oceans. A rougher ocean surface returns a +stronger signal because the waves reflect more of the radar energy back toward the +scatterometer antenna (backscatter), and a smoother ocean surface returns a weaker signal +because less of the energy is reflected. Given the known relationship between the +roughness of the surface and the strength of the wind, it is possible to compute the wind +speed and direction - the wind vector - from multiple observations of the signal returned +from a given area on the ocean surface. ]] +local URL = "https://sos.noaa.gov/catalog/datasets/ocean-surface-winds/" + + +local syncedDirectory = asset.syncedResource({ + Name = Name, + Type = "HttpSynchronization", + Identifier = Identifier, + Version = 1 +}) + +local imagesDestination = syncedDirectory .. "images" + +local layer = { + Identifier = Identifier, + Name = Name, + Type = "ImageSequenceTileLayer", + FolderPath = imagesDestination, + Description = Description +} + +local colorbar = { + Identifier = Identifier, + Name = Name, + Type = "ScreenSpaceImageLocal", + TexturePath = syncedDirectory .. "colorbar.png", + FaceCamera = false, + CartesianPosition = { 0.0, -0.5, -2.0 } +} + +asset.onInitialize(function() + if not openspace.directoryExists(imagesDestination) then + openspace.printInfo("Extracting " .. Name) + openspace.unzipFile(syncedDirectory .. "4096-1.zip", imagesDestination, true) + openspace.unzipFile(syncedDirectory .. "4096-2.zip", imagesDestination, true) + end + + openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer) + openspace.addScreenSpaceRenderable(colorbar); +end) + +asset.onDeinitialize(function() + openspace.globebrowsing.deleteLayer(globeIdentifier, "ColorLayers", layer) + openspace.removeScreenSpaceRenderable(colorbar) +end) + +asset.export(layer) +asset.export(colorbar) + + +asset.meta = { + Name = Name, + Version = "1.0", + Description = Description .. "Data provided by the National Oceanic and Atmospheric Administration.", + Author = "National Oceanic and Atmospheric Administration", + URL = URL, + License = "https://sos.noaa.gov/copyright/" +} diff --git a/data/assets/scene/solarsystem/planets/earth/noaa-sos/oceans/vent_discoveries_animation.asset b/data/assets/scene/solarsystem/planets/earth/noaa-sos/oceans/vent_discoveries_animation.asset new file mode 100644 index 0000000000..66dded0bc3 --- /dev/null +++ b/data/assets/scene/solarsystem/planets/earth/noaa-sos/oceans/vent_discoveries_animation.asset @@ -0,0 +1,61 @@ +local globeIdentifier = asset.require("../../earth").Earth.Identifier + + +local Name = "Deep-Sea Vent Discoveries" +local Identifier = "noaa-sos-oceans-vent_discoveries_animation" +local Description = [[ This dataset is an animation showing the discoveries of deep-sea +hydrothermal vents from 1977-2016 (cumulative, annually). In 1977 scientists made a +stunning discovery that changed our understanding of life on Earth. On the deep seafloor +they had discovered hot springs, or hydrothermal vents, with animals that had never been +seen before. These discoveries continue today. Over 240 vent fields have been discovered +with human-occupied, remotely-operated, and autonomous vehicles. ]] +local URL = "https://sos.noaa.gov/catalog/datasets/deep-sea-vent-discoveries/" + + +local syncedDirectory = asset.syncedResource({ + Name = Name, + Type = "HttpSynchronization", + Identifier = Identifier, + Version = 1 +}) + +local imagesDestination = syncedDirectory .. "images" + +local layer = { + Identifier = Identifier, + Name = Name, + Type = "TemporalTileLayer", + Mode = "Folder", + Folder = { + Folder = imagesDestination, + -- See https://en.cppreference.com/w/cpp/io/manip/get_time for an explanation of the + -- time formatting string + Format = "vents_%Y.png" + }, + Description = Description +} + +asset.onInitialize(function() + if not openspace.directoryExists(imagesDestination) then + openspace.printInfo("Extracting " .. Name) + openspace.unzipFile(syncedDirectory .. "new.zip", imagesDestination, true) + end + + openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer) +end) + +asset.onDeinitialize(function() + openspace.globebrowsing.deleteLayer(globeIdentifier, "ColorLayers", layer) +end) + +asset.export(layer) + + +asset.meta = { + Name = Name, + Version = "1.0", + Description = Description .. "Data provided by the National Oceanic and Atmospheric Administration.", + Author = "National Oceanic and Atmospheric Administration", + URL = URL, + License = "https://sos.noaa.gov/copyright/" +} diff --git a/data/assets/scene/solarsystem/planets/earth/noaa-sos/oceans/vent_locations.asset b/data/assets/scene/solarsystem/planets/earth/noaa-sos/oceans/vent_locations.asset new file mode 100644 index 0000000000..ef30e85173 --- /dev/null +++ b/data/assets/scene/solarsystem/planets/earth/noaa-sos/oceans/vent_locations.asset @@ -0,0 +1,47 @@ +local globeIdentifier = asset.require("../../earth").Earth.Identifier + + +local Name = "Deep-Sea Vent Locations" +local Identifier = "noaa-sos-oceans-vent_locations" +local Description = [[ This dataset shows all known locations of deep-sea hydrothermal +vents. Hydrothermal vents form in places where there is volcanic activity, such as along +Earth's plate boundaries. They occur when seawater seeps down and is heated deep beneath +the seafloor. The hot fluid rises and gushes out of vents at temperatures up to 400 deg C +(more than 750 deg F!), carrying with it chemical energy that supports life in the +otherwise cold, dark, deep sea. ]] +local URL = "https://sos.noaa.gov/catalog/datasets/deep-sea-vent-locations/" + + +local syncedDirectory = asset.syncedResource({ + Name = Name, + Type = "HttpSynchronization", + Identifier = Identifier, + Version = 1 +}) + +local layer = { + Identifier = Identifier, + Name = Name, + FilePath = syncedDirectory .. "vents_2016.png", + Description = Description +} + +asset.onInitialize(function() + openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer) +end) + +asset.onDeinitialize(function() + openspace.globebrowsing.deleteLayer(globeIdentifier, "ColorLayers", layer) +end) + +asset.export(layer) + + +asset.meta = { + Name = Name, + Version = "1.0", + Description = Description .. "Data provided by the National Oceanic and Atmospheric Administration.", + Author = "National Oceanic and Atmospheric Administration", + URL = URL, + License = "https://sos.noaa.gov/copyright/" +} diff --git a/data/assets/scene/solarsystem/planets/earth/noaa-sos/oceans/vorticity.asset b/data/assets/scene/solarsystem/planets/earth/noaa-sos/oceans/vorticity.asset new file mode 100644 index 0000000000..2faa980c7f --- /dev/null +++ b/data/assets/scene/solarsystem/planets/earth/noaa-sos/oceans/vorticity.asset @@ -0,0 +1,68 @@ +local globeIdentifier = asset.require("../../earth").Earth.Identifier + + +local Name = "Ocean Surface Vorticity" +local Identifier = "noaa-sos-oceans-vorticity" +local Description = [[ This animation shows daily values of the ocean surface relative +vorticity as simulated by the Parallel Ocean Program (POP). Vorticity, which can be +thought of as the rate of fluid rotation, is particularly useful for visualizing ocean +turbulent flow, highlighting the presence of swirling eddies. A significant amount of the +total kinetic energy in the world ocean is attributable to these turbulent motions, +making them an important component in balances of energy, momentum, heat, salt, and +chemical constituents (such as carbon dioxide) throughout the globe. ]] +local URL = "https://sos.noaa.gov/catalog/datasets/ocean-surface-vorticity/" + + +local syncedDirectory = asset.syncedResource({ + Name = Name, + Type = "HttpSynchronization", + Identifier = Identifier, + Version = 1 +}) + +local imagesDestination = syncedDirectory .. "images" + +local layer = { + Identifier = Identifier, + Name = Name, + Type = "ImageSequenceTileLayer", + FolderPath = imagesDestination, + Description = Description +} + +local colorbar = { + Identifier = Identifier, + Name = Name, + Type = "ScreenSpaceImageLocal", + TexturePath = syncedDirectory .. "colorbar.png", + FaceCamera = false, + CartesianPosition = { 0.0, -0.5, -2.0 } +} + +asset.onInitialize(function() + if not openspace.directoryExists(imagesDestination) then + openspace.printInfo("Extracting " .. Name) + openspace.unzipFile(syncedDirectory .. "frames.zip", imagesDestination, true) + end + + openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer) + openspace.addScreenSpaceRenderable(colorbar); +end) + +asset.onDeinitialize(function() + openspace.globebrowsing.deleteLayer(globeIdentifier, "ColorLayers", layer) + openspace.removeScreenSpaceRenderable(colorbar) +end) + +asset.export(layer) +asset.export(colorbar) + + +asset.meta = { + Name = Name, + Version = "1.0", + Description = Description .. "Data provided by the National Oceanic and Atmospheric Administration.", + Author = "National Oceanic and Atmospheric Administration", + URL = URL, + License = "https://sos.noaa.gov/copyright/" +} diff --git a/data/assets/scene/solarsystem/planets/earth/noaa-sos/oceans/waves-wave_height_2012.asset b/data/assets/scene/solarsystem/planets/earth/noaa-sos/oceans/waves-wave_height_2012.asset new file mode 100644 index 0000000000..d87df890ed --- /dev/null +++ b/data/assets/scene/solarsystem/planets/earth/noaa-sos/oceans/waves-wave_height_2012.asset @@ -0,0 +1,65 @@ +local globeIdentifier = asset.require("../../earth").Earth.Identifier + + +local Name = "Wave Heights 2012" +local Identifier = "noaa-sos-oceans-waves-wave_height_2012" +local Description = [[ Meteorological offices worldwide forecast ocean wave heights for +the shipping and fisheries industry. In the United States, NOAA's National Weather +Service provides the wave forecasts. Just like in weather forecasting, scientists run +numerical models to make these predictions. ]] +local URL = "https://sos.noaa.gov/catalog/datasets/wave-heights-2012/" + + +local syncedDirectory = asset.syncedResource({ + Name = Name, + Type = "HttpSynchronization", + Identifier = Identifier, + Version = 1 +}) + +local imagesDestination = syncedDirectory .. "images" + +local layer = { + Identifier = Identifier, + Name = Name, + Type = "ImageSequenceTileLayer", + FolderPath = imagesDestination, + Description = Description +} + +local colorbar = { + Identifier = Identifier, + Name = Name, + Type = "ScreenSpaceImageLocal", + TexturePath = syncedDirectory .. "colorbar.png", + FaceCamera = false, + CartesianPosition = { 0.0, -0.5, -2.0 } +} + +asset.onInitialize(function() + if not openspace.directoryExists(imagesDestination) then + openspace.printInfo("Extracting " .. Name) + openspace.unzipFile(syncedDirectory .. "4096.zip", imagesDestination, true) + end + + openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer) + openspace.addScreenSpaceRenderable(colorbar); +end) + +asset.onDeinitialize(function() + openspace.globebrowsing.deleteLayer(globeIdentifier, "ColorLayers", layer) + openspace.removeScreenSpaceRenderable(colorbar) +end) + +asset.export(layer) +asset.export(colorbar) + + +asset.meta = { + Name = Name, + Version = "1.0", + Description = Description .. "Data provided by the National Oceanic and Atmospheric Administration.", + Author = "National Oceanic and Atmospheric Administration", + URL = URL, + License = "https://sos.noaa.gov/copyright/" +} diff --git a/data/assets/scene/solarsystem/planets/earth/noaa-sos/oceans/waves-wave_height_katrina.asset b/data/assets/scene/solarsystem/planets/earth/noaa-sos/oceans/waves-wave_height_katrina.asset new file mode 100644 index 0000000000..341d4381cb --- /dev/null +++ b/data/assets/scene/solarsystem/planets/earth/noaa-sos/oceans/waves-wave_height_katrina.asset @@ -0,0 +1,67 @@ +local globeIdentifier = asset.require("../../earth").Earth.Identifier + + +local Name = "Wave Heights - Hurricane Katrina 2005" +local Identifier = "noaa-sos-oceans-waves-wave_height_katrina" +local Description = [[ This movie shows calculations of the NOAA wave forecasting model, +called WAVEWATCH III, over the Atlantic Ocean and focuses on the time period that +Hurricane Katrina occurred. Hurricane Katrina formed near the Bahamas on August 23rd, +2005. It made landfall in Florida on Monday August 27th and then regained energy tracking +though the Gulf of Mexico. Finally it hit the southeast Louisiana coast on Monday August +29th, 2005. ]] +local URL = "https://sos.noaa.gov/catalog/datasets/wave-heights-hurricane-katrina-2005/" + + +local syncedDirectory = asset.syncedResource({ + Name = Name, + Type = "HttpSynchronization", + Identifier = Identifier, + Version = 1 +}) + +local imagesDestination = syncedDirectory .. "images" + +local layer = { + Identifier = Identifier, + Name = Name, + Type = "ImageSequenceTileLayer", + FolderPath = imagesDestination, + Description = Description +} + +local colorbar = { + Identifier = Identifier, + Name = Name, + Type = "ScreenSpaceImageLocal", + TexturePath = syncedDirectory .. "colorbar.png", + FaceCamera = false, + CartesianPosition = { 0.0, -0.5, -2.0 } +} + +asset.onInitialize(function() + if not openspace.directoryExists(imagesDestination) then + openspace.printInfo("Extracting " .. Name) + openspace.unzipFile(syncedDirectory .. "4096.zip", imagesDestination, true) + end + + openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer) + openspace.addScreenSpaceRenderable(colorbar); +end) + +asset.onDeinitialize(function() + openspace.globebrowsing.deleteLayer(globeIdentifier, "ColorLayers", layer) + openspace.removeScreenSpaceRenderable(colorbar) +end) + +asset.export(layer) +asset.export(colorbar) + + +asset.meta = { + Name = Name, + Version = "1.0", + Description = Description .. "Data provided by the National Oceanic and Atmospheric Administration.", + Author = "National Oceanic and Atmospheric Administration", + URL = URL, + License = "https://sos.noaa.gov/copyright/" +} diff --git a/data/assets/scene/solarsystem/planets/earth/noaa-sos/oceans/waves-wave_height_sandy.asset b/data/assets/scene/solarsystem/planets/earth/noaa-sos/oceans/waves-wave_height_sandy.asset new file mode 100644 index 0000000000..ef9f7c2695 --- /dev/null +++ b/data/assets/scene/solarsystem/planets/earth/noaa-sos/oceans/waves-wave_height_sandy.asset @@ -0,0 +1,67 @@ +local globeIdentifier = asset.require("../../earth").Earth.Identifier + + +local Name = "Wave Heights - Hurricane Sandy 2012" +local Identifier = "noaa-sos-oceans-waves-wave_height_sandy" +local Description = [[ Meteorological offices worldwide forecast ocean wave heights for +the shipping and fisheries industry. In the United States, NOAA's National Weather +Service provides the wave forecasts. Just like in weather forecasting, scientists run +numerical models to make these predictions. This movie shows wave height calculations of +a wave model called 'WAVEWATCH III'. The movie shows 3 hourly model output over October +1st - October 31st, 2012. ]] +local URL = "https://sos.noaa.gov/catalog/datasets/wave-heights-hurricane-sandy-2012/" + + +local syncedDirectory = asset.syncedResource({ + Name = Name, + Type = "HttpSynchronization", + Identifier = Identifier, + Version = 1 +}) + +local imagesDestination = syncedDirectory .. "images" + +local layer = { + Identifier = Identifier, + Name = Name, + Type = "ImageSequenceTileLayer", + FolderPath = imagesDestination, + Description = Description +} + +local colorbar = { + Identifier = Identifier, + Name = Name, + Type = "ScreenSpaceImageLocal", + TexturePath = syncedDirectory .. "colorbar.png", + FaceCamera = false, + CartesianPosition = { 0.0, -0.5, -2.0 } +} + +asset.onInitialize(function() + if not openspace.directoryExists(imagesDestination) then + openspace.printInfo("Extracting " .. Name) + openspace.unzipFile(syncedDirectory .. "4096.zip", imagesDestination, true) + end + + openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer) + openspace.addScreenSpaceRenderable(colorbar); +end) + +asset.onDeinitialize(function() + openspace.globebrowsing.deleteLayer(globeIdentifier, "ColorLayers", layer) + openspace.removeScreenSpaceRenderable(colorbar) +end) + +asset.export(layer) +asset.export(colorbar) + + +asset.meta = { + Name = Name, + Version = "1.0", + Description = Description .. "Data provided by the National Oceanic and Atmospheric Administration.", + Author = "National Oceanic and Atmospheric Administration", + URL = URL, + License = "https://sos.noaa.gov/copyright/" +} diff --git a/data/assets/scene/solarsystem/planets/earth/noaa-sos/oceans/waves-wave_power_2012.asset b/data/assets/scene/solarsystem/planets/earth/noaa-sos/oceans/waves-wave_power_2012.asset new file mode 100644 index 0000000000..d0a3f77e59 --- /dev/null +++ b/data/assets/scene/solarsystem/planets/earth/noaa-sos/oceans/waves-wave_power_2012.asset @@ -0,0 +1,65 @@ +local globeIdentifier = asset.require("../../earth").Earth.Identifier + + +local Name = "Wave Power 2012" +local Identifier = "noaa-sos-oceans-waves-wave_power_2012" +local Description = [[ Meteorological offices worldwide forecast ocean wave heights for +the shipping and fisheries industry. In the United States, NOAA's National Weather +Service provides the wave forecasts. Just like in weather forecasting, scientists run +numerical models to make these predictions. ]] +local URL = "https://sos.noaa.gov/catalog/datasets/wave-power-2012/" + + +local syncedDirectory = asset.syncedResource({ + Name = Name, + Type = "HttpSynchronization", + Identifier = Identifier, + Version = 1 +}) + +local imagesDestination = syncedDirectory .. "images" + +local layer = { + Identifier = Identifier, + Name = Name, + Type = "ImageSequenceTileLayer", + FolderPath = imagesDestination, + Description = Description +} + +local colorbar = { + Identifier = Identifier, + Name = Name, + Type = "ScreenSpaceImageLocal", + TexturePath = syncedDirectory .. "colorbar.png", + FaceCamera = false, + CartesianPosition = { 0.0, -0.5, -2.0 } +} + +asset.onInitialize(function() + if not openspace.directoryExists(imagesDestination) then + openspace.printInfo("Extracting " .. Name) + openspace.unzipFile(syncedDirectory .. "4096.zip", imagesDestination, true) + end + + openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer) + openspace.addScreenSpaceRenderable(colorbar); +end) + +asset.onDeinitialize(function() + openspace.globebrowsing.deleteLayer(globeIdentifier, "ColorLayers", layer) + openspace.removeScreenSpaceRenderable(colorbar) +end) + +asset.export(layer) +asset.export(colorbar) + + +asset.meta = { + Name = Name, + Version = "1.0", + Description = Description .. "Data provided by the National Oceanic and Atmospheric Administration.", + Author = "National Oceanic and Atmospheric Administration", + URL = URL, + License = "https://sos.noaa.gov/copyright/" +} diff --git a/data/assets/scene/solarsystem/planets/earth/noaa-sos/oceans/weeklyseaice-10day_seaice.asset b/data/assets/scene/solarsystem/planets/earth/noaa-sos/oceans/weeklyseaice-10day_seaice.asset new file mode 100644 index 0000000000..28befd564e --- /dev/null +++ b/data/assets/scene/solarsystem/planets/earth/noaa-sos/oceans/weeklyseaice-10day_seaice.asset @@ -0,0 +1,65 @@ +local globeIdentifier = asset.require("../../earth").Earth.Identifier + + +local Name = "Sea Ice Extent- 1978 - Present" +local Identifier = "noaa-sos-oceans-weeklyseaice-10day_seaice" +local Description = [[ Sea ice is simply ocean water that has frozen. At least 15% of the +ocean is covered by sea ice some part of the year. This means that on average, sea ice +covers almost 10 million square miles (about 25 million square kilometers) of the Earth. +Sea ice is monitored closely by scientists because changing sea ice coverage can have a +huge impact on the rest of the globe. Global warming is amplified in polar regions. +Because of this, monitoring changes in sea ice can be a good indicator of climate change. +The National Snow and Ice Data Center monitors sea ice using a passive microwave +satellite data record that begins in 1978. The Special Sensor Microwave Imager/Sounder +(SSMIS) is the current monitoring instrument. This sea ice extent dataset is on a 25km +cell size grid covering both Arctic and Antarctic polar regions. ]] +local URL = "https://sos.noaa.gov/catalog/datasets/sea-ice-extent-1978-present/" + + +local syncedDirectory = asset.syncedResource({ + Name = Name, + Type = "HttpSynchronization", + Identifier = Identifier, + Version = 1 +}) + +local imagesDestination = syncedDirectory .. "images" + +local layer = { + Identifier = Identifier, + Name = Name, + Type = "TemporalTileLayer", + Mode = "Folder", + Folder = { + Folder = imagesDestination, + -- See https://en.cppreference.com/w/cpp/io/manip/get_time for an explanation of the + -- time formatting string + Format = "nt_monthext_%Y%m%d-%Y%m%d_n07_sos.png" + }, + Description = Description +} + +asset.onInitialize(function() + if not openspace.directoryExists(imagesDestination) then + openspace.printInfo("Extracting " .. Name) + openspace.unzipFile(syncedDirectory .. "4096_png.zip", imagesDestination, true) + end + + openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer) +end) + +asset.onDeinitialize(function() + openspace.globebrowsing.deleteLayer(globeIdentifier, "ColorLayers", layer) +end) + +asset.export(layer) + + +asset.meta = { + Name = Name, + Version = "1.0", + Description = Description .. "Data provided by the National Oceanic and Atmospheric Administration.", + Author = "National Oceanic and Atmospheric Administration", + URL = URL, + License = "https://sos.noaa.gov/copyright/" +} diff --git a/data/assets/scene/solarsystem/planets/earth/noaa-sos/oceans/weeklyseaice-sept_seaice.asset b/data/assets/scene/solarsystem/planets/earth/noaa-sos/oceans/weeklyseaice-sept_seaice.asset new file mode 100644 index 0000000000..a466877eb2 --- /dev/null +++ b/data/assets/scene/solarsystem/planets/earth/noaa-sos/oceans/weeklyseaice-sept_seaice.asset @@ -0,0 +1,73 @@ +local globeIdentifier = asset.require("../../earth").Earth.Identifier + + +local Name = "Sea Ice Extent: September Only" +local Identifier = "noaa-sos-oceans-weeklyseaice-sept_seaice" +local Description = [[ Sea ice is simply ocean water that has frozen. At least 15% of the +ocean is covered by sea ice some part of the year. This means that on average, sea ice +covers almost 10 million square miles (about 25 million square kilometers) of the Earth. +Sea ice is monitored closely by scientists because changing sea ice coverage can have a +huge impact on the rest of the globe. Global warming is amplified in polar regions. +Because of this, monitoring changes in sea ice can be a good indicator of climate change. +The National Snow and Ice Data Center monitors sea ice using a passive microwave +satellite data record that begins in 1978. The Special Sensor Microwave Imager/Sounder +(SSMIS) is the current monitoring instrument. This sea ice extent dataset is on a 25km +cell size grid covering both Arctic and Antarctic polar regions. This dataset only shows +Septembers from 1979 - 2019 for both the Arctic and Antarctic. September was chosen to +specifically highlight the change in the Arctic minimum sea ice extent through time. The +decrease in sea ice coverage for the Arctic is apparent in this dataset. Another sea ice +extent dataset that is available shows Sea Ice Extent from 1987-2013. In the Arctic, the +maximum coverage usually occurs in March and the minimum coverage occurs in September. +The opposite is true for Antarctic, where the minimum occurs in March and the maximum +occurs in September. An interesting point to note is that the extent of sea ice in the +Arctic is shrinking, while the Antarctic sea ice is not trending downward. ]] +local URL = "https://sos.noaa.gov/catalog/datasets/sea-ice-extent-september-only/" + + +local syncedDirectory = asset.syncedResource({ + Name = Name, + Type = "HttpSynchronization", + Identifier = Identifier, + Version = 1 +}) + +local imagesDestination = syncedDirectory .. "images" + +local layer = { + Identifier = Identifier, + Name = Name, + Type = "TemporalTileLayer", + Mode = "Folder", + Folder = { + Folder = imagesDestination, + -- See https://en.cppreference.com/w/cpp/io/manip/get_time for an explanation of the + -- time formatting string + Format = "nt_monthext_%Y%m%d-%Y%m%d_n07_sos.png" + }, + Description = Description +} + +asset.onInitialize(function() + if not openspace.directoryExists(imagesDestination) then + openspace.printInfo("Extracting " .. Name) + openspace.unzipFile(syncedDirectory .. "4096.zip", imagesDestination, true) + end + + openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer) +end) + +asset.onDeinitialize(function() + openspace.globebrowsing.deleteLayer(globeIdentifier, "ColorLayers", layer) +end) + +asset.export(layer) + + +asset.meta = { + Name = Name, + Version = "1.0", + Description = Description .. "Data provided by the National Oceanic and Atmospheric Administration.", + Author = "National Oceanic and Atmospheric Administration", + URL = URL, + License = "https://sos.noaa.gov/copyright/" +} diff --git a/data/assets/scene/solarsystem/planets/earth/noaa-sos/overlays/cables.asset b/data/assets/scene/solarsystem/planets/earth/noaa-sos/overlays/cables.asset new file mode 100644 index 0000000000..2ff1695da9 --- /dev/null +++ b/data/assets/scene/solarsystem/planets/earth/noaa-sos/overlays/cables.asset @@ -0,0 +1,45 @@ +local globeIdentifier = asset.require("../../earth").Earth.Identifier + + +local Name = "Undersea Communication Cables" +local Identifier = "noaa-sos-overlays-cables" +local Description = [[ Overlays are datasets with transparent backgrounds that contain +foreground data used to augment other SOS datasets.This particular dataset overlays +undersea communications cables onto any dataset that you are viewing. The data was found +at Wikipedia. ]] +local URL = "https://sos.noaa.gov/catalog/datasets/undersea-communication-cables/" + + +local syncedDirectory = asset.syncedResource({ + Name = Name, + Type = "HttpSynchronization", + Identifier = Identifier, + Version = 1 +}) + +local layer = { + Identifier = Identifier, + Name = Name, + FilePath = syncedDirectory .. "4096.png", + Description = Description +} + +asset.onInitialize(function() + openspace.globebrowsing.addLayer(globeIdentifier, "Overlays", layer) +end) + +asset.onDeinitialize(function() + openspace.globebrowsing.deleteLayer(globeIdentifier, "Overlays", layer) +end) + +asset.export(layer) + + +asset.meta = { + Name = Name, + Version = "1.0", + Description = Description .. "Data provided by the National Oceanic and Atmospheric Administration.", + Author = "National Oceanic and Atmospheric Administration", + URL = URL, + License = "https://sos.noaa.gov/copyright/" +} diff --git a/data/assets/scene/solarsystem/planets/earth/noaa-sos/overlays/capitals.asset b/data/assets/scene/solarsystem/planets/earth/noaa-sos/overlays/capitals.asset new file mode 100644 index 0000000000..c557c24c6a --- /dev/null +++ b/data/assets/scene/solarsystem/planets/earth/noaa-sos/overlays/capitals.asset @@ -0,0 +1,44 @@ +local globeIdentifier = asset.require("../../earth").Earth.Identifier + + +local Name = "Capital City Names" +local Identifier = "noaa-sos-overlays-capitals" +local Description = [[ Overlays are datasets with transparent backgrounds that contain +foreground data used to augment other SOS datasets.This particular dataset overlays +country capitals onto any dataset that you are viewing. ]] +local URL = "https://sos.noaa.gov/catalog/datasets/capital-city-names/" + + +local syncedDirectory = asset.syncedResource({ + Name = Name, + Type = "HttpSynchronization", + Identifier = Identifier, + Version = 1 +}) + +local layer = { + Identifier = Identifier, + Name = Name, + FilePath = syncedDirectory .. "4096.png", + Description = Description +} + +asset.onInitialize(function() + openspace.globebrowsing.addLayer(globeIdentifier, "Overlays", layer) +end) + +asset.onDeinitialize(function() + openspace.globebrowsing.deleteLayer(globeIdentifier, "Overlays", layer) +end) + +asset.export(layer) + + +asset.meta = { + Name = Name, + Version = "1.0", + Description = Description .. "Data provided by the National Oceanic and Atmospheric Administration.", + Author = "National Oceanic and Atmospheric Administration", + URL = URL, + License = "https://sos.noaa.gov/copyright/" +} diff --git a/data/assets/scene/solarsystem/planets/earth/noaa-sos/overlays/city_names.asset b/data/assets/scene/solarsystem/planets/earth/noaa-sos/overlays/city_names.asset new file mode 100644 index 0000000000..bcf80fbd21 --- /dev/null +++ b/data/assets/scene/solarsystem/planets/earth/noaa-sos/overlays/city_names.asset @@ -0,0 +1,45 @@ +local globeIdentifier = asset.require("../../earth").Earth.Identifier + + +local Name = "City Names" +local Identifier = "noaa-sos-overlays-city_names" +local Description = [[ Overlays are datasets with transparent backgrounds that contain +foreground data used to augment other SOS datasets.This particular dataset overlays city +names from Wikipedia's List of Metropolitan Areas by Population onto any dataset that you +are viewing. ]] +local URL = "https://sos.noaa.gov/catalog/datasets/city-names/" + + +local syncedDirectory = asset.syncedResource({ + Name = Name, + Type = "HttpSynchronization", + Identifier = Identifier, + Version = 1 +}) + +local layer = { + Identifier = Identifier, + Name = Name, + FilePath = syncedDirectory .. "4096.png", + Description = Description +} + +asset.onInitialize(function() + openspace.globebrowsing.addLayer(globeIdentifier, "Overlays", layer) +end) + +asset.onDeinitialize(function() + openspace.globebrowsing.deleteLayer(globeIdentifier, "Overlays", layer) +end) + +asset.export(layer) + + +asset.meta = { + Name = Name, + Version = "1.0", + Description = Description .. "Data provided by the National Oceanic and Atmospheric Administration.", + Author = "National Oceanic and Atmospheric Administration", + URL = URL, + License = "https://sos.noaa.gov/copyright/" +} diff --git a/data/assets/scene/solarsystem/planets/earth/noaa-sos/overlays/continent_borders-black.asset b/data/assets/scene/solarsystem/planets/earth/noaa-sos/overlays/continent_borders-black.asset new file mode 100644 index 0000000000..0331d581ca --- /dev/null +++ b/data/assets/scene/solarsystem/planets/earth/noaa-sos/overlays/continent_borders-black.asset @@ -0,0 +1,44 @@ +local globeIdentifier = asset.require("../../earth").Earth.Identifier + + +local Name = "Continent Borders (black)" +local Identifier = "noaa-sos-overlays-continent_borders-black" +local Description = [[ Overlays are datasets with transparent backgrounds that contain +foreground data used to augment other SOS datasets.This particular dataset overlays +continent borders in black onto any dataset that you are viewing. ]] +local URL = "https://sos.noaa.gov/catalog/datasets/continent-borders-black/" + + +local syncedDirectory = asset.syncedResource({ + Name = Name, + Type = "HttpSynchronization", + Identifier = Identifier, + Version = 1 +}) + +local layer = { + Identifier = Identifier, + Name = Name, + FilePath = syncedDirectory .. "4096.png", + Description = Description +} + +asset.onInitialize(function() + openspace.globebrowsing.addLayer(globeIdentifier, "Overlays", layer) +end) + +asset.onDeinitialize(function() + openspace.globebrowsing.deleteLayer(globeIdentifier, "Overlays", layer) +end) + +asset.export(layer) + + +asset.meta = { + Name = Name, + Version = "1.0", + Description = Description .. "Data provided by the National Oceanic and Atmospheric Administration.", + Author = "National Oceanic and Atmospheric Administration", + URL = URL, + License = "https://sos.noaa.gov/copyright/" +} diff --git a/data/assets/scene/solarsystem/planets/earth/noaa-sos/overlays/continent_borders-white.asset b/data/assets/scene/solarsystem/planets/earth/noaa-sos/overlays/continent_borders-white.asset new file mode 100644 index 0000000000..2d1db3bc3e --- /dev/null +++ b/data/assets/scene/solarsystem/planets/earth/noaa-sos/overlays/continent_borders-white.asset @@ -0,0 +1,44 @@ +local globeIdentifier = asset.require("../../earth").Earth.Identifier + + +local Name = "Continent Borders (white)" +local Identifier = "noaa-sos-overlays-continent_borders-white" +local Description = [[ Overlays are datasets with transparent backgrounds that contain +foreground data used to augment other SOS datasets.This particular dataset overlays +continent borders in white onto any dataset that you are viewing. ]] +local URL = "https://sos.noaa.gov/catalog/datasets/continent-borders-white/" + + +local syncedDirectory = asset.syncedResource({ + Name = Name, + Type = "HttpSynchronization", + Identifier = Identifier, + Version = 1 +}) + +local layer = { + Identifier = Identifier, + Name = Name, + FilePath = syncedDirectory .. "4096.png", + Description = Description +} + +asset.onInitialize(function() + openspace.globebrowsing.addLayer(globeIdentifier, "Overlays", layer) +end) + +asset.onDeinitialize(function() + openspace.globebrowsing.deleteLayer(globeIdentifier, "Overlays", layer) +end) + +asset.export(layer) + + +asset.meta = { + Name = Name, + Version = "1.0", + Description = Description .. "Data provided by the National Oceanic and Atmospheric Administration.", + Author = "National Oceanic and Atmospheric Administration", + URL = URL, + License = "https://sos.noaa.gov/copyright/" +} diff --git a/data/assets/scene/solarsystem/planets/earth/noaa-sos/overlays/continent_names.asset b/data/assets/scene/solarsystem/planets/earth/noaa-sos/overlays/continent_names.asset new file mode 100644 index 0000000000..fedf85decb --- /dev/null +++ b/data/assets/scene/solarsystem/planets/earth/noaa-sos/overlays/continent_names.asset @@ -0,0 +1,44 @@ +local globeIdentifier = asset.require("../../earth").Earth.Identifier + + +local Name = "Continent Names" +local Identifier = "noaa-sos-overlays-continent_names" +local Description = [[ Overlays are datasets with transparent backgrounds that contain +foreground data used to augment other SOS datasets.This particular dataset overlays +continent continent names onto any dataset that you are viewing. ]] +local URL = "https://sos.noaa.gov/catalog/datasets/continent-names/" + + +local syncedDirectory = asset.syncedResource({ + Name = Name, + Type = "HttpSynchronization", + Identifier = Identifier, + Version = 1 +}) + +local layer = { + Identifier = Identifier, + Name = Name, + FilePath = syncedDirectory .. "4096.png", + Description = Description +} + +asset.onInitialize(function() + openspace.globebrowsing.addLayer(globeIdentifier, "Overlays", layer) +end) + +asset.onDeinitialize(function() + openspace.globebrowsing.deleteLayer(globeIdentifier, "Overlays", layer) +end) + +asset.export(layer) + + +asset.meta = { + Name = Name, + Version = "1.0", + Description = Description .. "Data provided by the National Oceanic and Atmospheric Administration.", + Author = "National Oceanic and Atmospheric Administration", + URL = URL, + License = "https://sos.noaa.gov/copyright/" +} diff --git a/data/assets/scene/solarsystem/planets/earth/noaa-sos/overlays/country_borders-black.asset b/data/assets/scene/solarsystem/planets/earth/noaa-sos/overlays/country_borders-black.asset new file mode 100644 index 0000000000..592def368a --- /dev/null +++ b/data/assets/scene/solarsystem/planets/earth/noaa-sos/overlays/country_borders-black.asset @@ -0,0 +1,44 @@ +local globeIdentifier = asset.require("../../earth").Earth.Identifier + + +local Name = "Country Borders (black)" +local Identifier = "noaa-sos-overlays-country_borders-black" +local Description = [[ Overlays are datasets with transparent backgrounds that contain +foreground data used to augment other SOS datasets.This particular dataset overlays +country borders onto any dataset that you are viewing. ]] +local URL = "https://sos.noaa.gov/catalog/datasets/country-borders-black/" + + +local syncedDirectory = asset.syncedResource({ + Name = Name, + Type = "HttpSynchronization", + Identifier = Identifier, + Version = 1 +}) + +local layer = { + Identifier = Identifier, + Name = Name, + FilePath = syncedDirectory .. "4096.png", + Description = Description +} + +asset.onInitialize(function() + openspace.globebrowsing.addLayer(globeIdentifier, "Overlays", layer) +end) + +asset.onDeinitialize(function() + openspace.globebrowsing.deleteLayer(globeIdentifier, "Overlays", layer) +end) + +asset.export(layer) + + +asset.meta = { + Name = Name, + Version = "1.0", + Description = Description .. "Data provided by the National Oceanic and Atmospheric Administration.", + Author = "National Oceanic and Atmospheric Administration", + URL = URL, + License = "https://sos.noaa.gov/copyright/" +} diff --git a/data/assets/scene/solarsystem/planets/earth/noaa-sos/overlays/country_borders-white.asset b/data/assets/scene/solarsystem/planets/earth/noaa-sos/overlays/country_borders-white.asset new file mode 100644 index 0000000000..c239fe1503 --- /dev/null +++ b/data/assets/scene/solarsystem/planets/earth/noaa-sos/overlays/country_borders-white.asset @@ -0,0 +1,44 @@ +local globeIdentifier = asset.require("../../earth").Earth.Identifier + + +local Name = "Continent Borders (white)" +local Identifier = "noaa-sos-overlays-country_borders-white" +local Description = [[ Overlays are datasets with transparent backgrounds that contain +foreground data used to augment other SOS datasets.This particular dataset overlays +country borders onto any dataset that you are viewing. ]] +local URL = "https://sos.noaa.gov/catalog/datasets/country-borders-white/" + + +local syncedDirectory = asset.syncedResource({ + Name = Name, + Type = "HttpSynchronization", + Identifier = Identifier, + Version = 1 +}) + +local layer = { + Identifier = Identifier, + Name = Name, + FilePath = syncedDirectory .. "4096.png", + Description = Description +} + +asset.onInitialize(function() + openspace.globebrowsing.addLayer(globeIdentifier, "Overlays", layer) +end) + +asset.onDeinitialize(function() + openspace.globebrowsing.deleteLayer(globeIdentifier, "Overlays", layer) +end) + +asset.export(layer) + + +asset.meta = { + Name = Name, + Version = "1.0", + Description = Description .. "Data provided by the National Oceanic and Atmospheric Administration.", + Author = "National Oceanic and Atmospheric Administration", + URL = URL, + License = "https://sos.noaa.gov/copyright/" +} diff --git a/data/assets/scene/solarsystem/planets/earth/noaa-sos/overlays/country_pop_names.asset b/data/assets/scene/solarsystem/planets/earth/noaa-sos/overlays/country_pop_names.asset new file mode 100644 index 0000000000..f3dd8da9f4 --- /dev/null +++ b/data/assets/scene/solarsystem/planets/earth/noaa-sos/overlays/country_pop_names.asset @@ -0,0 +1,45 @@ +local globeIdentifier = asset.require("../../earth").Earth.Identifier + + +local Name = "Country Names" +local Identifier = "noaa-sos-overlays-country_pop_names" +local Description = [[ Overlays are datasets with transparent backgrounds that contain +foreground data used to augment other SOS datasets.This particular dataset overlays +country names with font size according to population onto any dataset that you are +viewing. ]] +local URL = "https://sos.noaa.gov/catalog/datasets/country-names/" + + +local syncedDirectory = asset.syncedResource({ + Name = Name, + Type = "HttpSynchronization", + Identifier = Identifier, + Version = 1 +}) + +local layer = { + Identifier = Identifier, + Name = Name, + FilePath = syncedDirectory .. "4096.png", + Description = Description +} + +asset.onInitialize(function() + openspace.globebrowsing.addLayer(globeIdentifier, "Overlays", layer) +end) + +asset.onDeinitialize(function() + openspace.globebrowsing.deleteLayer(globeIdentifier, "Overlays", layer) +end) + +asset.export(layer) + + +asset.meta = { + Name = Name, + Version = "1.0", + Description = Description .. "Data provided by the National Oceanic and Atmospheric Administration.", + Author = "National Oceanic and Atmospheric Administration", + URL = URL, + License = "https://sos.noaa.gov/copyright/" +} diff --git a/data/assets/scene/solarsystem/planets/earth/noaa-sos/overlays/currents.asset b/data/assets/scene/solarsystem/planets/earth/noaa-sos/overlays/currents.asset new file mode 100644 index 0000000000..e35f21fba9 --- /dev/null +++ b/data/assets/scene/solarsystem/planets/earth/noaa-sos/overlays/currents.asset @@ -0,0 +1,64 @@ +local globeIdentifier = asset.require("../../earth").Earth.Identifier + + +local Name = "Ocean Currents" +local Identifier = "noaa-sos-overlays-currents" +local Description = [[ Overlays are datasets with transparent backgrounds that contain +foreground data used to augment other SOS datasets.This particular dataset is an overlay +of ocean currents, taken from the Ocean Circulation dataset. ]] +local URL = "https://sos.noaa.gov/catalog/datasets/ocean-currents/" + + +local syncedDirectory = asset.syncedResource({ + Name = Name, + Type = "HttpSynchronization", + Identifier = Identifier, + Version = 1 +}) + +local layer_combined = { + Identifier = Identifier .. "-combined", + Name = Name .. " (Combined)", + FilePath = syncedDirectory .. "combined.png", + Description = Description +} + +local layer_currents = { + Identifier = Identifier .. "-currents", + Name = Name .. " (Currents)", + FilePath = syncedDirectory .. "currents.png", + Description = Description +} + +local layer_labels = { + Identifier = Identifier .. "-labels", + Name = Name .. " (Labels)", + FilePath = syncedDirectory .. "labels.png", + Description = Description +} + +asset.onInitialize(function() + openspace.globebrowsing.addLayer(globeIdentifier, "Overlays", layer_combined) + openspace.globebrowsing.addLayer(globeIdentifier, "Overlays", layer_currents) + openspace.globebrowsing.addLayer(globeIdentifier, "Overlays", layer_labels) +end) + +asset.onDeinitialize(function() + openspace.globebrowsing.deleteLayer(globeIdentifier, "Overlays", layer_combined) + openspace.globebrowsing.deleteLayer(globeIdentifier, "Overlays", layer_currents) + openspace.globebrowsing.deleteLayer(globeIdentifier, "Overlays", layer_labels) +end) + +asset.export(layer_combined) +asset.export(layer_currents) +asset.export(layer_labels) + + +asset.meta = { + Name = Name, + Version = "1.0", + Description = Description .. "Data provided by the National Oceanic and Atmospheric Administration.", + Author = "National Oceanic and Atmospheric Administration", + URL = URL, + License = "https://sos.noaa.gov/copyright/" +} diff --git a/data/assets/scene/solarsystem/planets/earth/noaa-sos/overlays/general_circulation.asset b/data/assets/scene/solarsystem/planets/earth/noaa-sos/overlays/general_circulation.asset new file mode 100644 index 0000000000..3813fa89d8 --- /dev/null +++ b/data/assets/scene/solarsystem/planets/earth/noaa-sos/overlays/general_circulation.asset @@ -0,0 +1,46 @@ +local globeIdentifier = asset.require("../../earth").Earth.Identifier + + +local Name = "Atmospheric General Circulation" +local Identifier = "noaa-sos-overlays-general_circulation" +local Description = [[ Overlays are datasets with transparent backgrounds that contain +foreground data used to augment other SOS datasets.This particular dataset overlays +arrows and names of the approximate prevailing wind onto any dataset that you are +viewing. General circulation overlay would be particularly useful when pointing out the +rain shadow effect as well as cloud movement or when describing the coriolis effect. ]] +local URL = "https://sos.noaa.gov/catalog/datasets/atmospheric-general-circulation/" + + +local syncedDirectory = asset.syncedResource({ + Name = Name, + Type = "HttpSynchronization", + Identifier = Identifier, + Version = 1 +}) + +local layer = { + Identifier = Identifier, + Name = Name, + FilePath = syncedDirectory .. "features_arrows.png", + Description = Description +} + +asset.onInitialize(function() + openspace.globebrowsing.addLayer(globeIdentifier, "Overlays", layer) +end) + +asset.onDeinitialize(function() + openspace.globebrowsing.deleteLayer(globeIdentifier, "Overlays", layer) +end) + +asset.export(layer) + + +asset.meta = { + Name = Name, + Version = "1.0", + Description = Description .. "Data provided by the National Oceanic and Atmospheric Administration.", + Author = "National Oceanic and Atmospheric Administration", + URL = URL, + License = "https://sos.noaa.gov/copyright/" +} diff --git a/data/assets/scene/solarsystem/planets/earth/noaa-sos/overlays/land_mask-black.asset b/data/assets/scene/solarsystem/planets/earth/noaa-sos/overlays/land_mask-black.asset new file mode 100644 index 0000000000..342301194f --- /dev/null +++ b/data/assets/scene/solarsystem/planets/earth/noaa-sos/overlays/land_mask-black.asset @@ -0,0 +1,44 @@ +local globeIdentifier = asset.require("../../earth").Earth.Identifier + + +local Name = "Land Mask (black)" +local Identifier = "noaa-sos-overlays-land_mask-black" +local Description = [[ Overlays are datasets with transparent backgrounds that contain +foreground data used to augment other SOS datasets.This particular dataset overlays a +black mask over all the land on any dataset that you are viewing. ]] +local URL = "https://sos.noaa.gov/catalog/datasets/land-mask-black/" + + +local syncedDirectory = asset.syncedResource({ + Name = Name, + Type = "HttpSynchronization", + Identifier = Identifier, + Version = 1 +}) + +local layer = { + Identifier = Identifier, + Name = Name, + FilePath = syncedDirectory .. "4096.png", + Description = Description +} + +asset.onInitialize(function() + openspace.globebrowsing.addLayer(globeIdentifier, "Overlays", layer) +end) + +asset.onDeinitialize(function() + openspace.globebrowsing.deleteLayer(globeIdentifier, "Overlays", layer) +end) + +asset.export(layer) + + +asset.meta = { + Name = Name, + Version = "1.0", + Description = Description .. "Data provided by the National Oceanic and Atmospheric Administration.", + Author = "National Oceanic and Atmospheric Administration", + URL = URL, + License = "https://sos.noaa.gov/copyright/" +} diff --git a/data/assets/scene/solarsystem/planets/earth/noaa-sos/overlays/land_mask-veg.asset b/data/assets/scene/solarsystem/planets/earth/noaa-sos/overlays/land_mask-veg.asset new file mode 100644 index 0000000000..1a603b79e8 --- /dev/null +++ b/data/assets/scene/solarsystem/planets/earth/noaa-sos/overlays/land_mask-veg.asset @@ -0,0 +1,45 @@ +local globeIdentifier = asset.require("../../earth").Earth.Identifier + + +local Name = "Land Mask (vegetation)" +local Identifier = "noaa-sos-overlays-land_mask-veg" +local Description = [[ Overlays are datasets with transparent backgrounds that contain +foreground data used to augment other SOS datasets.This particular dataset overlays a +land mask of general vegetation over all the land onto any dataset that you are +viewing. ]] +local URL = "https://sos.noaa.gov/catalog/datasets/land-mask-vegetation/" + + +local syncedDirectory = asset.syncedResource({ + Name = Name, + Type = "HttpSynchronization", + Identifier = Identifier, + Version = 1 +}) + +local layer = { + Identifier = Identifier, + Name = Name, + FilePath = syncedDirectory .. "4096.png", + Description = Description +} + +asset.onInitialize(function() + openspace.globebrowsing.addLayer(globeIdentifier, "Overlays", layer) +end) + +asset.onDeinitialize(function() + openspace.globebrowsing.deleteLayer(globeIdentifier, "Overlays", layer) +end) + +asset.export(layer) + + +asset.meta = { + Name = Name, + Version = "1.0", + Description = Description .. "Data provided by the National Oceanic and Atmospheric Administration.", + Author = "National Oceanic and Atmospheric Administration", + URL = URL, + License = "https://sos.noaa.gov/copyright/" +} diff --git a/data/assets/scene/solarsystem/planets/earth/noaa-sos/overlays/latlon_grid-black.asset b/data/assets/scene/solarsystem/planets/earth/noaa-sos/overlays/latlon_grid-black.asset new file mode 100644 index 0000000000..be1c06a264 --- /dev/null +++ b/data/assets/scene/solarsystem/planets/earth/noaa-sos/overlays/latlon_grid-black.asset @@ -0,0 +1,44 @@ +local globeIdentifier = asset.require("../../earth").Earth.Identifier + + +local Name = "Lat/Long Grid (black)" +local Identifier = "noaa-sos-overlays-latlon_grid-black" +local Description = [[ Overlays are datasets with transparent backgrounds that contain +foreground data used to augment other SOS datasets.This particular dataset overlays a +latitude and longitude grid in black onto any dataset that you are viewing. ]] +local URL = "https://sos.noaa.gov/catalog/datasets/latlong-grid-black/" + + +local syncedDirectory = asset.syncedResource({ + Name = Name, + Type = "HttpSynchronization", + Identifier = Identifier, + Version = 1 +}) + +local layer = { + Identifier = Identifier, + Name = Name, + FilePath = syncedDirectory .. "4096.png", + Description = Description +} + +asset.onInitialize(function() + openspace.globebrowsing.addLayer(globeIdentifier, "Overlays", layer) +end) + +asset.onDeinitialize(function() + openspace.globebrowsing.deleteLayer(globeIdentifier, "Overlays", layer) +end) + +asset.export(layer) + + +asset.meta = { + Name = Name, + Version = "1.0", + Description = Description .. "Data provided by the National Oceanic and Atmospheric Administration.", + Author = "National Oceanic and Atmospheric Administration", + URL = URL, + License = "https://sos.noaa.gov/copyright/" +} diff --git a/data/assets/scene/solarsystem/planets/earth/noaa-sos/overlays/latlon_grid-white.asset b/data/assets/scene/solarsystem/planets/earth/noaa-sos/overlays/latlon_grid-white.asset new file mode 100644 index 0000000000..47c6616222 --- /dev/null +++ b/data/assets/scene/solarsystem/planets/earth/noaa-sos/overlays/latlon_grid-white.asset @@ -0,0 +1,44 @@ +local globeIdentifier = asset.require("../../earth").Earth.Identifier + + +local Name = "Lat/Long Grid (white)" +local Identifier = "noaa-sos-overlays-latlon_grid-white" +local Description = [[ Overlays are datasets with transparent backgrounds that contain +foreground data used to augment other SOS datasets.This particular dataset overlays a +latitude and longitude grid in white onto any dataset that you are viewing. ]] +local URL = "https://sos.noaa.gov/catalog/datasets/latlong-grid-white/" + + +local syncedDirectory = asset.syncedResource({ + Name = Name, + Type = "HttpSynchronization", + Identifier = Identifier, + Version = 1 +}) + +local layer = { + Identifier = Identifier, + Name = Name, + FilePath = syncedDirectory .. "4096.png", + Description = Description +} + +asset.onInitialize(function() + openspace.globebrowsing.addLayer(globeIdentifier, "Overlays", layer) +end) + +asset.onDeinitialize(function() + openspace.globebrowsing.deleteLayer(globeIdentifier, "Overlays", layer) +end) + +asset.export(layer) + + +asset.meta = { + Name = Name, + Version = "1.0", + Description = Description .. "Data provided by the National Oceanic and Atmospheric Administration.", + Author = "National Oceanic and Atmospheric Administration", + URL = URL, + License = "https://sos.noaa.gov/copyright/" +} diff --git a/data/assets/scene/solarsystem/planets/earth/noaa-sos/overlays/ocean_names.asset b/data/assets/scene/solarsystem/planets/earth/noaa-sos/overlays/ocean_names.asset new file mode 100644 index 0000000000..ac714c82d4 --- /dev/null +++ b/data/assets/scene/solarsystem/planets/earth/noaa-sos/overlays/ocean_names.asset @@ -0,0 +1,44 @@ +local globeIdentifier = asset.require("../../earth").Earth.Identifier + + +local Name = "Ocean Names" +local Identifier = "noaa-sos-overlays-ocean_names" +local Description = [[ Overlays are datasets with transparent backgrounds that contain +foreground data used to augment other SOS datasets.This particular dataset overlays ocean +names onto any dataset that you are viewing. ]] +local URL = "https://sos.noaa.gov/catalog/datasets/ocean-names/" + + +local syncedDirectory = asset.syncedResource({ + Name = Name, + Type = "HttpSynchronization", + Identifier = Identifier, + Version = 1 +}) + +local layer = { + Identifier = Identifier, + Name = Name, + FilePath = syncedDirectory .. "4096.png", + Description = Description +} + +asset.onInitialize(function() + openspace.globebrowsing.addLayer(globeIdentifier, "Overlays", layer) +end) + +asset.onDeinitialize(function() + openspace.globebrowsing.deleteLayer(globeIdentifier, "Overlays", layer) +end) + +asset.export(layer) + + +asset.meta = { + Name = Name, + Version = "1.0", + Description = Description .. "Data provided by the National Oceanic and Atmospheric Administration.", + Author = "National Oceanic and Atmospheric Administration", + URL = URL, + License = "https://sos.noaa.gov/copyright/" +} diff --git a/data/assets/scene/solarsystem/planets/earth/noaa-sos/overlays/plate_boundary-color.asset b/data/assets/scene/solarsystem/planets/earth/noaa-sos/overlays/plate_boundary-color.asset new file mode 100644 index 0000000000..cd3063246b --- /dev/null +++ b/data/assets/scene/solarsystem/planets/earth/noaa-sos/overlays/plate_boundary-color.asset @@ -0,0 +1,45 @@ +local globeIdentifier = asset.require("../../earth").Earth.Identifier + + +local Name = "Plate Boundaries (colorized)" +local Identifier = "noaa-sos-overlays-plate_boundary-color" +local Description = [[ Overlays are datasets with transparent backgrounds that contain +foreground data used to augment other SOS datasets.This particular dataset overlays +tectonic plate boundaries, with types of boundaries differentiated in color, onto any +dataset that you are viewing. ]] +local URL = "https://sos.noaa.gov/catalog/datasets/plate-boundaries-colorized/" + + +local syncedDirectory = asset.syncedResource({ + Name = Name, + Type = "HttpSynchronization", + Identifier = Identifier, + Version = 1 +}) + +local layer = { + Identifier = Identifier, + Name = Name, + FilePath = syncedDirectory .. "4096.png", + Description = Description +} + +asset.onInitialize(function() + openspace.globebrowsing.addLayer(globeIdentifier, "Overlays", layer) +end) + +asset.onDeinitialize(function() + openspace.globebrowsing.deleteLayer(globeIdentifier, "Overlays", layer) +end) + +asset.export(layer) + + +asset.meta = { + Name = Name, + Version = "1.0", + Description = Description .. "Data provided by the National Oceanic and Atmospheric Administration.", + Author = "National Oceanic and Atmospheric Administration", + URL = URL, + License = "https://sos.noaa.gov/copyright/" +} diff --git a/data/assets/scene/solarsystem/planets/earth/noaa-sos/overlays/plate_boundary-white.asset b/data/assets/scene/solarsystem/planets/earth/noaa-sos/overlays/plate_boundary-white.asset new file mode 100644 index 0000000000..b9911c672e --- /dev/null +++ b/data/assets/scene/solarsystem/planets/earth/noaa-sos/overlays/plate_boundary-white.asset @@ -0,0 +1,44 @@ +local globeIdentifier = asset.require("../../earth").Earth.Identifier + + +local Name = "Plate Boundaries (white)" +local Identifier = "noaa-sos-overlays-plate_boundary-white" +local Description = [[ Overlays are datasets with transparent backgrounds that contain +foreground data used to augment other SOS datasets.This particular dataset overlays +tectonic plate boundaries in white onto any dataset that you are viewing. ]] +local URL = "https://sos.noaa.gov/catalog/datasets/plate-boundaries-white/" + + +local syncedDirectory = asset.syncedResource({ + Name = Name, + Type = "HttpSynchronization", + Identifier = Identifier, + Version = 1 +}) + +local layer = { + Identifier = Identifier, + Name = Name, + FilePath = syncedDirectory .. "4096.png", + Description = Description +} + +asset.onInitialize(function() + openspace.globebrowsing.addLayer(globeIdentifier, "Overlays", layer) +end) + +asset.onDeinitialize(function() + openspace.globebrowsing.deleteLayer(globeIdentifier, "Overlays", layer) +end) + +asset.export(layer) + + +asset.meta = { + Name = Name, + Version = "1.0", + Description = Description .. "Data provided by the National Oceanic and Atmospheric Administration.", + Author = "National Oceanic and Atmospheric Administration", + URL = URL, + License = "https://sos.noaa.gov/copyright/" +} diff --git a/data/assets/scene/solarsystem/planets/earth/noaa-sos/overlays/plate_names.asset b/data/assets/scene/solarsystem/planets/earth/noaa-sos/overlays/plate_names.asset new file mode 100644 index 0000000000..b8890c9579 --- /dev/null +++ b/data/assets/scene/solarsystem/planets/earth/noaa-sos/overlays/plate_names.asset @@ -0,0 +1,44 @@ +local globeIdentifier = asset.require("../../earth").Earth.Identifier + + +local Name = "Plate Names" +local Identifier = "noaa-sos-overlays-plate_names" +local Description = [[ Overlays are datasets with transparent backgrounds that contain +foreground data used to augment other SOS datasets.This particular dataset overlays +tectonic plate names onto any dataset that you are viewing. ]] +local URL = "https://sos.noaa.gov/catalog/datasets/plate-names/" + + +local syncedDirectory = asset.syncedResource({ + Name = Name, + Type = "HttpSynchronization", + Identifier = Identifier, + Version = 1 +}) + +local layer = { + Identifier = Identifier, + Name = Name, + FilePath = syncedDirectory .. "4096.png", + Description = Description +} + +asset.onInitialize(function() + openspace.globebrowsing.addLayer(globeIdentifier, "Overlays", layer) +end) + +asset.onDeinitialize(function() + openspace.globebrowsing.deleteLayer(globeIdentifier, "Overlays", layer) +end) + +asset.export(layer) + + +asset.meta = { + Name = Name, + Version = "1.0", + Description = Description .. "Data provided by the National Oceanic and Atmospheric Administration.", + Author = "National Oceanic and Atmospheric Administration", + URL = URL, + License = "https://sos.noaa.gov/copyright/" +} diff --git a/data/assets/scene/solarsystem/planets/earth/noaa-sos/overlays/railroad.asset b/data/assets/scene/solarsystem/planets/earth/noaa-sos/overlays/railroad.asset new file mode 100644 index 0000000000..ebc6375d68 --- /dev/null +++ b/data/assets/scene/solarsystem/planets/earth/noaa-sos/overlays/railroad.asset @@ -0,0 +1,45 @@ +local globeIdentifier = asset.require("../../earth").Earth.Identifier + + +local Name = "Railroads" +local Identifier = "noaa-sos-overlays-railroad" +local Description = [[ Overlays are datasets with transparent backgrounds that contain +foreground data used to augment other SOS datasets.This particular dataset overlays +railroads onto any dataset that you are viewing. The data was found at Natural Earth +Data. ]] +local URL = "https://sos.noaa.gov/catalog/datasets/railroads/" + + +local syncedDirectory = asset.syncedResource({ + Name = Name, + Type = "HttpSynchronization", + Identifier = Identifier, + Version = 1 +}) + +local layer = { + Identifier = Identifier, + Name = Name, + FilePath = syncedDirectory .. "4096.png", + Description = Description +} + +asset.onInitialize(function() + openspace.globebrowsing.addLayer(globeIdentifier, "Overlays", layer) +end) + +asset.onDeinitialize(function() + openspace.globebrowsing.deleteLayer(globeIdentifier, "Overlays", layer) +end) + +asset.export(layer) + + +asset.meta = { + Name = Name, + Version = "1.0", + Description = Description .. "Data provided by the National Oceanic and Atmospheric Administration.", + Author = "National Oceanic and Atmospheric Administration", + URL = URL, + License = "https://sos.noaa.gov/copyright/" +} diff --git a/data/assets/scene/solarsystem/planets/earth/noaa-sos/overlays/rivers.asset b/data/assets/scene/solarsystem/planets/earth/noaa-sos/overlays/rivers.asset new file mode 100644 index 0000000000..ebe39b7fa0 --- /dev/null +++ b/data/assets/scene/solarsystem/planets/earth/noaa-sos/overlays/rivers.asset @@ -0,0 +1,45 @@ +local globeIdentifier = asset.require("../../earth").Earth.Identifier + + +local Name = "Rivers" +local Identifier = "noaa-sos-overlays-rivers" +local Description = [[ Overlays are datasets with transparent backgrounds that contain +foreground data used to augment other SOS datasets.This particular dataset overlays +global rivers and lakes onto any dataset that you are viewing. The river's size is +indicated by the size of the lines. The data was found at Natural Earth Data. ]] +local URL = "https://sos.noaa.gov/catalog/datasets/rivers/" + + +local syncedDirectory = asset.syncedResource({ + Name = Name, + Type = "HttpSynchronization", + Identifier = Identifier, + Version = 1 +}) + +local layer = { + Identifier = Identifier, + Name = Name, + FilePath = syncedDirectory .. "4096.png", + Description = Description +} + +asset.onInitialize(function() + openspace.globebrowsing.addLayer(globeIdentifier, "Overlays", layer) +end) + +asset.onDeinitialize(function() + openspace.globebrowsing.deleteLayer(globeIdentifier, "Overlays", layer) +end) + +asset.export(layer) + + +asset.meta = { + Name = Name, + Version = "1.0", + Description = Description .. "Data provided by the National Oceanic and Atmospheric Administration.", + Author = "National Oceanic and Atmospheric Administration", + URL = URL, + License = "https://sos.noaa.gov/copyright/" +} diff --git a/data/assets/scene/solarsystem/planets/earth/noaa-sos/overlays/roads-black.asset b/data/assets/scene/solarsystem/planets/earth/noaa-sos/overlays/roads-black.asset new file mode 100644 index 0000000000..800224b8b0 --- /dev/null +++ b/data/assets/scene/solarsystem/planets/earth/noaa-sos/overlays/roads-black.asset @@ -0,0 +1,45 @@ +local globeIdentifier = asset.require("../../earth").Earth.Identifier + + +local Name = "Roads (black)" +local Identifier = "noaa-sos-overlays-roads-black" +local Description = [[ Overlays are datasets with transparent backgrounds that contain +foreground data used to augment other SOS datasets.This particular dataset overlays black +roads onto any dataset that you are viewing. The data was found at Natural Earth +Data. ]] +local URL = "https://sos.noaa.gov/catalog/datasets/roads-black/" + + +local syncedDirectory = asset.syncedResource({ + Name = Name, + Type = "HttpSynchronization", + Identifier = Identifier, + Version = 1 +}) + +local layer = { + Identifier = Identifier, + Name = Name, + FilePath = syncedDirectory .. "4096.png", + Description = Description +} + +asset.onInitialize(function() + openspace.globebrowsing.addLayer(globeIdentifier, "Overlays", layer) +end) + +asset.onDeinitialize(function() + openspace.globebrowsing.deleteLayer(globeIdentifier, "Overlays", layer) +end) + +asset.export(layer) + + +asset.meta = { + Name = Name, + Version = "1.0", + Description = Description .. "Data provided by the National Oceanic and Atmospheric Administration.", + Author = "National Oceanic and Atmospheric Administration", + URL = URL, + License = "https://sos.noaa.gov/copyright/" +} diff --git a/data/assets/scene/solarsystem/planets/earth/noaa-sos/overlays/roads-white.asset b/data/assets/scene/solarsystem/planets/earth/noaa-sos/overlays/roads-white.asset new file mode 100644 index 0000000000..88a2b4b659 --- /dev/null +++ b/data/assets/scene/solarsystem/planets/earth/noaa-sos/overlays/roads-white.asset @@ -0,0 +1,45 @@ +local globeIdentifier = asset.require("../../earth").Earth.Identifier + + +local Name = "Roads (white)" +local Identifier = "noaa-sos-overlays-roads-white" +local Description = [[ Overlays are datasets with transparent backgrounds that contain +foreground data used to augment other SOS datasets.This particular dataset overlays white +roads onto any dataset that you are viewing. The data was found at Natural Earth +Data. ]] +local URL = "https://sos.noaa.gov/catalog/datasets/roads-white/" + + +local syncedDirectory = asset.syncedResource({ + Name = Name, + Type = "HttpSynchronization", + Identifier = Identifier, + Version = 1 +}) + +local layer = { + Identifier = Identifier, + Name = Name, + FilePath = syncedDirectory .. "4096.png", + Description = Description +} + +asset.onInitialize(function() + openspace.globebrowsing.addLayer(globeIdentifier, "Overlays", layer) +end) + +asset.onDeinitialize(function() + openspace.globebrowsing.deleteLayer(globeIdentifier, "Overlays", layer) +end) + +asset.export(layer) + + +asset.meta = { + Name = Name, + Version = "1.0", + Description = Description .. "Data provided by the National Oceanic and Atmospheric Administration.", + Author = "National Oceanic and Atmospheric Administration", + URL = URL, + License = "https://sos.noaa.gov/copyright/" +} diff --git a/data/assets/scene/solarsystem/planets/earth/noaa-sos/overlays/state_borders-black.asset b/data/assets/scene/solarsystem/planets/earth/noaa-sos/overlays/state_borders-black.asset new file mode 100644 index 0000000000..b4f124d9cf --- /dev/null +++ b/data/assets/scene/solarsystem/planets/earth/noaa-sos/overlays/state_borders-black.asset @@ -0,0 +1,44 @@ +local globeIdentifier = asset.require("../../earth").Earth.Identifier + + +local Name = "Country Borders with North American States (black)" +local Identifier = "noaa-sos-overlays-state_borders-black" +local Description = [[ Overlays are datasets with transparent backgrounds that contain +foreground data used to augment other SOS datasets.This particular dataset overlays +country and North American state borders onto any dataset that you are viewing. ]] +local URL = "https://sos.noaa.gov/catalog/datasets/country-borders-with-north-american-states-black/" + + +local syncedDirectory = asset.syncedResource({ + Name = Name, + Type = "HttpSynchronization", + Identifier = Identifier, + Version = 1 +}) + +local layer = { + Identifier = Identifier, + Name = Name, + FilePath = syncedDirectory .. "4096.png", + Description = Description +} + +asset.onInitialize(function() + openspace.globebrowsing.addLayer(globeIdentifier, "Overlays", layer) +end) + +asset.onDeinitialize(function() + openspace.globebrowsing.deleteLayer(globeIdentifier, "Overlays", layer) +end) + +asset.export(layer) + + +asset.meta = { + Name = Name, + Version = "1.0", + Description = Description .. "Data provided by the National Oceanic and Atmospheric Administration.", + Author = "National Oceanic and Atmospheric Administration", + URL = URL, + License = "https://sos.noaa.gov/copyright/" +} diff --git a/data/assets/scene/solarsystem/planets/earth/noaa-sos/overlays/state_borders-white.asset b/data/assets/scene/solarsystem/planets/earth/noaa-sos/overlays/state_borders-white.asset new file mode 100644 index 0000000000..9cf86d7738 --- /dev/null +++ b/data/assets/scene/solarsystem/planets/earth/noaa-sos/overlays/state_borders-white.asset @@ -0,0 +1,44 @@ +local globeIdentifier = asset.require("../../earth").Earth.Identifier + + +local Name = "Country Borders with North American States (white)" +local Identifier = "noaa-sos-overlays-state_borders-white" +local Description = [[ Overlays are datasets with transparent backgrounds that contain +foreground data used to augment other SOS datasets.This particular dataset overlays +country and North American state borders onto any dataset that you are viewing. ]] +local URL = "https://sos.noaa.gov/catalog/datasets/country-borders-with-north-american-states-white/" + + +local syncedDirectory = asset.syncedResource({ + Name = Name, + Type = "HttpSynchronization", + Identifier = Identifier, + Version = 1 +}) + +local layer = { + Identifier = Identifier, + Name = Name, + FilePath = syncedDirectory .. "4096.png", + Description = Description +} + +asset.onInitialize(function() + openspace.globebrowsing.addLayer(globeIdentifier, "Overlays", layer) +end) + +asset.onDeinitialize(function() + openspace.globebrowsing.deleteLayer(globeIdentifier, "Overlays", layer) +end) + +asset.export(layer) + + +asset.meta = { + Name = Name, + Version = "1.0", + Description = Description .. "Data provided by the National Oceanic and Atmospheric Administration.", + Author = "National Oceanic and Atmospheric Administration", + URL = URL, + License = "https://sos.noaa.gov/copyright/" +} diff --git a/data/assets/scene/solarsystem/planets/earth/noaa-sos/overlays/timezones.asset b/data/assets/scene/solarsystem/planets/earth/noaa-sos/overlays/timezones.asset new file mode 100644 index 0000000000..df5518d397 --- /dev/null +++ b/data/assets/scene/solarsystem/planets/earth/noaa-sos/overlays/timezones.asset @@ -0,0 +1,44 @@ +local globeIdentifier = asset.require("../../earth").Earth.Identifier + + +local Name = "Time zones" +local Identifier = "noaa-sos-overlays-timezones" +local Description = [[ Overlays are datasets with transparent backgrounds that contain +foreground data used to augment other SOS datasets.This particular dataset overlays +timezones onto any dataset that you are viewing. ]] +local URL = "https://sos.noaa.gov/catalog/datasets/time-zones/" + + +local syncedDirectory = asset.syncedResource({ + Name = Name, + Type = "HttpSynchronization", + Identifier = Identifier, + Version = 1 +}) + +local layer = { + Identifier = Identifier, + Name = Name, + FilePath = syncedDirectory .. "4096.png", + Description = Description +} + +asset.onInitialize(function() + openspace.globebrowsing.addLayer(globeIdentifier, "Overlays", layer) +end) + +asset.onDeinitialize(function() + openspace.globebrowsing.deleteLayer(globeIdentifier, "Overlays", layer) +end) + +asset.export(layer) + + +asset.meta = { + Name = Name, + Version = "1.0", + Description = Description .. "Data provided by the National Oceanic and Atmospheric Administration.", + Author = "National Oceanic and Atmospheric Administration", + URL = URL, + License = "https://sos.noaa.gov/copyright/" +} diff --git a/data/assets/scene/solarsystem/planets/earth/satellites/communications/amateur.asset b/data/assets/scene/solarsystem/planets/earth/satellites/communications/amateur.asset index b1d6370b17..dd652dab76 100644 --- a/data/assets/scene/solarsystem/planets/earth/satellites/communications/amateur.asset +++ b/data/assets/scene/solarsystem/planets/earth/satellites/communications/amateur.asset @@ -1,5 +1,4 @@ -local assetHelper = asset.require('util/asset_helper') -local shared = asset.require('util/tle_helper') +local shared = asset.require("util/tle_helper") local group = { Title = "Amateur Radio", @@ -9,3 +8,14 @@ local group = { local tle = shared.downloadTLEFile(asset, group.Url, group.Title) shared.registerSatelliteGroupObjects(asset, group, tle, true) + + +asset.meta = { + Name = "Satellites Communications - Amateur Radio", + Version = "1.0", + Description = [[ Satellites asset for Communications - Amateur Radio. Data from + Celestrak]], + Author = "OpenSpace Team", + URL = "https://celestrak.com/NORAD/elements/", + License = "Celestrak" +} diff --git a/data/assets/scene/solarsystem/planets/earth/satellites/communications/experimental.asset b/data/assets/scene/solarsystem/planets/earth/satellites/communications/experimental.asset index d094eb3bd3..ed234a6ebb 100644 --- a/data/assets/scene/solarsystem/planets/earth/satellites/communications/experimental.asset +++ b/data/assets/scene/solarsystem/planets/earth/satellites/communications/experimental.asset @@ -1,5 +1,4 @@ -local assetHelper = asset.require('util/asset_helper') -local shared = asset.require('util/tle_helper') +local shared = asset.require("util/tle_helper") local group = { Title = "Experimental", @@ -9,3 +8,14 @@ local group = { local tle = shared.downloadTLEFile(asset, group.Url, group.Title) shared.registerSatelliteGroupObjects(asset, group, tle, true) + + +asset.meta = { + Name = "Satellites Communications - Experimental", + Version = "1.0", + Description = [[ Satellites asset for Communications - Experimental. Data from + Celestrak]], + Author = "OpenSpace Team", + URL = "https://celestrak.com/NORAD/elements/", + License = "Celestrak" +} diff --git a/data/assets/scene/solarsystem/planets/earth/satellites/communications/geostationary.asset b/data/assets/scene/solarsystem/planets/earth/satellites/communications/geostationary.asset index aa17c4c902..0035ecb47c 100644 --- a/data/assets/scene/solarsystem/planets/earth/satellites/communications/geostationary.asset +++ b/data/assets/scene/solarsystem/planets/earth/satellites/communications/geostationary.asset @@ -1,11 +1,23 @@ -local assetHelper = asset.require('util/asset_helper') -local shared = asset.require('util/tle_helper') +local shared = asset.require("util/tle_helper") local group = { Title = "Geostationary", Url = "http://celestrak.com/NORAD/elements/geo.txt", - TrailColor = { 0.9, 0.9, 0.0 } + TrailColor = { 0.9, 0.9, 0.0 }, + Description = [[Satellites that are currently active and in a Geosynchronous orbit, meaning + their orbital period matches Earth's rotation.]] } local tle = shared.downloadTLEFile(asset, group.Url, group.Title) shared.registerSatelliteGroupObjects(asset, group, tle, true) + + +asset.meta = { + Name = "Satellites Communications - Geostationary", + Version = "1.0", + Description = [[ Satellites asset for Communications - Geostationary. Data from + Celestrak]], + Author = "OpenSpace Team", + URL = "https://celestrak.com/NORAD/elements/", + License = "Celestrak" +} diff --git a/data/assets/scene/solarsystem/planets/earth/satellites/communications/globalstar.asset b/data/assets/scene/solarsystem/planets/earth/satellites/communications/globalstar.asset index 45057138bc..46aadb0759 100644 --- a/data/assets/scene/solarsystem/planets/earth/satellites/communications/globalstar.asset +++ b/data/assets/scene/solarsystem/planets/earth/satellites/communications/globalstar.asset @@ -1,5 +1,4 @@ -local assetHelper = asset.require('util/asset_helper') -local shared = asset.require('util/tle_helper') +local shared = asset.require("util/tle_helper") local group = { Title = "GlobalStar", @@ -9,3 +8,14 @@ local group = { local tle = shared.downloadTLEFile(asset, group.Url, group.Title) shared.registerSatelliteGroupObjects(asset, group, tle, true) + + +asset.meta = { + Name = "Satellites Communications - GlobalStar", + Version = "1.0", + Description = [[ Satellites asset for Communications - GlobalStar. Data from + Celestrak]], + Author = "OpenSpace Team", + URL = "https://celestrak.com/NORAD/elements/", + License = "Celestrak" +} diff --git a/data/assets/scene/solarsystem/planets/earth/satellites/communications/gorizont.asset b/data/assets/scene/solarsystem/planets/earth/satellites/communications/gorizont.asset index 5369ef8ad7..d6415beb8b 100644 --- a/data/assets/scene/solarsystem/planets/earth/satellites/communications/gorizont.asset +++ b/data/assets/scene/solarsystem/planets/earth/satellites/communications/gorizont.asset @@ -1,5 +1,4 @@ -local assetHelper = asset.require('util/asset_helper') -local shared = asset.require('util/tle_helper') +local shared = asset.require("util/tle_helper") local group = { Title = "Gorizont", @@ -9,3 +8,14 @@ local group = { local tle = shared.downloadTLEFile(asset, group.Url, group.Title) shared.registerSatelliteGroupObjects(asset, group, tle, true) + + +asset.meta = { + Name = "Satellites Communications - Gorizont", + Version = "1.0", + Description = [[ Satellites asset for Communications - Gorizont. Data from + Celestrak]], + Author = "OpenSpace Team", + URL = "https://celestrak.com/NORAD/elements/", + License = "Celestrak" +} diff --git a/data/assets/scene/solarsystem/planets/earth/satellites/communications/intelsat.asset b/data/assets/scene/solarsystem/planets/earth/satellites/communications/intelsat.asset index e40a150e55..e46b557324 100644 --- a/data/assets/scene/solarsystem/planets/earth/satellites/communications/intelsat.asset +++ b/data/assets/scene/solarsystem/planets/earth/satellites/communications/intelsat.asset @@ -1,5 +1,4 @@ -local assetHelper = asset.require('util/asset_helper') -local shared = asset.require('util/tle_helper') +local shared = asset.require("util/tle_helper") local group = { Title = "Intelsat", @@ -9,3 +8,14 @@ local group = { local tle = shared.downloadTLEFile(asset, group.Url, group.Title) shared.registerSatelliteGroupObjects(asset, group, tle, true) + + +asset.meta = { + Name = "Satellites Communications - Intelsat", + Version = "1.0", + Description = [[ Satellites asset for Communications - Intelsat. Data from + Celestrak]], + Author = "OpenSpace Team", + URL = "https://celestrak.com/NORAD/elements/", + License = "Celestrak" +} diff --git a/data/assets/scene/solarsystem/planets/earth/satellites/communications/iridium.asset b/data/assets/scene/solarsystem/planets/earth/satellites/communications/iridium.asset index 5d8708142f..80ef41ff4e 100644 --- a/data/assets/scene/solarsystem/planets/earth/satellites/communications/iridium.asset +++ b/data/assets/scene/solarsystem/planets/earth/satellites/communications/iridium.asset @@ -1,5 +1,4 @@ -local assetHelper = asset.require('util/asset_helper') -local shared = asset.require('util/tle_helper') +local shared = asset.require("util/tle_helper") local group = { Title = "Iridium", @@ -9,3 +8,14 @@ local group = { local tle = shared.downloadTLEFile(asset, group.Url, group.Title) shared.registerSatelliteGroupObjects(asset, group, tle, true) + + +asset.meta = { + Name = "Satellites Communications - Iridium", + Version = "1.0", + Description = [[ Satellites asset for Communications - Iridium. Data from + Celestrak]], + Author = "OpenSpace Team", + URL = "https://celestrak.com/NORAD/elements/", + License = "Celestrak" +} diff --git a/data/assets/scene/solarsystem/planets/earth/satellites/communications/iridium_next.asset b/data/assets/scene/solarsystem/planets/earth/satellites/communications/iridium_next.asset index f37747ea8f..c6a0ffd014 100644 --- a/data/assets/scene/solarsystem/planets/earth/satellites/communications/iridium_next.asset +++ b/data/assets/scene/solarsystem/planets/earth/satellites/communications/iridium_next.asset @@ -1,5 +1,4 @@ -local assetHelper = asset.require('util/asset_helper') -local shared = asset.require('util/tle_helper') +local shared = asset.require("util/tle_helper") local group = { Title = "Iridium NEXT", @@ -9,3 +8,14 @@ local group = { local tle = shared.downloadTLEFile(asset, group.Url, group.Title) shared.registerSatelliteGroupObjects(asset, group, tle, true) + + +asset.meta = { + Name = "Satellites Communications - Iridium NEXT", + Version = "1.0", + Description = [[ Satellites asset for Communications - Iridium NEXT. Data from + Celestrak]], + Author = "OpenSpace Team", + URL = "https://celestrak.com/NORAD/elements/", + License = "Celestrak" +} diff --git a/data/assets/scene/solarsystem/planets/earth/satellites/communications/molniya.asset b/data/assets/scene/solarsystem/planets/earth/satellites/communications/molniya.asset index ed6e25b49a..3b4418dfa5 100644 --- a/data/assets/scene/solarsystem/planets/earth/satellites/communications/molniya.asset +++ b/data/assets/scene/solarsystem/planets/earth/satellites/communications/molniya.asset @@ -1,5 +1,4 @@ -local assetHelper = asset.require('util/asset_helper') -local shared = asset.require('util/tle_helper') +local shared = asset.require("util/tle_helper") local group = { Title = "Molniya", @@ -9,3 +8,14 @@ local group = { local tle = shared.downloadTLEFile(asset, group.Url, group.Title) shared.registerSatelliteGroupObjects(asset, group, tle, true) + + +asset.meta = { + Name = "Satellites Communications - Molniya", + Version = "1.0", + Description = [[ Satellites asset for Communications - Molniya. Data from + Celestrak]], + Author = "OpenSpace Team", + URL = "https://celestrak.com/NORAD/elements/", + License = "Celestrak" +} diff --git a/data/assets/scene/solarsystem/planets/earth/satellites/communications/orbcomm.asset b/data/assets/scene/solarsystem/planets/earth/satellites/communications/orbcomm.asset index 9fd8597db8..3a4a2c9e4b 100644 --- a/data/assets/scene/solarsystem/planets/earth/satellites/communications/orbcomm.asset +++ b/data/assets/scene/solarsystem/planets/earth/satellites/communications/orbcomm.asset @@ -1,5 +1,4 @@ -local assetHelper = asset.require('util/asset_helper') -local shared = asset.require('util/tle_helper') +local shared = asset.require("util/tle_helper") local group = { Title = "Orbcomm", @@ -9,3 +8,14 @@ local group = { local tle = shared.downloadTLEFile(asset, group.Url, group.Title) shared.registerSatelliteGroupObjects(asset, group, tle, true) + + +asset.meta = { + Name = "Satellites Communications - Orbcomm", + Version = "1.0", + Description = [[ Satellites asset for Communications - Orbcomm. Data from + Celestrak]], + Author = "OpenSpace Team", + URL = "https://celestrak.com/NORAD/elements/", + License = "Celestrak" +} diff --git a/data/assets/scene/solarsystem/planets/earth/satellites/communications/other_comm.asset b/data/assets/scene/solarsystem/planets/earth/satellites/communications/other_comm.asset index 7c4621d189..22ccee97c4 100644 --- a/data/assets/scene/solarsystem/planets/earth/satellites/communications/other_comm.asset +++ b/data/assets/scene/solarsystem/planets/earth/satellites/communications/other_comm.asset @@ -1,5 +1,4 @@ -local assetHelper = asset.require('util/asset_helper') -local shared = asset.require('util/tle_helper') +local shared = asset.require("util/tle_helper") local group = { Title = "Other comm", @@ -9,3 +8,14 @@ local group = { local tle = shared.downloadTLEFile(asset, group.Url, group.Title) shared.registerSatelliteGroupObjects(asset, group, tle, true) + + +asset.meta = { + Name = "Satellites Communications - Other comm", + Version = "1.0", + Description = [[ Satellites asset for Communications - Other comm. Data from + Celestrak]], + Author = "OpenSpace Team", + URL = "https://celestrak.com/NORAD/elements/", + License = "Celestrak" +} diff --git a/data/assets/scene/solarsystem/planets/earth/satellites/communications/raduga.asset b/data/assets/scene/solarsystem/planets/earth/satellites/communications/raduga.asset index 054816b80c..44aa55af46 100644 --- a/data/assets/scene/solarsystem/planets/earth/satellites/communications/raduga.asset +++ b/data/assets/scene/solarsystem/planets/earth/satellites/communications/raduga.asset @@ -1,5 +1,4 @@ -local assetHelper = asset.require('util/asset_helper') -local shared = asset.require('util/tle_helper') +local shared = asset.require("util/tle_helper") local group = { Title = "Raduga", @@ -9,3 +8,14 @@ local group = { local tle = shared.downloadTLEFile(asset, group.Url, group.Title) shared.registerSatelliteGroupObjects(asset, group, tle, true) + + +asset.meta = { + Name = "Satellites Communications - Raduga", + Version = "1.0", + Description = [[ Satellites asset for Communications - Raduga. Data from + Celestrak]], + Author = "OpenSpace Team", + URL = "https://celestrak.com/NORAD/elements/", + License = "Celestrak" +} diff --git a/data/assets/scene/solarsystem/planets/earth/satellites/communications/ses.asset b/data/assets/scene/solarsystem/planets/earth/satellites/communications/ses.asset index 6f19efa0ac..6b75d9d9df 100644 --- a/data/assets/scene/solarsystem/planets/earth/satellites/communications/ses.asset +++ b/data/assets/scene/solarsystem/planets/earth/satellites/communications/ses.asset @@ -1,5 +1,4 @@ -local assetHelper = asset.require('util/asset_helper') -local shared = asset.require('util/tle_helper') +local shared = asset.require("util/tle_helper") local group = { Title = "SES", @@ -9,3 +8,14 @@ local group = { local tle = shared.downloadTLEFile(asset, group.Url, group.Title) shared.registerSatelliteGroupObjects(asset, group, tle, true) + + +asset.meta = { + Name = "Satellites Communications - SES", + Version = "1.0", + Description = [[ Satellites asset for Communications - SES. Data from + Celestrak]], + Author = "OpenSpace Team", + URL = "https://celestrak.com/NORAD/elements/", + License = "Celestrak" +} diff --git a/data/assets/scene/solarsystem/planets/earth/satellites/debris/debris_asat.asset b/data/assets/scene/solarsystem/planets/earth/satellites/debris/debris_asat.asset index 93df258312..1592d116e9 100644 --- a/data/assets/scene/solarsystem/planets/earth/satellites/debris/debris_asat.asset +++ b/data/assets/scene/solarsystem/planets/earth/satellites/debris/debris_asat.asset @@ -1,5 +1,4 @@ -local assetHelper = asset.require('util/asset_helper') -local shared = asset.require('util/tle_helper') +local shared = asset.require("util/tle_helper") local group = { Title = "Indian ASAT test Debris", @@ -8,8 +7,15 @@ local group = { } local tle = shared.downloadTLEFile(asset, group.Url, group.Title) - - -local objectNames = {} - shared.registerSatelliteGroupObjects(asset, group, tle, true) + + +asset.meta = { + Name = "Satellites Debris - Indian ASAT test Debris", + Version = "1.0", + Description = [[ Satellites asset for Debris - Indian ASAT test Debris. Data from + Celestrak]], + Author = "OpenSpace Team", + URL = "https://celestrak.com/NORAD/elements/", + License = "Celestrak" +} diff --git a/data/assets/scene/solarsystem/planets/earth/satellites/debris/debris_breezem.asset b/data/assets/scene/solarsystem/planets/earth/satellites/debris/debris_breezem.asset index 602f400de3..ebfd71130d 100644 --- a/data/assets/scene/solarsystem/planets/earth/satellites/debris/debris_breezem.asset +++ b/data/assets/scene/solarsystem/planets/earth/satellites/debris/debris_breezem.asset @@ -1,5 +1,4 @@ -local assetHelper = asset.require('util/asset_helper') -local shared = asset.require('util/tle_helper') +local shared = asset.require("util/tle_helper") local group = { Title = "Breeze-M Breakup", @@ -8,8 +7,15 @@ local group = { } local tle = shared.downloadTLEFile(asset, group.Url, group.Title) - - -local objectNames = {} - shared.registerSatelliteGroupObjects(asset, group, tle, true) + + +asset.meta = { + Name = "Satellites Debris - Breeze-M Breakup", + Version = "1.0", + Description = [[ Satellites asset for Debris - Breeze-M Breakup. Data from + Celestrak]], + Author = "OpenSpace Team", + URL = "https://celestrak.com/events/38746-Breakup/", + License = "Celestrak" +} diff --git a/data/assets/scene/solarsystem/planets/earth/satellites/debris/debris_fengyun.asset b/data/assets/scene/solarsystem/planets/earth/satellites/debris/debris_fengyun.asset index fe48a9cd20..8af842ecef 100644 --- a/data/assets/scene/solarsystem/planets/earth/satellites/debris/debris_fengyun.asset +++ b/data/assets/scene/solarsystem/planets/earth/satellites/debris/debris_fengyun.asset @@ -1,5 +1,4 @@ -local assetHelper = asset.require('util/asset_helper') -local shared = asset.require('util/tle_helper') +local shared = asset.require("util/tle_helper") local group = { Title = "Fengyun Debris", @@ -8,8 +7,15 @@ local group = { } local tle = shared.downloadTLEFile(asset, group.Url, group.Title) - - -local objectNames = {} - shared.registerSatelliteGroupObjects(asset, group, tle, true) + + +asset.meta = { + Name = "Satellites Debris - Fengyun Debris", + Version = "1.0", + Description = [[ Satellites asset for Debris - Fengyun Debris. Data from + Celestrak]], + Author = "OpenSpace Team", + URL = "https://celestrak.com/NORAD/elements/", + License = "Celestrak" +} diff --git a/data/assets/scene/solarsystem/planets/earth/satellites/debris/debris_iridium33.asset b/data/assets/scene/solarsystem/planets/earth/satellites/debris/debris_iridium33.asset index 1d1235028d..713a2da2cb 100644 --- a/data/assets/scene/solarsystem/planets/earth/satellites/debris/debris_iridium33.asset +++ b/data/assets/scene/solarsystem/planets/earth/satellites/debris/debris_iridium33.asset @@ -1,5 +1,4 @@ -local assetHelper = asset.require('util/asset_helper') -local shared = asset.require('util/tle_helper') +local shared = asset.require("util/tle_helper") local group = { Title = "Iridium 33 Debris", @@ -8,8 +7,15 @@ local group = { } local tle = shared.downloadTLEFile(asset, group.Url, group.Title) - - -local objectNames = {} - shared.registerSatelliteGroupObjects(asset, group, tle, true) + + +asset.meta = { + Name = "Satellites Debris - Iridium 33 Debris", + Version = "1.0", + Description = [[ Satellites asset for Debris - Iridium 33 Debris. Data from + Celestrak]], + Author = "OpenSpace Team", + URL = "https://celestrak.com/NORAD/elements/", + License = "Celestrak" +} diff --git a/data/assets/scene/solarsystem/planets/earth/satellites/debris/debris_kosmos2251.asset b/data/assets/scene/solarsystem/planets/earth/satellites/debris/debris_kosmos2251.asset index 6522de59ab..e35c9f954c 100644 --- a/data/assets/scene/solarsystem/planets/earth/satellites/debris/debris_kosmos2251.asset +++ b/data/assets/scene/solarsystem/planets/earth/satellites/debris/debris_kosmos2251.asset @@ -1,5 +1,4 @@ -local assetHelper = asset.require('util/asset_helper') -local shared = asset.require('util/tle_helper') +local shared = asset.require("util/tle_helper") local group = { Title = "Kosmos 2251 Debris", @@ -8,8 +7,15 @@ local group = { } local tle = shared.downloadTLEFile(asset, group.Url, group.Title) - - -local objectNames = {} - shared.registerSatelliteGroupObjects(asset, group, tle, true) + + +asset.meta = { + Name = "Satellites Debris - Kosmos 2251 Debris", + Version = "1.0", + Description = [[ Satellites asset for Debris - Kosmos 2251 Debris. Data from + Celestrak]], + Author = "OpenSpace Team", + URL = "https://celestrak.com/NORAD/elements/", + License = "Celestrak" +} diff --git a/data/assets/scene/solarsystem/planets/earth/satellites/debris/volume/cartesian_volume.asset b/data/assets/scene/solarsystem/planets/earth/satellites/debris/volume/cartesian_volume.asset index 1e3b606a76..323d0cd0dc 100644 --- a/data/assets/scene/solarsystem/planets/earth/satellites/debris/volume/cartesian_volume.asset +++ b/data/assets/scene/solarsystem/planets/earth/satellites/debris/volume/cartesian_volume.asset @@ -4,7 +4,6 @@ -- the volume data itself needs to be generated, -- using the task 'data/tasks/volume/debristasks/generate_debris_volume.task' -local assetHelper = asset.require('util/asset_helper') local transforms = asset.require("scene/solarsystem/planets/earth/transforms") local maxApogee = 2 * 10946320; @@ -34,5 +33,23 @@ local volume = { } } -local objects = { volume } -assetHelper.registerSceneGraphNodes(asset, objects) +asset.onInitialize(function() + openspace.addSceneGraphNode(volume) +end) + +asset.onDeinitialize(function() + openspace.removeSceneGraphNode(volume) +end) + +asset.export(volume) + + + +asset.meta = { + Name = "Satellites Debris - Volume Cartesian", + Version = "1.0", + Description = [[ Satellites asset for Debris - Volume Cartesian. Example asset.]], + Author = "OpenSpace Team", + URL = "", + License = "MIT" +} diff --git a/data/assets/scene/solarsystem/planets/earth/satellites/debris/volume/spherical_volume.asset b/data/assets/scene/solarsystem/planets/earth/satellites/debris/volume/spherical_volume.asset index f0e5218cb0..215440de76 100644 --- a/data/assets/scene/solarsystem/planets/earth/satellites/debris/volume/spherical_volume.asset +++ b/data/assets/scene/solarsystem/planets/earth/satellites/debris/volume/spherical_volume.asset @@ -4,7 +4,6 @@ -- the volume data itself needs to be generated, -- using the task 'data/tasks/volume/debristasks/generate_debris_volume.task' -local assetHelper = asset.require('util/asset_helper') local transforms = asset.require("scene/solarsystem/planets/earth/transforms") local maxApogee = 10946320; @@ -34,5 +33,23 @@ local volume = { } } -local objects = { volume } -assetHelper.registerSceneGraphNodes(asset, objects) +asset.onInitialize(function() + openspace.addSceneGraphNode(volume) +end) + +asset.onDeinitialize(function() + openspace.removeSceneGraphNode(volume) +end) + +asset.export(volume) + + + +asset.meta = { + Name = "Satellites Debris - Volume Spherical", + Version = "1.0", + Description = [[ Satellites asset for Debris - Volume Spherical. Example asset.]], + Author = "OpenSpace Team", + URL = "", + License = "MIT" +} diff --git a/data/assets/scene/solarsystem/planets/earth/satellites/misc/brightest.asset b/data/assets/scene/solarsystem/planets/earth/satellites/misc/brightest.asset index 9dd6222fc4..f7147ecefe 100644 --- a/data/assets/scene/solarsystem/planets/earth/satellites/misc/brightest.asset +++ b/data/assets/scene/solarsystem/planets/earth/satellites/misc/brightest.asset @@ -1,11 +1,22 @@ -local assetHelper = asset.require('util/asset_helper') -local shared = asset.require('util/tle_helper') +local shared = asset.require("util/tle_helper") local group = { Title = "100 Brightest", Url = "http://www.celestrak.com/NORAD/elements/visual.txt", - TrailColor = { 0.55, 0.25, 0.65 } + TrailColor = { 0.55, 0.25, 0.65 }, + Description = [[The 100 (or so) satellites that will appear brightest when viewed + from Earth.]] } local tle = shared.downloadTLEFile(asset, group.Url, group.Title) shared.registerSatelliteGroupObjects(asset, group, tle, true) + + +asset.meta = { + Name = "Satellites 100 Brightest", + Version = "1.0", + Description = [[ Satellites asset for 100 Brightest. Data from Celestrak]], + Author = "OpenSpace Team", + URL = "https://celestrak.com/NORAD/elements/", + License = "Celestrak" +} diff --git a/data/assets/scene/solarsystem/planets/earth/satellites/misc/cubesats.asset b/data/assets/scene/solarsystem/planets/earth/satellites/misc/cubesats.asset index 1f9ac6c110..662fec9cea 100644 --- a/data/assets/scene/solarsystem/planets/earth/satellites/misc/cubesats.asset +++ b/data/assets/scene/solarsystem/planets/earth/satellites/misc/cubesats.asset @@ -1,5 +1,4 @@ -local assetHelper = asset.require('util/asset_helper') -local shared = asset.require('util/tle_helper') +local shared = asset.require("util/tle_helper") local group = { Title = "CubeSat", @@ -9,3 +8,13 @@ local group = { local tle = shared.downloadTLEFile(asset, group.Url, group.Title) shared.registerSatelliteGroupObjects(asset, group, tle, true) + + +asset.meta = { + Name = "Satellites CubeSat", + Version = "1.0", + Description = [[ Satellites asset for CubeSat. Data from Celestrak]], + Author = "OpenSpace Team", + URL = "https://celestrak.com/NORAD/elements/", + License = "Celestrak" +} diff --git a/data/assets/scene/solarsystem/planets/earth/satellites/misc/iss.asset b/data/assets/scene/solarsystem/planets/earth/satellites/misc/iss.asset index 3c12782da0..3840852c8b 100644 --- a/data/assets/scene/solarsystem/planets/earth/satellites/misc/iss.asset +++ b/data/assets/scene/solarsystem/planets/earth/satellites/misc/iss.asset @@ -1,7 +1,6 @@ -local assetHelper = asset.require('util/asset_helper') -local satelliteHelper = asset.require('util/tle_helper') -local transforms = asset.require('scene/solarsystem/planets/earth/transforms') -local sunTransforms = asset.require('scene/solarsystem/sun/transforms') +local satelliteHelper = asset.require("util/tle_helper") +local transforms = asset.require("scene/solarsystem/planets/earth/transforms") +local sunTransforms = asset.require("scene/solarsystem/sun/transforms") local url = "http://celestrak.com/satcat/tle.php?CATNR=25544" local identifier = "ISS" @@ -19,7 +18,7 @@ local models = asset.syncedResource({ local initializeAndAddNodes = function() local lineElement = satelliteHelper.makeSingleLineElement(tle, filename) local period = satelliteHelper.getPeriodFromElement(lineElement) - local path = tle .. "/" .. filename + local path = tle .. filename local iss = { Identifier = "ISS", @@ -59,7 +58,7 @@ local initializeAndAddNodes = function() }, Renderable = { Type = "RenderableModel", - GeometryFile = models .. "/ISS.fbx", + GeometryFile = models .. "ISS.fbx", ModelScale = "Centimeter", LightSources = { { @@ -89,8 +88,8 @@ local initializeAndAddNodes = function() Observer = transforms.EarthInertial.Identifier, File = path, LineNumber = 1, - RenderBinMode = "PostDeferredTransparent" }, + RenderBinMode = "PostDeferredTransparent", Color = { 0.9, 0.6715, 0.0 }, Fade = 1.5, Period = period, diff --git a/data/assets/scene/solarsystem/planets/earth/satellites/misc/military.asset b/data/assets/scene/solarsystem/planets/earth/satellites/misc/military.asset index 8b159fdff1..7121f39afb 100644 --- a/data/assets/scene/solarsystem/planets/earth/satellites/misc/military.asset +++ b/data/assets/scene/solarsystem/planets/earth/satellites/misc/military.asset @@ -1,5 +1,4 @@ -local assetHelper = asset.require('util/asset_helper') -local shared = asset.require('util/tle_helper') +local shared = asset.require("util/tle_helper") local group = { Title = "Military", @@ -9,3 +8,13 @@ local group = { local tle = shared.downloadTLEFile(asset, group.Url, group.Title) shared.registerSatelliteGroupObjects(asset, group, tle, true) + + +asset.meta = { + Name = "Satellites Military", + Version = "1.0", + Description = [[ Satellites asset for Military. Data from Celestrak]], + Author = "OpenSpace Team", + URL = "https://celestrak.com/NORAD/elements/", + License = "Celestrak" +} diff --git a/data/assets/scene/solarsystem/planets/earth/satellites/misc/other.asset b/data/assets/scene/solarsystem/planets/earth/satellites/misc/other.asset index 3918837b54..437c0f9440 100644 --- a/data/assets/scene/solarsystem/planets/earth/satellites/misc/other.asset +++ b/data/assets/scene/solarsystem/planets/earth/satellites/misc/other.asset @@ -1,5 +1,4 @@ -local assetHelper = asset.require('util/asset_helper') -local shared = asset.require('util/tle_helper') +local shared = asset.require("util/tle_helper") local group = { Title = "Other", @@ -9,3 +8,13 @@ local group = { local tle = shared.downloadTLEFile(asset, group.Url, group.Title) shared.registerSatelliteGroupObjects(asset, group, tle, true) + + +asset.meta = { + Name = "Satellites Other", + Version = "1.0", + Description = [[ Satellites asset for Other. Data from Celestrak]], + Author = "OpenSpace Team", + URL = "https://celestrak.com/NORAD/elements/", + License = "Celestrak" +} diff --git a/data/assets/scene/solarsystem/planets/earth/satellites/misc/radar.asset b/data/assets/scene/solarsystem/planets/earth/satellites/misc/radar.asset index 9c997c75c3..fd389a5a73 100644 --- a/data/assets/scene/solarsystem/planets/earth/satellites/misc/radar.asset +++ b/data/assets/scene/solarsystem/planets/earth/satellites/misc/radar.asset @@ -1,5 +1,4 @@ -local assetHelper = asset.require('util/asset_helper') -local shared = asset.require('util/tle_helper') +local shared = asset.require("util/tle_helper") local group = { Title = "Radar Calibration", @@ -9,3 +8,13 @@ local group = { local tle = shared.downloadTLEFile(asset, group.Url, group.Title) shared.registerSatelliteGroupObjects(asset, group, tle, true) + + +asset.meta = { + Name = "Satellites Radar Calibration", + Version = "1.0", + Description = [[ Satellites asset for Radar Calibration. Data from Celestrak]], + Author = "OpenSpace Team", + URL = "https://celestrak.com/NORAD/elements/", + License = "Celestrak" +} diff --git a/data/assets/scene/solarsystem/planets/earth/satellites/misc/spacestations.asset b/data/assets/scene/solarsystem/planets/earth/satellites/misc/spacestations.asset index bcd888013c..bc22d96f7a 100644 --- a/data/assets/scene/solarsystem/planets/earth/satellites/misc/spacestations.asset +++ b/data/assets/scene/solarsystem/planets/earth/satellites/misc/spacestations.asset @@ -1,11 +1,23 @@ -local assetHelper = asset.require('util/asset_helper') -local shared = asset.require('util/tle_helper') +local shared = asset.require("util/tle_helper") local group = { Title = "SpaceStations", Url = "http://celestrak.com/NORAD/elements/stations.txt", - TrailColor = { 0.9, 0.1, 0.0 } + TrailColor = { 0.9, 0.1, 0.0 }, + Description = [[A collection of space stations (including the ISS and China's + Tiangong), along with certain cubesats and satellite constellations from space + agencies.]] } local tle = shared.downloadTLEFile(asset, group.Url, group.Title) shared.registerSatelliteGroupObjects(asset, group, tle, true) + + +asset.meta = { + Name = "Satellites SpaceStations", + Version = "1.0", + Description = [[ Satellites asset for SpaceStations. Data from Celestrak]], + Author = "OpenSpace Team", + URL = "https://celestrak.com/NORAD/elements/", + License = "Celestrak" +} diff --git a/data/assets/scene/solarsystem/planets/earth/satellites/misc/tle-new.asset b/data/assets/scene/solarsystem/planets/earth/satellites/misc/tle-new.asset index 81ada563fc..8485b11e8b 100644 --- a/data/assets/scene/solarsystem/planets/earth/satellites/misc/tle-new.asset +++ b/data/assets/scene/solarsystem/planets/earth/satellites/misc/tle-new.asset @@ -1,11 +1,21 @@ -local assetHelper = asset.require('util/asset_helper') -local shared = asset.require('util/tle_helper') +local shared = asset.require("util/tle_helper") local group = { Title = "Last 30 Days", Url = "http://www.celestrak.com/NORAD/elements/tle-new.txt", - TrailColor = { 0.65, 0.25, 0.45 } + TrailColor = { 0.65, 0.25, 0.45 }, + Description = [[All the satellites that have been launched in the last 30 days.]] } local tle = shared.downloadTLEFile(asset, group.Url, group.Title) shared.registerSatelliteGroupObjects(asset, group, tle, true) + + +asset.meta = { + Name = "Satellites Last 30 Days", + Version = "1.0", + Description = [[ Satellites asset for Last 30 Days. Data from Celestrak]], + Author = "OpenSpace Team", + URL = "https://celestrak.com/NORAD/elements/", + License = "Celestrak" +} diff --git a/data/assets/scene/solarsystem/planets/earth/satellites/navigation/beidou.asset b/data/assets/scene/solarsystem/planets/earth/satellites/navigation/beidou.asset index d5ccf64db5..c3cc3b1673 100644 --- a/data/assets/scene/solarsystem/planets/earth/satellites/navigation/beidou.asset +++ b/data/assets/scene/solarsystem/planets/earth/satellites/navigation/beidou.asset @@ -1,5 +1,4 @@ -local assetHelper = asset.require('util/asset_helper') -local shared = asset.require('util/tle_helper') +local shared = asset.require("util/tle_helper") local group = { Title = "Beidou", @@ -9,3 +8,13 @@ local group = { local tle = shared.downloadTLEFile(asset, group.Url, group.Title) shared.registerSatelliteGroupObjects(asset, group, tle, true) + + +asset.meta = { + Name = "Satellites Navigation Beidou", + Version = "1.0", + Description = [[ Satellites asset for Navigation Beidou. Data from Celestrak]], + Author = "OpenSpace Team", + URL = "https://celestrak.com/NORAD/elements/", + License = "Celestrak" +} diff --git a/data/assets/scene/solarsystem/planets/earth/satellites/navigation/galileo.asset b/data/assets/scene/solarsystem/planets/earth/satellites/navigation/galileo.asset index bf1d460a7e..abeae83de4 100644 --- a/data/assets/scene/solarsystem/planets/earth/satellites/navigation/galileo.asset +++ b/data/assets/scene/solarsystem/planets/earth/satellites/navigation/galileo.asset @@ -1,5 +1,4 @@ -local assetHelper = asset.require('util/asset_helper') -local shared = asset.require('util/tle_helper') +local shared = asset.require("util/tle_helper") local group = { Title = "Galileo", @@ -9,3 +8,13 @@ local group = { local tle = shared.downloadTLEFile(asset, group.Url, group.Title) shared.registerSatelliteGroupObjects(asset, group, tle, true) + + +asset.meta = { + Name = "Satellites Navigation Galileo", + Version = "1.0", + Description = [[ Satellites asset for Navigation Galileo. Data from Celestrak]], + Author = "OpenSpace Team", + URL = "https://celestrak.com/NORAD/elements/", + License = "Celestrak" +} diff --git a/data/assets/scene/solarsystem/planets/earth/satellites/navigation/glosnass.asset b/data/assets/scene/solarsystem/planets/earth/satellites/navigation/glosnass.asset index 550b895287..9a88c1d826 100644 --- a/data/assets/scene/solarsystem/planets/earth/satellites/navigation/glosnass.asset +++ b/data/assets/scene/solarsystem/planets/earth/satellites/navigation/glosnass.asset @@ -1,5 +1,4 @@ -local assetHelper = asset.require('util/asset_helper') -local shared = asset.require('util/tle_helper') +local shared = asset.require("util/tle_helper") local group = { Title = "Glosnass", @@ -9,3 +8,13 @@ local group = { local tle = shared.downloadTLEFile(asset, group.Url, group.Title) shared.registerSatelliteGroupObjects(asset, group, tle, true) + + +asset.meta = { + Name = "Satellites Navigation Glosnass", + Version = "1.0", + Description = [[ Satellites asset for Navigation Glosnass. Data from Celestrak]], + Author = "OpenSpace Team", + URL = "https://celestrak.com/NORAD/elements/", + License = "Celestrak" +} diff --git a/data/assets/scene/solarsystem/planets/earth/satellites/navigation/gps.asset b/data/assets/scene/solarsystem/planets/earth/satellites/navigation/gps.asset index ba3f603851..8b50de3f46 100644 --- a/data/assets/scene/solarsystem/planets/earth/satellites/navigation/gps.asset +++ b/data/assets/scene/solarsystem/planets/earth/satellites/navigation/gps.asset @@ -1,11 +1,22 @@ -local assetHelper = asset.require('util/asset_helper') -local shared = asset.require('util/tle_helper') +local shared = asset.require("util/tle_helper") local group = { Title = "GPS", Url = "http://celestrak.com/NORAD/elements/gps-ops.txt", - TrailColor = { 0.9, 0.5, 0.0 } + TrailColor = { 0.9, 0.5, 0.0 }, + Description = [[The GPS satellites that give us our precise locations back here + on Earth.]] } local tle = shared.downloadTLEFile(asset, group.Url, group.Title) shared.registerSatelliteGroupObjects(asset, group, tle, true) + + +asset.meta = { + Name = "Satellites Navigation GPS", + Version = "1.0", + Description = [[ Satellites asset for Navigation GPS. Data from Celestrak]], + Author = "OpenSpace Team", + URL = "https://celestrak.com/NORAD/elements/", + License = "Celestrak" +} diff --git a/data/assets/scene/solarsystem/planets/earth/satellites/navigation/musson.asset b/data/assets/scene/solarsystem/planets/earth/satellites/navigation/musson.asset index 50a0792a4e..2fa939803d 100644 --- a/data/assets/scene/solarsystem/planets/earth/satellites/navigation/musson.asset +++ b/data/assets/scene/solarsystem/planets/earth/satellites/navigation/musson.asset @@ -1,5 +1,4 @@ -local assetHelper = asset.require('util/asset_helper') -local shared = asset.require('util/tle_helper') +local shared = asset.require("util/tle_helper") local group = { Title = "Russian LEO Navigation", @@ -9,3 +8,14 @@ local group = { local tle = shared.downloadTLEFile(asset, group.Url, group.Title) shared.registerSatelliteGroupObjects(asset, group, tle, true) + + +asset.meta = { + Name = "Satellites Navigation Russian LEO Navigation", + Version = "1.0", + Description = [[ Satellites asset for Navigation Russian LEO Navigation. + Data from Celestrak]], + Author = "OpenSpace Team", + URL = "https://celestrak.com/NORAD/elements/", + License = "Celestrak" +} diff --git a/data/assets/scene/solarsystem/planets/earth/satellites/navigation/nnss.asset b/data/assets/scene/solarsystem/planets/earth/satellites/navigation/nnss.asset index 0085bbffda..53dca435c2 100644 --- a/data/assets/scene/solarsystem/planets/earth/satellites/navigation/nnss.asset +++ b/data/assets/scene/solarsystem/planets/earth/satellites/navigation/nnss.asset @@ -1,5 +1,4 @@ -local assetHelper = asset.require('util/asset_helper') -local shared = asset.require('util/tle_helper') +local shared = asset.require("util/tle_helper") local group = { Title = "Navy Navigation Satellite System", @@ -9,3 +8,14 @@ local group = { local tle = shared.downloadTLEFile(asset, group.Url, group.Title) shared.registerSatelliteGroupObjects(asset, group, tle, true) + + +asset.meta = { + Name = "Satellites Navigation Navy Navigation Satellite System", + Version = "1.0", + Description = [[ Satellites asset for Navigation Navy Navigation Satellite System. + Data from Celestrak]], + Author = "OpenSpace Team", + URL = "https://celestrak.com/NORAD/elements/", + License = "Celestrak" +} diff --git a/data/assets/scene/solarsystem/planets/earth/satellites/navigation/sbas.asset b/data/assets/scene/solarsystem/planets/earth/satellites/navigation/sbas.asset index a63ef7b565..266fd5de9a 100644 --- a/data/assets/scene/solarsystem/planets/earth/satellites/navigation/sbas.asset +++ b/data/assets/scene/solarsystem/planets/earth/satellites/navigation/sbas.asset @@ -1,5 +1,4 @@ -local assetHelper = asset.require('util/asset_helper') -local shared = asset.require('util/tle_helper') +local shared = asset.require("util/tle_helper") local group = { Title = "Satellite Based Augmentation System", @@ -9,3 +8,14 @@ local group = { local tle = shared.downloadTLEFile(asset, group.Url, group.Title) shared.registerSatelliteGroupObjects(asset, group, tle, true) + + +asset.meta = { + Name = "Satellites Navigation Satellite Based Augmentation System", + Version = "1.0", + Description = [[ Satellites asset for Navigation Satellite Based Augmentation System. + Data from Celestrak]], + Author = "OpenSpace Team", + URL = "https://celestrak.com/NORAD/elements/", + License = "Celestrak" +} diff --git a/data/assets/scene/solarsystem/planets/earth/satellites/satellites.asset b/data/assets/scene/solarsystem/planets/earth/satellites/satellites.asset index 601b4033f4..0e85684c8d 100644 --- a/data/assets/scene/solarsystem/planets/earth/satellites/satellites.asset +++ b/data/assets/scene/solarsystem/planets/earth/satellites/satellites.asset @@ -1 +1,12 @@ -asset.require('./satellites_interesting') +asset.require("./satellites_interesting") + + +asset.meta = { + Name = "Satellites", + Version = "1.0", + Description = [[ Default Earth Satellites. This file is the same as + satellites_interesting.]], + Author = "OpenSpace Team", + URL = "http://openspaceproject.com", + License = "MIT license" +} diff --git a/data/assets/scene/solarsystem/planets/earth/satellites/satellites_all.asset b/data/assets/scene/solarsystem/planets/earth/satellites/satellites_all.asset index ea203b1ca0..ecb92357e0 100644 --- a/data/assets/scene/solarsystem/planets/earth/satellites/satellites_all.asset +++ b/data/assets/scene/solarsystem/planets/earth/satellites/satellites_all.asset @@ -1,11 +1,11 @@ -asset.require('./satellites_communications') +asset.require("./satellites_communications") -- The debris contains a **lot** of nodes, so we disable it on default --- asset.require('./satellites_debris') -asset.require('./satellites_interesting') -asset.require('./satellites_misc') -asset.require('./satellites_navigation') -asset.require('./satellites_science') -asset.require('./satellites_weather') +-- asset.require("./satellites_debris") +asset.require("./satellites_interesting") +asset.require("./satellites_misc") +asset.require("./satellites_navigation") +asset.require("./satellites_science") +asset.require("./satellites_weather") asset.meta = { diff --git a/data/assets/scene/solarsystem/planets/earth/satellites/satellites_communications.asset b/data/assets/scene/solarsystem/planets/earth/satellites/satellites_communications.asset index be723c02ee..b5c6871dc8 100644 --- a/data/assets/scene/solarsystem/planets/earth/satellites/satellites_communications.asset +++ b/data/assets/scene/solarsystem/planets/earth/satellites/satellites_communications.asset @@ -1,16 +1,16 @@ -asset.require('./communications/geostationary') -asset.require('./communications/intelsat') -asset.require('./communications/ses') -asset.require('./communications/iridium') -asset.require('./communications/iridium_next') -asset.require('./communications/orbcomm') -asset.require('./communications/globalstar') -asset.require('./communications/amateur') -asset.require('./communications/experimental') -asset.require('./communications/other_comm') -asset.require('./communications/gorizont') -asset.require('./communications/raduga') -asset.require('./communications/molniya') +asset.require("./communications/geostationary") +asset.require("./communications/intelsat") +asset.require("./communications/ses") +asset.require("./communications/iridium") +asset.require("./communications/iridium_next") +asset.require("./communications/orbcomm") +asset.require("./communications/globalstar") +asset.require("./communications/amateur") +asset.require("./communications/experimental") +asset.require("./communications/other_comm") +asset.require("./communications/gorizont") +asset.require("./communications/raduga") +asset.require("./communications/molniya") asset.meta = { diff --git a/data/assets/scene/solarsystem/planets/earth/satellites/satellites_debris.asset b/data/assets/scene/solarsystem/planets/earth/satellites/satellites_debris.asset index ad84683154..7a0e81da0d 100644 --- a/data/assets/scene/solarsystem/planets/earth/satellites/satellites_debris.asset +++ b/data/assets/scene/solarsystem/planets/earth/satellites/satellites_debris.asset @@ -1,8 +1,8 @@ -asset.require('./debris/debris_asat') -asset.require('./debris/debris_breezem') -asset.require('./debris/debris_fengyun') -asset.require('./debris/debris_iridium33') -asset.require('./debris/debris_kosmos2251') +asset.require("./debris/debris_asat") +asset.require("./debris/debris_breezem") +asset.require("./debris/debris_fengyun") +asset.require("./debris/debris_iridium33") +asset.require("./debris/debris_kosmos2251") asset.meta = { diff --git a/data/assets/scene/solarsystem/planets/earth/satellites/satellites_interesting.asset b/data/assets/scene/solarsystem/planets/earth/satellites/satellites_interesting.asset index afc723d4a8..81d86836e5 100644 --- a/data/assets/scene/solarsystem/planets/earth/satellites/satellites_interesting.asset +++ b/data/assets/scene/solarsystem/planets/earth/satellites/satellites_interesting.asset @@ -1,9 +1,9 @@ -asset.require('./misc/brightest') -asset.require('./communications/geostationary') -asset.require('./navigation/gps') -asset.require('./misc/spacestations') -asset.require('./misc/iss') -asset.require('./misc/tle-new') +asset.require("./misc/brightest") +asset.require("./communications/geostationary") +asset.require("./navigation/gps") +asset.require("./misc/spacestations") +asset.require("./misc/iss") +asset.require("./misc/tle-new") asset.meta = { diff --git a/data/assets/scene/solarsystem/planets/earth/satellites/satellites_misc.asset b/data/assets/scene/solarsystem/planets/earth/satellites/satellites_misc.asset index 7e82acabf8..76fb2afaed 100644 --- a/data/assets/scene/solarsystem/planets/earth/satellites/satellites_misc.asset +++ b/data/assets/scene/solarsystem/planets/earth/satellites/satellites_misc.asset @@ -1,7 +1,7 @@ -asset.require('./misc/military') -asset.require('./misc/radar') -asset.require('./misc/cubesats') -asset.require('./misc/other') +asset.require("./misc/military") +asset.require("./misc/radar") +asset.require("./misc/cubesats") +asset.require("./misc/other") asset.meta = { diff --git a/data/assets/scene/solarsystem/planets/earth/satellites/satellites_navigation.asset b/data/assets/scene/solarsystem/planets/earth/satellites/satellites_navigation.asset index 473013b07b..0539825a0e 100644 --- a/data/assets/scene/solarsystem/planets/earth/satellites/satellites_navigation.asset +++ b/data/assets/scene/solarsystem/planets/earth/satellites/satellites_navigation.asset @@ -1,10 +1,10 @@ -asset.require('./navigation/beidou') -asset.require('./navigation/galileo') -asset.require('./navigation/glosnass') -asset.require('./navigation/gps') -asset.require('./navigation/musson') -asset.require('./navigation/nnss') -asset.require('./navigation/sbas') +asset.require("./navigation/beidou") +asset.require("./navigation/galileo") +asset.require("./navigation/glosnass") +asset.require("./navigation/gps") +asset.require("./navigation/musson") +asset.require("./navigation/nnss") +asset.require("./navigation/sbas") asset.meta = { diff --git a/data/assets/scene/solarsystem/planets/earth/satellites/satellites_science.asset b/data/assets/scene/solarsystem/planets/earth/satellites/satellites_science.asset index d235eda9e1..8e11bd7e66 100644 --- a/data/assets/scene/solarsystem/planets/earth/satellites/satellites_science.asset +++ b/data/assets/scene/solarsystem/planets/earth/satellites/satellites_science.asset @@ -1,7 +1,7 @@ -asset.require('./science/spaceearth') -asset.require('./science/geodetic') -asset.require('./science/engineering') -asset.require('./science/education') +asset.require("./science/spaceearth") +asset.require("./science/geodetic") +asset.require("./science/engineering") +asset.require("./science/education") asset.meta = { diff --git a/data/assets/scene/solarsystem/planets/earth/satellites/satellites_weather.asset b/data/assets/scene/solarsystem/planets/earth/satellites/satellites_weather.asset index 1a8097a0c8..c8aab8059f 100644 --- a/data/assets/scene/solarsystem/planets/earth/satellites/satellites_weather.asset +++ b/data/assets/scene/solarsystem/planets/earth/satellites/satellites_weather.asset @@ -1,13 +1,13 @@ -asset.require('./weather/argos') -asset.require('./weather/dmc') -asset.require('./weather/earth_resources') -asset.require('./weather/goes') -asset.require('./weather/noaa') -asset.require('./weather/planet') -asset.require('./weather/sarsat') -asset.require('./weather/spire') -asset.require('./weather/tdrss') -asset.require('./weather/weather') +asset.require("./weather/argos") +asset.require("./weather/dmc") +asset.require("./weather/earth_resources") +asset.require("./weather/goes") +asset.require("./weather/noaa") +asset.require("./weather/planet") +asset.require("./weather/sarsat") +asset.require("./weather/spire") +asset.require("./weather/tdrss") +asset.require("./weather/weather") asset.meta = { diff --git a/data/assets/scene/solarsystem/planets/earth/satellites/science/education.asset b/data/assets/scene/solarsystem/planets/earth/satellites/science/education.asset index f9aa07460f..f07a6fbcd6 100644 --- a/data/assets/scene/solarsystem/planets/earth/satellites/science/education.asset +++ b/data/assets/scene/solarsystem/planets/earth/satellites/science/education.asset @@ -1,5 +1,4 @@ -local assetHelper = asset.require('util/asset_helper') -local shared = asset.require('util/tle_helper') +local shared = asset.require("util/tle_helper") local group = { Title = "Education", @@ -9,3 +8,13 @@ local group = { local tle = shared.downloadTLEFile(asset, group.Url, group.Title) shared.registerSatelliteGroupObjects(asset, group, tle, true) + + +asset.meta = { + Name = "Satellites Science Education", + Version = "1.0", + Description = [[ Satellites asset for Science Education. Data from Celestrak]], + Author = "OpenSpace Team", + URL = "https://celestrak.com/NORAD/elements/", + License = "Celestrak" +} diff --git a/data/assets/scene/solarsystem/planets/earth/satellites/science/engineering.asset b/data/assets/scene/solarsystem/planets/earth/satellites/science/engineering.asset index a59de0b948..80d6cab0f1 100644 --- a/data/assets/scene/solarsystem/planets/earth/satellites/science/engineering.asset +++ b/data/assets/scene/solarsystem/planets/earth/satellites/science/engineering.asset @@ -1,5 +1,4 @@ -local assetHelper = asset.require('util/asset_helper') -local shared = asset.require('util/tle_helper') +local shared = asset.require("util/tle_helper") local group = { Title = "Engineering", @@ -9,3 +8,13 @@ local group = { local tle = shared.downloadTLEFile(asset, group.Url, group.Title) shared.registerSatelliteGroupObjects(asset, group, tle, true) + + +asset.meta = { + Name = "Satellites Science Engineering", + Version = "1.0", + Description = [[ Satellites asset for Science Engineering. Data from Celestrak]], + Author = "OpenSpace Team", + URL = "https://celestrak.com/NORAD/elements/", + License = "Celestrak" +} diff --git a/data/assets/scene/solarsystem/planets/earth/satellites/science/geodetic.asset b/data/assets/scene/solarsystem/planets/earth/satellites/science/geodetic.asset index 87daed06dc..231604f951 100644 --- a/data/assets/scene/solarsystem/planets/earth/satellites/science/geodetic.asset +++ b/data/assets/scene/solarsystem/planets/earth/satellites/science/geodetic.asset @@ -1,5 +1,4 @@ -local assetHelper = asset.require('util/asset_helper') -local shared = asset.require('util/tle_helper') +local shared = asset.require("util/tle_helper") local group = { Title = "Geodect", @@ -9,3 +8,13 @@ local group = { local tle = shared.downloadTLEFile(asset, group.Url, group.Title) shared.registerSatelliteGroupObjects(asset, group, tle, true) + + +asset.meta = { + Name = "Satellites Science Geodect", + Version = "1.0", + Description = [[ Satellites asset for Science Geodect. Data from Celestrak]], + Author = "OpenSpace Team", + URL = "https://celestrak.com/NORAD/elements/", + License = "Celestrak" +} diff --git a/data/assets/scene/solarsystem/planets/earth/satellites/science/spaceearth.asset b/data/assets/scene/solarsystem/planets/earth/satellites/science/spaceearth.asset index fad2ab9354..2b65c770a1 100644 --- a/data/assets/scene/solarsystem/planets/earth/satellites/science/spaceearth.asset +++ b/data/assets/scene/solarsystem/planets/earth/satellites/science/spaceearth.asset @@ -1,5 +1,4 @@ -local assetHelper = asset.require('util/asset_helper') -local shared = asset.require('util/tle_helper') +local shared = asset.require("util/tle_helper") local group = { Title = "Space & Earth Science", @@ -9,3 +8,14 @@ local group = { local tle = shared.downloadTLEFile(asset, group.Url, group.Title) shared.registerSatelliteGroupObjects(asset, group, tle, true) + + +asset.meta = { + Name = "Satellites Science Space & Earth Science", + Version = "1.0", + Description = [[ Satellites asset for Science Space & Earth Science. Data from + Celestrak]], + Author = "OpenSpace Team", + URL = "https://celestrak.com/NORAD/elements/", + License = "Celestrak" +} diff --git a/data/assets/scene/solarsystem/planets/earth/satellites/weather/aqua.asset b/data/assets/scene/solarsystem/planets/earth/satellites/weather/aqua.asset index 0713514a18..7a994bcd50 100644 --- a/data/assets/scene/solarsystem/planets/earth/satellites/weather/aqua.asset +++ b/data/assets/scene/solarsystem/planets/earth/satellites/weather/aqua.asset @@ -1,7 +1,6 @@ -local assetHelper = asset.require('util/asset_helper') -local satelliteHelper = asset.require('util/tle_helper') -local transforms = asset.require('scene/solarsystem/planets/earth/transforms') -local sunTransforms = asset.require('scene/solarsystem/sun/transforms') +local satelliteHelper = asset.require("util/tle_helper") +local transforms = asset.require("scene/solarsystem/planets/earth/transforms") +local sunTransforms = asset.require("scene/solarsystem/sun/transforms") local url = "http://celestrak.com/satcat/tle.php?CATNR=27424" local identifier = "Aqua" @@ -50,8 +49,8 @@ asset.onInitialize(function () Observer = transforms.EarthInertial.Identifier, File = path, LineNumber = 1, - RenderBinMode = "PostDeferredTransparent" }, + RenderBinMode = "PostDeferredTransparent" Color = { 0.9, 0.6715, 0.0 }, Fade = 1.5, Period = period, @@ -96,7 +95,6 @@ asset.onInitialize(function () for _, node in ipairs(nodes) do openspace.addSceneGraphNode(node) end - end) asset.onDeinitialize(function () @@ -105,6 +103,9 @@ asset.onDeinitialize(function () end end) +for _, node in ipairs(nodes) do + asset.export(node) +end asset.meta = { Name = "Aqua", diff --git a/data/assets/scene/solarsystem/planets/earth/satellites/weather/argos.asset b/data/assets/scene/solarsystem/planets/earth/satellites/weather/argos.asset index 332778d5af..b515339277 100644 --- a/data/assets/scene/solarsystem/planets/earth/satellites/weather/argos.asset +++ b/data/assets/scene/solarsystem/planets/earth/satellites/weather/argos.asset @@ -1,5 +1,4 @@ -local assetHelper = asset.require('util/asset_helper') -local shared = asset.require('util/tle_helper') +local shared = asset.require("util/tle_helper") local group = { Title = "ARGOS", @@ -9,3 +8,14 @@ local group = { local tle = shared.downloadTLEFile(asset, group.Url, group.Title) shared.registerSatelliteGroupObjects(asset, group, tle, true) + + +asset.meta = { + Name = "Satellites Weather - ARGOS", + Version = "1.0", + Description = [[ Satellites asset for Weather - ARGOS. Data from + Celestrak]], + Author = "OpenSpace Team", + URL = "https://celestrak.com/NORAD/elements/", + License = "Celestrak" +} diff --git a/data/assets/scene/solarsystem/planets/earth/satellites/weather/dmc.asset b/data/assets/scene/solarsystem/planets/earth/satellites/weather/dmc.asset index 0eb43d7c33..6d05a89140 100644 --- a/data/assets/scene/solarsystem/planets/earth/satellites/weather/dmc.asset +++ b/data/assets/scene/solarsystem/planets/earth/satellites/weather/dmc.asset @@ -1,5 +1,4 @@ -local assetHelper = asset.require('util/asset_helper') -local shared = asset.require('util/tle_helper') +local shared = asset.require("util/tle_helper") local group = { Title = "Disaster Monitoring", @@ -9,3 +8,14 @@ local group = { local tle = shared.downloadTLEFile(asset, group.Url, group.Title) shared.registerSatelliteGroupObjects(asset, group, tle, true) + + +asset.meta = { + Name = "Satellites Weather - Disaster Monitoring", + Version = "1.0", + Description = [[ Satellites asset for Weather - Disaster Monitoring. Data from + Celestrak]], + Author = "OpenSpace Team", + URL = "https://celestrak.com/NORAD/elements/", + License = "Celestrak" +} diff --git a/data/assets/scene/solarsystem/planets/earth/satellites/weather/earth_resources.asset b/data/assets/scene/solarsystem/planets/earth/satellites/weather/earth_resources.asset index 77e3a76d2c..5e9c7c2f96 100644 --- a/data/assets/scene/solarsystem/planets/earth/satellites/weather/earth_resources.asset +++ b/data/assets/scene/solarsystem/planets/earth/satellites/weather/earth_resources.asset @@ -1,5 +1,4 @@ -local assetHelper = asset.require('util/asset_helper') -local shared = asset.require('util/tle_helper') +local shared = asset.require("util/tle_helper") local group = { Title = "Earth Resources", @@ -9,3 +8,14 @@ local group = { local tle = shared.downloadTLEFile(asset, group.Url, group.Title) shared.registerSatelliteGroupObjects(asset, group, tle, true) + + +asset.meta = { + Name = "Satellites Weather - Earth Resources", + Version = "1.0", + Description = [[ Satellites asset for Weather - Earth Resources. Data from + Celestrak]], + Author = "OpenSpace Team", + URL = "https://celestrak.com/NORAD/elements/", + License = "Celestrak" +} diff --git a/data/assets/scene/solarsystem/planets/earth/satellites/weather/goes.asset b/data/assets/scene/solarsystem/planets/earth/satellites/weather/goes.asset index 789103e5f4..cb464c8999 100644 --- a/data/assets/scene/solarsystem/planets/earth/satellites/weather/goes.asset +++ b/data/assets/scene/solarsystem/planets/earth/satellites/weather/goes.asset @@ -1,5 +1,4 @@ -local assetHelper = asset.require('util/asset_helper') -local shared = asset.require('util/tle_helper') +local shared = asset.require("util/tle_helper") local group = { Title = "GOES", @@ -9,3 +8,14 @@ local group = { local tle = shared.downloadTLEFile(asset, group.Url, group.Title) shared.registerSatelliteGroupObjects(asset, group, tle, true) + + +asset.meta = { + Name = "Satellites Weather - GOES", + Version = "1.0", + Description = [[ Satellites asset for Weather - GOES. Data from + Celestrak]], + Author = "OpenSpace Team", + URL = "https://celestrak.com/NORAD/elements/", + License = "Celestrak" +} diff --git a/data/assets/scene/solarsystem/planets/earth/satellites/weather/noaa.asset b/data/assets/scene/solarsystem/planets/earth/satellites/weather/noaa.asset index 4bac8d1821..be73a4e12d 100644 --- a/data/assets/scene/solarsystem/planets/earth/satellites/weather/noaa.asset +++ b/data/assets/scene/solarsystem/planets/earth/satellites/weather/noaa.asset @@ -1,5 +1,4 @@ -local assetHelper = asset.require('util/asset_helper') -local shared = asset.require('util/tle_helper') +local shared = asset.require("util/tle_helper") local group = { Title = "NOAA", @@ -9,3 +8,14 @@ local group = { local tle = shared.downloadTLEFile(asset, group.Url, group.Title) shared.registerSatelliteGroupObjects(asset, group, tle, true) + + +asset.meta = { + Name = "Satellites Weather - NOAA", + Version = "1.0", + Description = [[ Satellites asset for Weather - NOAA. Data from + Celestrak]], + Author = "OpenSpace Team", + URL = "https://celestrak.com/NORAD/elements/", + License = "Celestrak" +} diff --git a/data/assets/scene/solarsystem/planets/earth/satellites/weather/planet.asset b/data/assets/scene/solarsystem/planets/earth/satellites/weather/planet.asset index 9e7d126a20..d777d6f803 100644 --- a/data/assets/scene/solarsystem/planets/earth/satellites/weather/planet.asset +++ b/data/assets/scene/solarsystem/planets/earth/satellites/weather/planet.asset @@ -1,5 +1,4 @@ -local assetHelper = asset.require('util/asset_helper') -local shared = asset.require('util/tle_helper') +local shared = asset.require("util/tle_helper") local group = { Title = "Planet", @@ -9,3 +8,14 @@ local group = { local tle = shared.downloadTLEFile(asset, group.Url, group.Title) shared.registerSatelliteGroupObjects(asset, group, tle, true) + + +asset.meta = { + Name = "Satellites Weather - Planet", + Version = "1.0", + Description = [[ Satellites asset for Weather - Planet. Data from + Celestrak]], + Author = "OpenSpace Team", + URL = "https://celestrak.com/NORAD/elements/", + License = "Celestrak" +} diff --git a/data/assets/scene/solarsystem/planets/earth/satellites/weather/sarsat.asset b/data/assets/scene/solarsystem/planets/earth/satellites/weather/sarsat.asset index 56ba2e8f69..b9063795aa 100644 --- a/data/assets/scene/solarsystem/planets/earth/satellites/weather/sarsat.asset +++ b/data/assets/scene/solarsystem/planets/earth/satellites/weather/sarsat.asset @@ -1,5 +1,4 @@ -local assetHelper = asset.require('util/asset_helper') -local shared = asset.require('util/tle_helper') +local shared = asset.require("util/tle_helper") local group = { Title = "Search & Rescue (SARSAT)", @@ -9,3 +8,14 @@ local group = { local tle = shared.downloadTLEFile(asset, group.Url, group.Title) shared.registerSatelliteGroupObjects(asset, group, tle, true) + + +asset.meta = { + Name = "Satellites Weather - Search & Rescue (SARSAT)", + Version = "1.0", + Description = [[ Satellites asset for Weather - Search & Rescue (SARSAT). Data from + Celestrak]], + Author = "OpenSpace Team", + URL = "https://celestrak.com/NORAD/elements/", + License = "Celestrak" +} diff --git a/data/assets/scene/solarsystem/planets/earth/satellites/weather/snpp.asset b/data/assets/scene/solarsystem/planets/earth/satellites/weather/snpp.asset index 56a3146324..96c41cf1f6 100644 --- a/data/assets/scene/solarsystem/planets/earth/satellites/weather/snpp.asset +++ b/data/assets/scene/solarsystem/planets/earth/satellites/weather/snpp.asset @@ -1,7 +1,6 @@ -local assetHelper = asset.require('util/asset_helper') -local satelliteHelper = asset.require('util/tle_helper') -local transforms = asset.require('scene/solarsystem/planets/earth/transforms') -local sunTransforms = asset.require('scene/solarsystem/sun/transforms') +local satelliteHelper = asset.require("util/tle_helper") +local transforms = asset.require("scene/solarsystem/planets/earth/transforms") +local sunTransforms = asset.require("scene/solarsystem/sun/transforms") local url = "http://celestrak.com/satcat/tle.php?CATNR=37849" local identifier = "SNPP" diff --git a/data/assets/scene/solarsystem/planets/earth/satellites/weather/spire.asset b/data/assets/scene/solarsystem/planets/earth/satellites/weather/spire.asset index a237421533..95ba2c97ac 100644 --- a/data/assets/scene/solarsystem/planets/earth/satellites/weather/spire.asset +++ b/data/assets/scene/solarsystem/planets/earth/satellites/weather/spire.asset @@ -1,5 +1,4 @@ -local assetHelper = asset.require('util/asset_helper') -local shared = asset.require('util/tle_helper') +local shared = asset.require("util/tle_helper") local group = { Title = "Spire", @@ -9,3 +8,14 @@ local group = { local tle = shared.downloadTLEFile(asset, group.Url, group.Title) shared.registerSatelliteGroupObjects(asset, group, tle, true) + + +asset.meta = { + Name = "Satellites Weather - Spire", + Version = "1.0", + Description = [[ Satellites asset for Weather - Search & Rescue (SARSAT). Data from + Celestrak]], + Author = "OpenSpace Team", + URL = "https://celestrak.com/NORAD/elements/", + License = "Celestrak" +} diff --git a/data/assets/scene/solarsystem/planets/earth/satellites/weather/tdrss.asset b/data/assets/scene/solarsystem/planets/earth/satellites/weather/tdrss.asset index ec271ecb19..a126d89160 100644 --- a/data/assets/scene/solarsystem/planets/earth/satellites/weather/tdrss.asset +++ b/data/assets/scene/solarsystem/planets/earth/satellites/weather/tdrss.asset @@ -1,5 +1,4 @@ -local assetHelper = asset.require('util/asset_helper') -local shared = asset.require('util/tle_helper') +local shared = asset.require("util/tle_helper") local group = { Title = "Tracking and Data Relay Satellite System (TDRSS)", @@ -9,3 +8,14 @@ local group = { local tle = shared.downloadTLEFile(asset, group.Url, group.Title) shared.registerSatelliteGroupObjects(asset, group, tle, true) + + +asset.meta = { + Name = "Satellites Weather - Tracking and Data Relay Satellite System (TDRSS)", + Version = "1.0", + Description = [[ Satellites asset for Weather - Tracking and Data Relay Satellite + System (TDRSS). Data from Celestrak]], + Author = "OpenSpace Team", + URL = "https://celestrak.com/NORAD/elements/", + License = "Celestrak" +} diff --git a/data/assets/scene/solarsystem/planets/earth/satellites/weather/terra.asset b/data/assets/scene/solarsystem/planets/earth/satellites/weather/terra.asset index 49c0fc93d1..b2c20027fe 100644 --- a/data/assets/scene/solarsystem/planets/earth/satellites/weather/terra.asset +++ b/data/assets/scene/solarsystem/planets/earth/satellites/weather/terra.asset @@ -1,7 +1,6 @@ -local assetHelper = asset.require('util/asset_helper') -local satelliteHelper = asset.require('util/tle_helper') -local transforms = asset.require('scene/solarsystem/planets/earth/transforms') -local sunTransforms = asset.require('scene/solarsystem/sun/transforms') +local satelliteHelper = asset.require("util/tle_helper") +local transforms = asset.require("scene/solarsystem/planets/earth/transforms") +local sunTransforms = asset.require("scene/solarsystem/sun/transforms") local url = "http://celestrak.com/satcat/tle.php?CATNR=25994" local identifier = "Terra" @@ -52,8 +51,8 @@ asset.onInitialize(function () Observer = transforms.EarthInertial.Identifier, File = path, LineNumber = 1, - RenderBinMode = "PostDeferredTransparent" }, + RenderBinMode = "PostDeferredTransparent" Color = { 0.9, 0.6715, 0.0 }, Fade = 1.5, Period = period, diff --git a/data/assets/scene/solarsystem/planets/earth/satellites/weather/weather.asset b/data/assets/scene/solarsystem/planets/earth/satellites/weather/weather.asset index e1448013e5..7c4f1aa854 100644 --- a/data/assets/scene/solarsystem/planets/earth/satellites/weather/weather.asset +++ b/data/assets/scene/solarsystem/planets/earth/satellites/weather/weather.asset @@ -1,5 +1,4 @@ -local assetHelper = asset.require('util/asset_helper') -local shared = asset.require('util/tle_helper') +local shared = asset.require("util/tle_helper") local group = { Title = "Weather", @@ -9,3 +8,13 @@ local group = { local tle = shared.downloadTLEFile(asset, group.Url, group.Title) shared.registerSatelliteGroupObjects(asset, group, tle, true) + + +asset.meta = { + Name = "Satellites Weather - Weather", + Version = "1.0", + Description = [[ Satellites asset for Weather - Weather. Data from Celestrak]], + Author = "OpenSpace Team", + URL = "https://celestrak.com/NORAD/elements/", + License = "Celestrak" +} diff --git a/data/assets/scene/solarsystem/planets/earth/trail.asset b/data/assets/scene/solarsystem/planets/earth/trail.asset index 2f91712bde..77cdd90ab6 100644 --- a/data/assets/scene/solarsystem/planets/earth/trail.asset +++ b/data/assets/scene/solarsystem/planets/earth/trail.asset @@ -1,5 +1,4 @@ -local assetHelper = asset.require('util/asset_helper') -local transforms = asset.require('scene/solarsystem/sun/transforms') +local transforms = asset.require("scene/solarsystem/sun/transforms") asset.require("spice/base") @@ -25,16 +24,24 @@ local EarthTrail = { } } -assetHelper.registerSceneGraphNodesAndExport(asset, { EarthTrail }) +asset.onInitialize(function() + openspace.addSceneGraphNode(EarthTrail) +end) + +asset.onDeinitialize(function() + openspace.removeSceneGraphNode(EarthTrail) +end) + +asset.export(EarthTrail) + asset.meta = { Name = "Earth Trail", - Version = "1.0", + Version = "1.1", Description = [[ Trail of Earth as observed by the Sun. Data from NASA Spice (see base spice asset)]], Author = "OpenSpace Team", URL = "http://openspaceproject.com", - License = "MIT license", - Identifiers = {"EarthTrail"} + License = "MIT license" } diff --git a/data/assets/scene/solarsystem/planets/earth/transforms.asset b/data/assets/scene/solarsystem/planets/earth/transforms.asset index d08a74058f..d1b196778a 100644 --- a/data/assets/scene/solarsystem/planets/earth/transforms.asset +++ b/data/assets/scene/solarsystem/planets/earth/transforms.asset @@ -1,5 +1,4 @@ -local assetHelper = asset.require('util/asset_helper') -local transforms = asset.require('scene/solarsystem/sun/transforms') +local transforms = asset.require("scene/solarsystem/sun/transforms") asset.require("spice/base") @@ -73,21 +72,33 @@ local EarthIAU = { } } -assetHelper.registerSceneGraphNodesAndExport(asset, { - EarthBarycenter, - EarthCenter, - EarthInertial, - EarthIAU -}) +asset.onInitialize(function() + openspace.addSceneGraphNode(EarthBarycenter) + openspace.addSceneGraphNode(EarthCenter) + openspace.addSceneGraphNode(EarthInertial) + openspace.addSceneGraphNode(EarthIAU) +end) + +asset.onDeinitialize(function() + openspace.removeSceneGraphNode(EarthIAU) + openspace.removeSceneGraphNode(EarthInertial) + openspace.removeSceneGraphNode(EarthCenter) + openspace.removeSceneGraphNode(EarthBarycenter) +end) + +asset.export(EarthBarycenter) +asset.export(EarthCenter) +asset.export(EarthInertial) +asset.export(EarthIAU) + asset.meta = { Name = "Earth Transforms", - Version = "1.0", + Version = "1.1", Description = [[ Earth transforms: Earth Barycenter, Earth Center, Earth Inertial, Earth IAU. A scene graph node is created for each transform.]], Author = "OpenSpace Team", URL = "http://openspaceproject.com", - License = "MIT license", - Identifiers = {"EarthBarycenter", "EarthCenter", "EarthInertial", "EarthIAU"} + License = "MIT license" } diff --git a/data/assets/scene/solarsystem/planets/jupiter/callisto/callisto.asset b/data/assets/scene/solarsystem/planets/jupiter/callisto/callisto.asset index c4503abea0..81562a5b0b 100644 --- a/data/assets/scene/solarsystem/planets/jupiter/callisto/callisto.asset +++ b/data/assets/scene/solarsystem/planets/jupiter/callisto/callisto.asset @@ -1,9 +1,14 @@ -local transforms = asset.require('../transforms') -local assetHelper = asset.require('util/asset_helper') +local transforms = asset.require("../transforms") asset.require("spice/base") -asset.require('./trail') -local kernel = asset.require('../kernels').jup310 -local labelsPath = asset.require('../jupiter_globelabels').LabelsPath +asset.require("./trail") +local kernel = asset.require("../kernels").jup310 + +local labelsPath = asset.syncedResource({ + Name = "Jupiter Labels", + Type = "HttpSynchronization", + Identifier = "jupiter_labels", + Version = 1 +}) local Callisto = { Identifier = "Callisto", @@ -29,7 +34,7 @@ local Callisto = { Layers = {}, Labels = { Enabled = false, - FileName = labelsPath .. "/callisto.labels", + FileName = labelsPath .. "callisto.labels", AlignmentOption = "Horizontally", -- or Circularly FontSize = 20.0, Size = 11.5, @@ -47,15 +52,23 @@ local Callisto = { } } -assetHelper.registerSceneGraphNodesAndExport(asset, { Callisto }) +asset.onInitialize(function() + openspace.addSceneGraphNode(Callisto) +end) + +asset.onDeinitialize(function() + openspace.removeSceneGraphNode(Callisto) +end) + +asset.export(Callisto) + asset.meta = { Name = "Callisto", - Version = "1.0", + Version = "1.1", Description = [[ Callisto globe with labels.]], Author = "OpenSpace Team", URL = "http://openspaceproject.com", - License = "MIT license", - Identifiers = {"Callisto"} + License = "MIT license" } diff --git a/data/assets/scene/solarsystem/planets/jupiter/callisto/callisto_textures.asset b/data/assets/scene/solarsystem/planets/jupiter/callisto/callisto_textures.asset deleted file mode 100644 index c6cc74bb68..0000000000 --- a/data/assets/scene/solarsystem/planets/jupiter/callisto/callisto_textures.asset +++ /dev/null @@ -1,7 +0,0 @@ -local TexturesPath = asset.syncedResource({ - Name = "Callisto Textures", - Type = "HttpSynchronization", - Identifier = "callisto_textures", - Version = 2 -}) -asset.export("TexturesPath", TexturesPath) diff --git a/data/assets/scene/solarsystem/planets/jupiter/callisto/default_layers.asset b/data/assets/scene/solarsystem/planets/jupiter/callisto/default_layers.asset index 2aa008311f..e76b4e01b9 100644 --- a/data/assets/scene/solarsystem/planets/jupiter/callisto/default_layers.asset +++ b/data/assets/scene/solarsystem/planets/jupiter/callisto/default_layers.asset @@ -1,6 +1,4 @@ -local colorLayersPath = "./layers/colorlayers" - -local colorLayer = asset.require(colorLayersPath .. "/callisto_texture") +local colorLayer = asset.require("./layers/colorlayers/callisto_texture") -- Set enabled layers (temporary solution) -- @TODO: do this using a boolean that's passed to the 'asset.require' instead diff --git a/data/assets/scene/solarsystem/planets/jupiter/callisto/layers/colorlayers/callisto_texture.asset b/data/assets/scene/solarsystem/planets/jupiter/callisto/layers/colorlayers/callisto_texture.asset index 21653cde87..50131f0702 100644 --- a/data/assets/scene/solarsystem/planets/jupiter/callisto/layers/colorlayers/callisto_texture.asset +++ b/data/assets/scene/solarsystem/planets/jupiter/callisto/layers/colorlayers/callisto_texture.asset @@ -1,18 +1,29 @@ -local texturesPath = asset.require("./../../callisto_textures").TexturesPath -local globeIdentifier = asset.require("./../../callisto").Callisto.Identifier +local globeIdentifier = asset.require("../../callisto").Callisto.Identifier + +local texturesPath = asset.syncedResource({ + Name = "Callisto Textures", + Type = "HttpSynchronization", + Identifier = "callisto_textures", + Version = 2 +}) local layer = { Identifier = "Texture", - FilePath = texturesPath .. "/callisto_os.tif", + FilePath = texturesPath .. "callisto_os.tif", } -asset.onInitialize(function () +asset.onInitialize(function() openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer) end) +asset.onDeinitialize(function() + openspace.globebrowsing.deleteLayer(globeIdentifier, "ColorLayers", layer) +end) + asset.export("layer", layer) + asset.meta = { Name = "Callisto Texutre", Version = "2.0", diff --git a/data/assets/scene/solarsystem/planets/jupiter/callisto/trail.asset b/data/assets/scene/solarsystem/planets/jupiter/callisto/trail.asset index 898bb93374..d3eeed8f8f 100644 --- a/data/assets/scene/solarsystem/planets/jupiter/callisto/trail.asset +++ b/data/assets/scene/solarsystem/planets/jupiter/callisto/trail.asset @@ -1,7 +1,6 @@ -local transforms = asset.require('../transforms') -local assetHelper = asset.require('util/asset_helper') +local transforms = asset.require("../transforms") asset.require("spice/base") -local kernel = asset.require('../kernels').jup310 +local kernel = asset.require("../kernels").jup310 @@ -27,16 +26,24 @@ local CallistoTrail = { } } -assetHelper.registerSceneGraphNodesAndExport(asset, { CallistoTrail }) +asset.onInitialize(function() + openspace.addSceneGraphNode(CallistoTrail) +end) + +asset.onDeinitialize(function() + openspace.removeSceneGraphNode(CallistoTrail) +end) + +asset.export(CallistoTrail) + asset.meta = { Name = "Callisto Trail", - Version = "1.0", + Version = "1.1", Description = [[ Trail of Callisto as observed by the Jupiter. Data from NASA Spice (see base spice asset)]], Author = "OpenSpace Team", URL = "http://openspaceproject.com", - License = "MIT license", - Identifiers = {"CallistoTrail"} + License = "MIT license" } diff --git a/data/assets/scene/solarsystem/planets/jupiter/europa/europa.asset b/data/assets/scene/solarsystem/planets/jupiter/europa/europa.asset index 1ecfb93b34..2b088a87dd 100644 --- a/data/assets/scene/solarsystem/planets/jupiter/europa/europa.asset +++ b/data/assets/scene/solarsystem/planets/jupiter/europa/europa.asset @@ -1,9 +1,14 @@ -local transforms = asset.require('../transforms') -local assetHelper = asset.require('util/asset_helper') +local transforms = asset.require("../transforms") asset.require("spice/base") -asset.require('./trail') -local kernel = asset.require('../kernels').jup310 -local labelsPath = asset.require('../jupiter_globelabels').LabelsPath +asset.require("./trail") +local kernel = asset.require("../kernels").jup310 + +local labelsPath = asset.syncedResource({ + Name = "Jupiter Labels", + Type = "HttpSynchronization", + Identifier = "jupiter_labels", + Version = 1 +}) local Europa = { Identifier = "Europa", @@ -29,7 +34,7 @@ local Europa = { Layers = {}, Labels = { Enabled = false, - FileName = labelsPath .. "/europa.labels", + FileName = labelsPath .. "europa.labels", AlignmentOption = "Horizontally", -- or Circularly FontSize = 20.0, Size = 11.0, @@ -46,15 +51,24 @@ local Europa = { } } -assetHelper.registerSceneGraphNodesAndExport(asset, { Europa }) +asset.onInitialize(function() + openspace.addSceneGraphNode(Europa) +end) + +asset.onDeinitialize(function() + openspace.removeSceneGraphNode(Europa) +end) + +asset.export(Europa) + + asset.meta = { Name = "Mimas", - Version = "1.0", + Version = "1.1", Description = [[ Europa globe with labels.]], Author = "OpenSpace Team", URL = "http://openspaceproject.com", - License = "MIT license", - Identifiers = {"Europa"} + License = "MIT license" } diff --git a/data/assets/scene/solarsystem/planets/jupiter/europa/europa_textures.asset b/data/assets/scene/solarsystem/planets/jupiter/europa/europa_textures.asset deleted file mode 100644 index 259bec7da5..0000000000 --- a/data/assets/scene/solarsystem/planets/jupiter/europa/europa_textures.asset +++ /dev/null @@ -1,7 +0,0 @@ -local TexturesPath = asset.syncedResource({ - Name = "Europa Textures", - Type = "HttpSynchronization", - Identifier = "europa_textures", - Version = 2 -}) -asset.export("TexturesPath", TexturesPath) diff --git a/data/assets/scene/solarsystem/planets/jupiter/europa/layers/colorlayers/europa_texture.asset b/data/assets/scene/solarsystem/planets/jupiter/europa/layers/colorlayers/europa_texture.asset index 1e690211b2..db62e1c902 100644 --- a/data/assets/scene/solarsystem/planets/jupiter/europa/layers/colorlayers/europa_texture.asset +++ b/data/assets/scene/solarsystem/planets/jupiter/europa/layers/colorlayers/europa_texture.asset @@ -1,19 +1,30 @@ -local texturesPath = asset.require("./../../europa_textures").TexturesPath -local globeIdentifier = asset.require("./../../europa").Europa.Identifier +local globeIdentifier = asset.require("../../europa").Europa.Identifier + +local texturesPath = asset.syncedResource({ + Name = "Europa Textures", + Type = "HttpSynchronization", + Identifier = "europa_textures", + Version = 2 +}) local layer = { Identifier = "Texture", - FilePath = texturesPath .. "/europa_os.tif", + FilePath = texturesPath .. "europa_os.tif", Enabled = true } -asset.onInitialize(function () +asset.onInitialize(function() openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer) end) +asset.onDeinitialize(function() + openspace.globebrowsing.deleteLayer(globeIdentifier, "ColorLayers", layer) +end) + asset.export("layer", layer) + asset.meta = { Name = "Europa Texutre", Version = "2.0", diff --git a/data/assets/scene/solarsystem/planets/jupiter/europa/layers/colorlayers/voyager_global_mosaic_local.asset b/data/assets/scene/solarsystem/planets/jupiter/europa/layers/colorlayers/voyager_global_mosaic_local.asset index 36e08d3c16..68a387e6be 100644 --- a/data/assets/scene/solarsystem/planets/jupiter/europa/layers/colorlayers/voyager_global_mosaic_local.asset +++ b/data/assets/scene/solarsystem/planets/jupiter/europa/layers/colorlayers/voyager_global_mosaic_local.asset @@ -1,23 +1,34 @@ -local texturesPath = asset.require("./../../europa_textures").TexturesPath -local globeIdentifier = asset.require("./../../europa").Europa.Identifier +local globeIdentifier = asset.require("../../europa").Europa.Identifier + +local texturesPath = asset.syncedResource({ + Name = "Europa Textures", + Type = "HttpSynchronization", + Identifier = "europa_textures", + Version = 2 +}) local layer = { Identifier = "Voyager_Global_Mosaic_Local", Name = "Voyager Global Mosaic [Local]", - FilePath = texturesPath .. "/evgos.vrt", + FilePath = texturesPath .. "evgos.vrt", BlendMode = "Color" } -asset.onInitialize(function () +asset.onInitialize(function() openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer) end) +asset.onDeinitialize(function() + openspace.globebrowsing.deleteLayer(globeIdentifier, "ColorLayers", layer) +end) + asset.export("layer", layer) + asset.meta = { Name = "Voyager Global Mosaic", - Version = "1.0", + Version = "1.1", Description = [[ Europa Voyager - Galileo SSI Global Mosaic 500m v2. This global map base of Europa utilizes the best image quality and moderate resolution coverage supplied by the Galileo SSI (Solid-State Imaging) instrument and Voyager 1 and 2. @@ -30,7 +41,6 @@ asset.meta = { Author = "USGS", URL = "https://astrogeology.usgs.gov/search/map/Europa/Voyager-Galileo/" .. "Europa_Voyager_GalileoSSI_global_mosaic_500m", - License = "NASA/PDS", - Identifiers = {"Voyager_Global_Mosaic_Local"} + License = "NASA/PDS" } diff --git a/data/assets/scene/solarsystem/planets/jupiter/europa/layers/colorlayers/voyager_global_mosaic.asset b/data/assets/scene/solarsystem/planets/jupiter/europa/layers/colorlayers/voyager_global_mosaic_sweden.asset similarity index 75% rename from data/assets/scene/solarsystem/planets/jupiter/europa/layers/colorlayers/voyager_global_mosaic.asset rename to data/assets/scene/solarsystem/planets/jupiter/europa/layers/colorlayers/voyager_global_mosaic_sweden.asset index 2fc9a355b5..b6b0a5ff5e 100644 --- a/data/assets/scene/solarsystem/planets/jupiter/europa/layers/colorlayers/voyager_global_mosaic.asset +++ b/data/assets/scene/solarsystem/planets/jupiter/europa/layers/colorlayers/voyager_global_mosaic_sweden.asset @@ -1,23 +1,27 @@ -local map_service_configs = asset.localResource("./../../map_service_configs") -local globeIdentifier = asset.require("./../../europa").Europa.Identifier +local globeIdentifier = asset.require("../../europa").Europa.Identifier local layer = { Identifier = "Voyager_Global_Mosaic", Name = "Voyager Global Mosaic [Sweden]", - FilePath = map_service_configs .. "/LiU/Voyager_GalileoSSI_global_mosaic_500m.wms", + FilePath = asset.localResource("voyager_global_mosaic_sweden.wms"), BlendMode = "Color", } -asset.onInitialize(function () +asset.onInitialize(function() openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer) end) +asset.onDeinitialize(function() + openspace.globebrowsing.deleteLayer(globeIdentifier, "ColorLayers", layer) +end) + asset.export("layer", layer) + asset.meta = { Name = "Voyager Global Mosaic", - Version = "1.0", + Version = "1.1", Description = [[ Europa Voyager - Galileo SSI Global Mosaic 500m v2. This global map base of Europa utilizes the best image quality and moderate resolution coverage supplied by the Galileo SSI (Solid-State Imaging) instrument and Voyager 1 and 2. @@ -30,6 +34,5 @@ asset.meta = { Author = "USGS", URL = "https://astrogeology.usgs.gov/search/map/Europa/Voyager-Galileo/" .. "Europa_Voyager_GalileoSSI_global_mosaic_500m", - License = "NASA/PDS", - Identifiers = {"Voyager_Global_Mosaic"} + License = "NASA/PDS" } diff --git a/data/assets/scene/solarsystem/planets/jupiter/europa/map_service_configs/LiU/Voyager_GalileoSSI_global_mosaic_500m.wms b/data/assets/scene/solarsystem/planets/jupiter/europa/layers/colorlayers/voyager_global_mosaic_sweden.wms similarity index 100% rename from data/assets/scene/solarsystem/planets/jupiter/europa/map_service_configs/LiU/Voyager_GalileoSSI_global_mosaic_500m.wms rename to data/assets/scene/solarsystem/planets/jupiter/europa/layers/colorlayers/voyager_global_mosaic_sweden.wms diff --git a/data/assets/scene/solarsystem/planets/jupiter/europa/trail.asset b/data/assets/scene/solarsystem/planets/jupiter/europa/trail.asset index 3ceac18c53..eb826b9e0e 100644 --- a/data/assets/scene/solarsystem/planets/jupiter/europa/trail.asset +++ b/data/assets/scene/solarsystem/planets/jupiter/europa/trail.asset @@ -1,9 +1,6 @@ -local transforms = asset.require('../transforms') -local assetHelper = asset.require('util/asset_helper') +local transforms = asset.require("../transforms") asset.require("spice/base") -local kernel = asset.require('../kernels').jup310 - - +local kernel = asset.require("../kernels").jup310 local EuropaTrail = { Identifier = "EuropaTrail", @@ -27,16 +24,24 @@ local EuropaTrail = { } } -assetHelper.registerSceneGraphNodesAndExport(asset, { EuropaTrail }) +asset.onInitialize(function() + openspace.addSceneGraphNode(EuropaTrail) +end) + +asset.onDeinitialize(function() + openspace.removeSceneGraphNode(EuropaTrail) +end) + +asset.export(EuropaTrail) + asset.meta = { Name = "Europa Trail", - Version = "1.0", + Version = "1.1", Description = [[ Trail of Europa as observed by the Jupiter. Data from NASA Spice (see base spice asset)]], Author = "OpenSpace Team", URL = "http://openspaceproject.com", - License = "MIT license", - Identifiers = {"EuropaTrail"} + License = "MIT license" } diff --git a/data/assets/scene/solarsystem/planets/jupiter/ganymede/ganymede.asset b/data/assets/scene/solarsystem/planets/jupiter/ganymede/ganymede.asset index ccda9c129a..71c66c02d5 100644 --- a/data/assets/scene/solarsystem/planets/jupiter/ganymede/ganymede.asset +++ b/data/assets/scene/solarsystem/planets/jupiter/ganymede/ganymede.asset @@ -1,9 +1,14 @@ -local transforms = asset.require('../transforms') -local assetHelper = asset.require('util/asset_helper') +local transforms = asset.require("../transforms") asset.require("spice/base") -asset.require('./trail') -local kernel = asset.require('../kernels').jup310 -local labelsPath = asset.require('../jupiter_globelabels').LabelsPath +asset.require("./trail") +local kernel = asset.require("../kernels").jup310 + +local labelsPath = asset.syncedResource({ + Name = "Jupiter Labels", + Type = "HttpSynchronization", + Identifier = "jupiter_labels", + Version = 1 +}) local Ganymede = { Identifier = "Ganymede", @@ -29,7 +34,7 @@ local Ganymede = { Layers = {}, Labels = { Enabled = false, - FileName = labelsPath .. "/ganymede.labels", + FileName = labelsPath .. "ganymede.labels", AlignmentOption = "Horizontally", -- or Circularly FontSize = 20.0, Size = 11.5, @@ -46,15 +51,23 @@ local Ganymede = { } } -assetHelper.registerSceneGraphNodesAndExport(asset, { Ganymede }) +asset.onInitialize(function() + openspace.addSceneGraphNode(Ganymede) +end) + +asset.onDeinitialize(function() + openspace.removeSceneGraphNode(Ganymede) +end) + +asset.export(Ganymede) + asset.meta = { Name = "Ganymede", - Version = "1.0", + Version = "1.1", Description = [[ Ganymede globe with labels.]], Author = "OpenSpace Team", URL = "http://openspaceproject.com", - License = "MIT license", - Identifiers = {"Ganymede"} + License = "MIT license" } diff --git a/data/assets/scene/solarsystem/planets/jupiter/ganymede/ganymede_textures.asset b/data/assets/scene/solarsystem/planets/jupiter/ganymede/ganymede_textures.asset deleted file mode 100644 index e27f858103..0000000000 --- a/data/assets/scene/solarsystem/planets/jupiter/ganymede/ganymede_textures.asset +++ /dev/null @@ -1,7 +0,0 @@ -local TexturesPath = asset.syncedResource({ - Name = "Ganymede Textures", - Type = "HttpSynchronization", - Identifier = "ganymede_textures", - Version = 1 -}) -asset.export("TexturesPath", TexturesPath) diff --git a/data/assets/scene/solarsystem/planets/jupiter/ganymede/layers/colorlayers/ganymede_texture.asset b/data/assets/scene/solarsystem/planets/jupiter/ganymede/layers/colorlayers/ganymede_texture.asset index 6cddc4d319..63ccdc310f 100644 --- a/data/assets/scene/solarsystem/planets/jupiter/ganymede/layers/colorlayers/ganymede_texture.asset +++ b/data/assets/scene/solarsystem/planets/jupiter/ganymede/layers/colorlayers/ganymede_texture.asset @@ -1,18 +1,29 @@ -local texturesPath = asset.require("./../../ganymede_textures").TexturesPath -local globeIdentifier = asset.require("./../../ganymede").Ganymede.Identifier +local globeIdentifier = asset.require("../../ganymede").Ganymede.Identifier + +local texturesPath = asset.syncedResource({ + Name = "Ganymede Textures", + Type = "HttpSynchronization", + Identifier = "ganymede_textures", + Version = 1 +}) local layer = { Identifier = "Texture", - FilePath = texturesPath .. "/ganymede.jpg", + FilePath = texturesPath .. "ganymede.jpg", } -asset.onInitialize(function () +asset.onInitialize(function() openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer) end) +asset.onDeinitialize(function() + openspace.globebrowsing.deleteLayer(globeIdentifier, "ColorLayers", layer) +end) + asset.export("layer", layer) + asset.meta = { Name = "Ganymede Texutre", Version = "1.0", diff --git a/data/assets/scene/solarsystem/planets/jupiter/ganymede/trail.asset b/data/assets/scene/solarsystem/planets/jupiter/ganymede/trail.asset index c8b3a37e20..e69492321c 100644 --- a/data/assets/scene/solarsystem/planets/jupiter/ganymede/trail.asset +++ b/data/assets/scene/solarsystem/planets/jupiter/ganymede/trail.asset @@ -1,7 +1,6 @@ -local transforms = asset.require('../transforms') -local assetHelper = asset.require('util/asset_helper') +local transforms = asset.require("../transforms") asset.require("spice/base") -local kernel = asset.require('../kernels').jup310 +local kernel = asset.require("../kernels").jup310 @@ -27,16 +26,24 @@ local GanymedeTrail = { } } -assetHelper.registerSceneGraphNodesAndExport(asset, { GanymedeTrail }) +asset.onInitialize(function() + openspace.addSceneGraphNode(GanymedeTrail) +end) + +asset.onDeinitialize(function() + openspace.removeSceneGraphNode(GanymedeTrail) +end) + +asset.export(GanymedeTrail) + asset.meta = { Name = "Ganymede Trail", - Version = "1.0", + Version = "1.1", Description = [[ Trail of Ganymede as observed by the Jupiter. Data from NASA Spice (see base spice asset)]], Author = "OpenSpace Team", URL = "http://openspaceproject.com", - License = "MIT license", - Identifiers = {"GanymedeTrail"} + License = "MIT license" } diff --git a/data/assets/scene/solarsystem/planets/jupiter/io/io.asset b/data/assets/scene/solarsystem/planets/jupiter/io/io.asset index 641cf411f6..da913c5213 100644 --- a/data/assets/scene/solarsystem/planets/jupiter/io/io.asset +++ b/data/assets/scene/solarsystem/planets/jupiter/io/io.asset @@ -1,9 +1,14 @@ -local transforms = asset.require('../transforms') -local assetHelper = asset.require('util/asset_helper') +local transforms = asset.require("../transforms") asset.require("spice/base") -asset.require('./trail') -local kernel = asset.require('../kernels').jup310 -local labelsPath = asset.require('../jupiter_globelabels').LabelsPath +asset.require("./trail") +local kernel = asset.require("../kernels").jup310 + +local labelsPath = asset.syncedResource({ + Name = "Jupiter Labels", + Type = "HttpSynchronization", + Identifier = "jupiter_labels", + Version = 1 +}) local Io = { Identifier = "Io", @@ -29,7 +34,7 @@ local Io = { Layers = {}, Labels = { Enabled = false, - FileName = labelsPath .. "/io.labels", + FileName = labelsPath .. "io.labels", AlignmentOption = "Horizontally", -- or Circularly FontSize = 20.0, Size = 11.0, @@ -46,15 +51,23 @@ local Io = { } } -assetHelper.registerSceneGraphNodesAndExport(asset, { Io }) +asset.onInitialize(function() + openspace.addSceneGraphNode(Io) +end) + +asset.onDeinitialize(function() + openspace.removeSceneGraphNode(Io) +end) + +asset.export(Io) + asset.meta = { Name = "Io", - Version = "1.0", + Version = "1.1", Description = [[ Io globe with labels.]], Author = "OpenSpace Team", URL = "http://openspaceproject.com", - License = "MIT license", - Identifiers = {"Io"} + License = "MIT license" } diff --git a/data/assets/scene/solarsystem/planets/jupiter/io/io_textures.asset b/data/assets/scene/solarsystem/planets/jupiter/io/io_textures.asset deleted file mode 100644 index 36b55fdc1e..0000000000 --- a/data/assets/scene/solarsystem/planets/jupiter/io/io_textures.asset +++ /dev/null @@ -1,7 +0,0 @@ -local TexturesPath = asset.syncedResource({ - Name = "Io Textures", - Type = "HttpSynchronization", - Identifier = "io_textures", - Version = 1 -}) -asset.export("TexturesPath", TexturesPath) diff --git a/data/assets/scene/solarsystem/planets/jupiter/io/layers/colorlayers/io_texture.asset b/data/assets/scene/solarsystem/planets/jupiter/io/layers/colorlayers/io_texture.asset index 1e7eb5517e..b3550cfb8e 100644 --- a/data/assets/scene/solarsystem/planets/jupiter/io/layers/colorlayers/io_texture.asset +++ b/data/assets/scene/solarsystem/planets/jupiter/io/layers/colorlayers/io_texture.asset @@ -1,15 +1,25 @@ -local texturesPath = asset.require("./../../io_textures").TexturesPath -local globeIdentifier = asset.require("./../../io").Io.Identifier +local globeIdentifier = asset.require("../../io").Io.Identifier + +local texturesPath = asset.syncedResource({ + Name = "Io Textures", + Type = "HttpSynchronization", + Identifier = "io_textures", + Version = 1 +}) local layer = { Identifier = "Texture", - FilePath = texturesPath .. "/io.jpg", + FilePath = texturesPath .. "io.jpg", } -asset.onInitialize(function () +asset.onInitialize(function() openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer) end) +asset.onDeinitialize(function() + openspace.globebrowsing.deleteLayer(globeIdentifier, "ColorLayers", layer) +end) + asset.export("layer", layer) diff --git a/data/assets/scene/solarsystem/planets/jupiter/io/trail.asset b/data/assets/scene/solarsystem/planets/jupiter/io/trail.asset index 63dcfd15d5..175711701c 100644 --- a/data/assets/scene/solarsystem/planets/jupiter/io/trail.asset +++ b/data/assets/scene/solarsystem/planets/jupiter/io/trail.asset @@ -1,7 +1,6 @@ -local transforms = asset.require('../transforms') -local assetHelper = asset.require('util/asset_helper') +local transforms = asset.require("../transforms") asset.require("spice/base") -local kernel = asset.require('../kernels').jup310 +local kernel = asset.require("../kernels").jup310 @@ -27,16 +26,24 @@ local IoTrail = { } } -assetHelper.registerSceneGraphNodesAndExport(asset, { IoTrail }) +asset.onInitialize(function() + openspace.addSceneGraphNode(IoTrail) +end) + +asset.onDeinitialize(function() + openspace.removeSceneGraphNode(IoTrail) +end) + +asset.export(IoTrail) + asset.meta = { Name = "Io Trail", - Version = "1.0", + Version = "1.1", Description = [[ Trail of Io as observed by the Jupiter. Data from NASA Spice (see base spice asset)]], Author = "OpenSpace Team", URL = "http://openspaceproject.com", - License = "MIT license", - Identifiers = {"IoTrail"} + License = "MIT license" } diff --git a/data/assets/scene/solarsystem/planets/jupiter/jupiter.asset b/data/assets/scene/solarsystem/planets/jupiter/jupiter.asset index a7941b8f18..9aee8e2089 100644 --- a/data/assets/scene/solarsystem/planets/jupiter/jupiter.asset +++ b/data/assets/scene/solarsystem/planets/jupiter/jupiter.asset @@ -1,7 +1,6 @@ -local transforms = asset.require('./transforms') -local assetHelper = asset.require('util/asset_helper') +local transforms = asset.require("./transforms") asset.require("spice/base") -asset.require('./trail') +asset.require("./trail") local Jupiter = { Identifier = "Jupiter", @@ -61,15 +60,26 @@ local JupiterLabel = { } } -assetHelper.registerSceneGraphNodesAndExport(asset, { Jupiter, JupiterLabel }) +asset.onInitialize(function() + openspace.addSceneGraphNode(Jupiter) + openspace.addSceneGraphNode(JupiterLabel) +end) + +asset.onDeinitialize(function() + openspace.removeSceneGraphNode(JupiterLabel) + openspace.removeSceneGraphNode(Jupiter) +end) + +asset.export(Jupiter) +asset.export(JupiterLabel) + asset.meta = { Name = "Jupiter", - Version = "1.0", + Version = "1.1", Description = [[ Jupiter globe, and main planet label.]], Author = "OpenSpace Team", URL = "http://openspaceproject.com", - License = "MIT license", - Identifiers = {"Jupiter", "JupiterLabel"} + License = "MIT license" } diff --git a/data/assets/scene/solarsystem/planets/jupiter/jupiter_globelabels.asset b/data/assets/scene/solarsystem/planets/jupiter/jupiter_globelabels.asset deleted file mode 100644 index 9de72c055c..0000000000 --- a/data/assets/scene/solarsystem/planets/jupiter/jupiter_globelabels.asset +++ /dev/null @@ -1,7 +0,0 @@ -local LabelsPath = asset.syncedResource({ - Name = "Jupiter Labels", - Type = "HttpSynchronization", - Identifier = "jupiter_labels", - Version = 1 -}) -asset.export("LabelsPath", LabelsPath) diff --git a/data/assets/scene/solarsystem/planets/jupiter/jupiter_textures.asset b/data/assets/scene/solarsystem/planets/jupiter/jupiter_textures.asset deleted file mode 100644 index c310a1906b..0000000000 --- a/data/assets/scene/solarsystem/planets/jupiter/jupiter_textures.asset +++ /dev/null @@ -1,7 +0,0 @@ -local TexturesPath = asset.syncedResource({ - Name = "Jupiter Textures", - Type = "HttpSynchronization", - Identifier = "jupiter_textures", - Version = 2 -}) -asset.export("TexturesPath", TexturesPath) diff --git a/data/assets/scene/solarsystem/planets/jupiter/kernels.asset b/data/assets/scene/solarsystem/planets/jupiter/kernels.asset index 0a015021b8..c71295f94e 100644 --- a/data/assets/scene/solarsystem/planets/jupiter/kernels.asset +++ b/data/assets/scene/solarsystem/planets/jupiter/kernels.asset @@ -5,8 +5,8 @@ local Kernels = asset.syncedResource({ Version = 1 }) -asset.export("jup310", Kernels .. '/jup310.bsp') -asset.export("jup341", Kernels .. '/jup341.bsp') +asset.export("jup310", Kernels .. "jup310.bsp") +asset.export("jup341", Kernels .. "jup341.bsp") asset.meta = { diff --git a/data/assets/scene/solarsystem/planets/jupiter/layers/colorlayers/jupiter_texture.asset b/data/assets/scene/solarsystem/planets/jupiter/layers/colorlayers/jupiter_texture.asset index 98b2d1543d..d27cb31d33 100644 --- a/data/assets/scene/solarsystem/planets/jupiter/layers/colorlayers/jupiter_texture.asset +++ b/data/assets/scene/solarsystem/planets/jupiter/layers/colorlayers/jupiter_texture.asset @@ -1,18 +1,29 @@ -local texturesPath = asset.require("./../../jupiter_textures").TexturesPath -local globeIdentifier = asset.require("./../../jupiter").Jupiter.Identifier +local globeIdentifier = asset.require("../../jupiter").Jupiter.Identifier + +local texturesPath = asset.syncedResource({ + Name = "Jupiter Textures", + Type = "HttpSynchronization", + Identifier = "jupiter_textures", + Version = 2 +}) local layer = { Identifier = "Texture", - FilePath = texturesPath .. "/jupiter_os.tif", + FilePath = texturesPath .. "jupiter_os.tif", } -asset.onInitialize(function () +asset.onInitialize(function() openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer) end) +asset.onDeinitialize(function() + openspace.globebrowsing.deleteLayer(globeIdentifier, "ColorLayers", layer) +end) + asset.export("layer", layer) + asset.meta = { Name = "Jupiter Texutre", Version = "2.0", diff --git a/data/assets/scene/solarsystem/planets/jupiter/major_moons.asset b/data/assets/scene/solarsystem/planets/jupiter/major_moons.asset index 196e4d4209..bb87200aea 100644 --- a/data/assets/scene/solarsystem/planets/jupiter/major_moons.asset +++ b/data/assets/scene/solarsystem/planets/jupiter/major_moons.asset @@ -1,7 +1,7 @@ -asset.require('./callisto/callisto') -asset.require('./europa/europa') -asset.require('./ganymede/ganymede') -asset.require('./io/io') +asset.require("./callisto/callisto") +asset.require("./europa/europa") +asset.require("./ganymede/ganymede") +asset.require("./io/io") asset.meta = { diff --git a/data/assets/scene/solarsystem/planets/jupiter/minor/ananke_group.asset b/data/assets/scene/solarsystem/planets/jupiter/minor/ananke_group.asset index d26e384b3e..2faa129446 100644 --- a/data/assets/scene/solarsystem/planets/jupiter/minor/ananke_group.asset +++ b/data/assets/scene/solarsystem/planets/jupiter/minor/ananke_group.asset @@ -1,7 +1,6 @@ -local assetHelper = asset.require('util/asset_helper') -local proceduralGlobes = asset.require('util/procedural_globe') -local transforms = asset.require('../transforms') -local kernel = asset.require('../kernels').jup341 +local proceduralGlobes = asset.require("util/procedural_globe") +local transforms = asset.require("../transforms") +local kernel = asset.require("../kernels").jup341 @@ -208,10 +207,24 @@ local anankeGroup = { } } -assetHelper.registerSceneGraphNodesAndExport( - asset, - proceduralGlobes.createGlobes(anankeGroup) -) +local nodes = proceduralGlobes.createGlobes(anankeGroup) + +asset.onInitialize(function() + for i, node in ipairs(nodes) do + openspace.addSceneGraphNode(node) + end +end) + +asset.onDeinitialize(function() + for i = #nodes, 1, -1 do + openspace.removeSceneGraphNode(nodes[i]) + end +end) + +for i, node in ipairs(nodes) do + asset.export( node) +end + asset.meta = { diff --git a/data/assets/scene/solarsystem/planets/jupiter/minor/carme_group.asset b/data/assets/scene/solarsystem/planets/jupiter/minor/carme_group.asset index 32f0c3b067..f5a1256ddc 100644 --- a/data/assets/scene/solarsystem/planets/jupiter/minor/carme_group.asset +++ b/data/assets/scene/solarsystem/planets/jupiter/minor/carme_group.asset @@ -1,7 +1,6 @@ -local assetHelper = asset.require('util/asset_helper') -local proceduralGlobes = asset.require('util/procedural_globe') -local transforms = asset.require('../transforms') -local kernel = asset.require('../kernels').jup341 +local proceduralGlobes = asset.require("util/procedural_globe") +local transforms = asset.require("../transforms") +local kernel = asset.require("../kernels").jup341 @@ -276,10 +275,23 @@ local carmeGroup = { } } -assetHelper.registerSceneGraphNodesAndExport( - asset, - proceduralGlobes.createGlobes(carmeGroup) -) +local nodes = proceduralGlobes.createGlobes(carmeGroup) + +asset.onInitialize(function() + for i, node in ipairs(nodes) do + openspace.addSceneGraphNode(node) + end +end) + +asset.onDeinitialize(function() + for i = #nodes, 1, -1 do + openspace.removeSceneGraphNode(nodes[i]) + end +end) + +for i, node in ipairs(nodes) do + asset.export(node) +end asset.meta = { diff --git a/data/assets/scene/solarsystem/planets/jupiter/minor/carpo_group.asset b/data/assets/scene/solarsystem/planets/jupiter/minor/carpo_group.asset index 0731ce60ba..1cdaa9bd04 100644 --- a/data/assets/scene/solarsystem/planets/jupiter/minor/carpo_group.asset +++ b/data/assets/scene/solarsystem/planets/jupiter/minor/carpo_group.asset @@ -1,7 +1,6 @@ -local assetHelper = asset.require('util/asset_helper') -local proceduralGlobes = asset.require('util/procedural_globe') -local transforms = asset.require('../transforms') -local kernel = asset.require('../kernels').jup341 +local proceduralGlobes = asset.require("util/procedural_globe") +local transforms = asset.require("../transforms") +local kernel = asset.require("../kernels").jup341 @@ -36,10 +35,23 @@ local carpoGroup = { } } -assetHelper.registerSceneGraphNodesAndExport( - asset, - proceduralGlobes.createGlobes(carpoGroup) -) +local nodes = proceduralGlobes.createGlobes(carpoGroup) + +asset.onInitialize(function() + for i, node in ipairs(nodes) do + openspace.addSceneGraphNode(node) + end +end) + +asset.onDeinitialize(function() + for i = #nodes, 1, -1 do + openspace.removeSceneGraphNode(nodes[i]) + end +end) + +for i, node in ipairs(nodes) do + asset.export(node) +end asset.meta = { diff --git a/data/assets/scene/solarsystem/planets/jupiter/minor/himalia_group.asset b/data/assets/scene/solarsystem/planets/jupiter/minor/himalia_group.asset index 2b0619989c..9143965e05 100644 --- a/data/assets/scene/solarsystem/planets/jupiter/minor/himalia_group.asset +++ b/data/assets/scene/solarsystem/planets/jupiter/minor/himalia_group.asset @@ -1,7 +1,6 @@ -local assetHelper = asset.require('util/asset_helper') -local proceduralGlobes = asset.require('util/procedural_globe') -local transforms = asset.require('../transforms') -local kernel = asset.require('../kernels').jup341 +local proceduralGlobes = asset.require("util/procedural_globe") +local transforms = asset.require("../transforms") +local kernel = asset.require("../kernels").jup341 @@ -105,10 +104,23 @@ local himaliaGroup = { } } -assetHelper.registerSceneGraphNodesAndExport( - asset, - proceduralGlobes.createGlobes(himaliaGroup) -) +local nodes = proceduralGlobes.createGlobes(himaliaGroup) + +asset.onInitialize(function() + for i, node in ipairs(nodes) do + openspace.addSceneGraphNode(node) + end +end) + +asset.onDeinitialize(function() + for i = #nodes, 1, -1 do + openspace.removeSceneGraphNode(nodes[i]) + end +end) + +for i, node in ipairs(nodes) do + asset.export(node) +end asset.meta = { diff --git a/data/assets/scene/solarsystem/planets/jupiter/minor/inner_group.asset b/data/assets/scene/solarsystem/planets/jupiter/minor/inner_group.asset index 34f81084ae..b8c0c23122 100644 --- a/data/assets/scene/solarsystem/planets/jupiter/minor/inner_group.asset +++ b/data/assets/scene/solarsystem/planets/jupiter/minor/inner_group.asset @@ -1,7 +1,6 @@ -local assetHelper = asset.require('util/asset_helper') -local proceduralGlobes = asset.require('util/procedural_globe') -local transforms = asset.require('../transforms') -local kernel = asset.require('../kernels').jup341 +local proceduralGlobes = asset.require("util/procedural_globe") +local transforms = asset.require("../transforms") +local kernel = asset.require("../kernels").jup341 @@ -87,10 +86,23 @@ local innerMoons = { } } -assetHelper.registerSceneGraphNodesAndExport( - asset, - proceduralGlobes.createGlobes(innerMoons) -) +local nodes = proceduralGlobes.createGlobes(innerMoons) + +asset.onInitialize(function() + for i, node in ipairs(nodes) do + openspace.addSceneGraphNode(node) + end +end) + +asset.onDeinitialize(function() + for i = #nodes, 1, -1 do + openspace.removeSceneGraphNode(nodes[i]) + end +end) + +for i, node in ipairs(nodes) do + asset.export(node) +end asset.meta = { diff --git a/data/assets/scene/solarsystem/planets/jupiter/minor/other_groups.asset b/data/assets/scene/solarsystem/planets/jupiter/minor/other_groups.asset index c72a04d69f..38751d1295 100644 --- a/data/assets/scene/solarsystem/planets/jupiter/minor/other_groups.asset +++ b/data/assets/scene/solarsystem/planets/jupiter/minor/other_groups.asset @@ -1,7 +1,6 @@ -local assetHelper = asset.require('util/asset_helper') -local proceduralGlobes = asset.require('util/procedural_globe') -local transforms = asset.require('../transforms') -local kernel = asset.require('../kernels').jup341 +local proceduralGlobes = asset.require("util/procedural_globe") +local transforms = asset.require("../transforms") +local kernel = asset.require("../kernels").jup341 @@ -163,10 +162,23 @@ local otherGroups = { } } -assetHelper.registerSceneGraphNodesAndExport( - asset, - proceduralGlobes.createGlobes(otherGroups) -) +local nodes = proceduralGlobes.createGlobes(otherGroups) + +asset.onInitialize(function() + for i, node in ipairs(nodes) do + openspace.addSceneGraphNode(node) + end +end) + +asset.onDeinitialize(function() + for i = #nodes, 1, -1 do + openspace.removeSceneGraphNode(nodes[i]) + end +end) + +for i, node in ipairs(nodes) do + asset.export(node) +end asset.meta = { diff --git a/data/assets/scene/solarsystem/planets/jupiter/minor/pasiphae_group.asset b/data/assets/scene/solarsystem/planets/jupiter/minor/pasiphae_group.asset index 8268262874..dcb958985f 100644 --- a/data/assets/scene/solarsystem/planets/jupiter/minor/pasiphae_group.asset +++ b/data/assets/scene/solarsystem/planets/jupiter/minor/pasiphae_group.asset @@ -1,7 +1,6 @@ -local assetHelper = asset.require('util/asset_helper') -local proceduralGlobes = asset.require('util/procedural_globe') -local transforms = asset.require('../transforms') -local kernel = asset.require('../kernels').jup341 +local proceduralGlobes = asset.require("util/procedural_globe") +local transforms = asset.require("../transforms") +local kernel = asset.require("../kernels").jup341 @@ -365,10 +364,23 @@ local pasiphaeGroup = { } } -assetHelper.registerSceneGraphNodesAndExport( - asset, - proceduralGlobes.createGlobes(pasiphaeGroup) -) +local nodes = proceduralGlobes.createGlobes(pasiphaeGroup) + +asset.onInitialize(function() + for i, node in ipairs(nodes) do + openspace.addSceneGraphNode(node) + end +end) + +asset.onDeinitialize(function() + for i = #nodes, 1, -1 do + openspace.removeSceneGraphNode(nodes[i]) + end +end) + +for i, node in ipairs(nodes) do + asset.export(node) +end asset.meta = { diff --git a/data/assets/scene/solarsystem/planets/jupiter/minor/themisto_group.asset b/data/assets/scene/solarsystem/planets/jupiter/minor/themisto_group.asset index 343eb2c432..fb6e8d14dc 100644 --- a/data/assets/scene/solarsystem/planets/jupiter/minor/themisto_group.asset +++ b/data/assets/scene/solarsystem/planets/jupiter/minor/themisto_group.asset @@ -1,7 +1,6 @@ -local assetHelper = asset.require('util/asset_helper') -local proceduralGlobes = asset.require('util/procedural_globe') -local transforms = asset.require('../transforms') -local kernel = asset.require('../kernels').jup341 +local proceduralGlobes = asset.require("util/procedural_globe") +local transforms = asset.require("../transforms") +local kernel = asset.require("../kernels").jup341 @@ -35,10 +34,23 @@ local themistoGroup = { } } -assetHelper.registerSceneGraphNodesAndExport( - asset, - proceduralGlobes.createGlobes(themistoGroup) -) +local nodes = proceduralGlobes.createGlobes(themistoGroup) + +asset.onInitialize(function() + for i, node in ipairs(nodes) do + openspace.addSceneGraphNode(node) + end +end) + +asset.onDeinitialize(function() + for i = #nodes, 1, -1 do + openspace.removeSceneGraphNode(nodes[i]) + end +end) + +for i, node in ipairs(nodes) do + asset.export(node) +end asset.meta = { diff --git a/data/assets/scene/solarsystem/planets/jupiter/minor_moons.asset b/data/assets/scene/solarsystem/planets/jupiter/minor_moons.asset index f935b5d485..6b87a3618b 100644 --- a/data/assets/scene/solarsystem/planets/jupiter/minor_moons.asset +++ b/data/assets/scene/solarsystem/planets/jupiter/minor_moons.asset @@ -1,11 +1,11 @@ -asset.require('./minor/ananke_group') -asset.require('./minor/carme_group') -asset.require('./minor/carpo_group') -asset.require('./minor/himalia_group') -asset.require('./minor/inner_group') -asset.require('./minor/other_groups') -asset.require('./minor/pasiphae_group') -asset.require('./minor/themisto_group') +asset.require("./minor/ananke_group") +asset.require("./minor/carme_group") +asset.require("./minor/carpo_group") +asset.require("./minor/himalia_group") +asset.require("./minor/inner_group") +asset.require("./minor/other_groups") +asset.require("./minor/pasiphae_group") +asset.require("./minor/themisto_group") asset.meta = { diff --git a/data/assets/scene/solarsystem/planets/jupiter/trail.asset b/data/assets/scene/solarsystem/planets/jupiter/trail.asset index ef0ea4dc2a..72ef7a7be5 100644 --- a/data/assets/scene/solarsystem/planets/jupiter/trail.asset +++ b/data/assets/scene/solarsystem/planets/jupiter/trail.asset @@ -1,5 +1,4 @@ -local assetHelper = asset.require('util/asset_helper') -local transforms = asset.require('scene/solarsystem/sun/transforms') +local transforms = asset.require("scene/solarsystem/sun/transforms") asset.require("spice/base") @@ -25,16 +24,24 @@ local JupiterTrail = { } } -assetHelper.registerSceneGraphNodesAndExport(asset, { JupiterTrail }) +asset.onInitialize(function() + openspace.addSceneGraphNode(JupiterTrail) +end) + +asset.onDeinitialize(function() + openspace.removeSceneGraphNode(JupiterTrail) +end) + +asset.export(JupiterTrail) + asset.meta = { Name = "Jupiter Trail", - Version = "1.0", + Version = "1.1", Description = [[ Trail of Jupiter as observed by the Sun. Data from NASA Spice (see base spice asset)]], Author = "OpenSpace Team", URL = "http://openspaceproject.com", - License = "MIT license", - Identifiers = {"JupiterTrail"} + License = "MIT license" } diff --git a/data/assets/scene/solarsystem/planets/jupiter/trail_earth.asset b/data/assets/scene/solarsystem/planets/jupiter/trail_earth.asset index e89618469b..54f3aac12c 100644 --- a/data/assets/scene/solarsystem/planets/jupiter/trail_earth.asset +++ b/data/assets/scene/solarsystem/planets/jupiter/trail_earth.asset @@ -1,6 +1,5 @@ -local assetHelper = asset.require('util/asset_helper') -local transforms = asset.require('scene/solarsystem/sun/transforms') -local earthTransforms = asset.require('scene/solarsystem/planets/earth/transforms') +local transforms = asset.require("scene/solarsystem/sun/transforms") +local earthTransforms = asset.require("scene/solarsystem/planets/earth/transforms") asset.require("spice/base") @@ -28,15 +27,24 @@ local JupiterTrailEarth = { } } +asset.onInitialize(function() + openspace.addSceneGraphNode(JupiterTrailEarth) +end) + +asset.onDeinitialize(function() + openspace.removeSceneGraphNode(JupiterTrailEarth) +end) + +asset.export(JupiterTrailEarth) + + + asset.meta = { Name = "Jupiter Trail from Earth", - Version = "1.0", + Version = "1.1", Description = [[ Trail of Jupiter as observed by the Earth. Data from NASA SPICE (see base spice asset)]], Author = "OpenSpace Team", URL = "http://openspaceproject.com", - License = "MIT license", - Identifiers = {"JupiterTrailEarth"} + License = "MIT license" } - -assetHelper.registerSceneGraphNodesAndExport(asset, { JupiterTrailEarth }) diff --git a/data/assets/scene/solarsystem/planets/jupiter/transforms.asset b/data/assets/scene/solarsystem/planets/jupiter/transforms.asset index 510b1db636..9c8e400875 100644 --- a/data/assets/scene/solarsystem/planets/jupiter/transforms.asset +++ b/data/assets/scene/solarsystem/planets/jupiter/transforms.asset @@ -1,5 +1,4 @@ -local assetHelper = asset.require('util/asset_helper') -local sun_transforms_asset = asset.require('scene/solarsystem/sun/transforms') +local sun_transforms_asset = asset.require("scene/solarsystem/sun/transforms") asset.require("spice/base") @@ -21,15 +20,23 @@ local JupiterBarycenter = { } } -assetHelper.registerSceneGraphNodesAndExport(asset, { JupiterBarycenter }) +asset.onInitialize(function() + openspace.addSceneGraphNode(JupiterBarycenter) +end) + +asset.onDeinitialize(function() + openspace.removeSceneGraphNode(JupiterBarycenter) +end) + +asset.export(JupiterBarycenter) + asset.meta = { Name = "Jupiter Transforms", - Version = "1.0", + Version = "1.1", Description = [[ Jupiter Barycenter transform ]], Author = "OpenSpace Team", URL = "http://openspaceproject.com", - License = "MIT license", - Identifiers = {"JupiterBarycenter"} + License = "MIT license" } diff --git a/data/assets/scene/solarsystem/planets/mars/atmosphere.asset b/data/assets/scene/solarsystem/planets/mars/atmosphere.asset index e76b1afd57..734600d7c7 100644 --- a/data/assets/scene/solarsystem/planets/mars/atmosphere.asset +++ b/data/assets/scene/solarsystem/planets/mars/atmosphere.asset @@ -1,5 +1,4 @@ -local transforms = asset.require('./mars') -local assetHelper = asset.require('util/asset_helper') +local transforms = asset.require("./mars") @@ -53,15 +52,23 @@ local Atmosphere = { } } -assetHelper.registerSceneGraphNodesAndExport(asset, { Atmosphere }) +asset.onInitialize(function() + openspace.addSceneGraphNode(Atmosphere) +end) + +asset.onDeinitialize(function() + openspace.removeSceneGraphNode(Atmosphere) +end) + +asset.export(Atmosphere) + asset.meta = { Name = "Mars Atmosphere", - Version = "1.0", + Version = "1.1", Description = [[ RenderableAtmosphere for Mars.]], Author = "OpenSpace Team", URL = "http://openspaceproject.com", - License = "MIT license", - Identifiers = {"MarsAtmosphere"} + License = "MIT license" } diff --git a/data/assets/scene/solarsystem/planets/mars/default_layers.asset b/data/assets/scene/solarsystem/planets/mars/default_layers.asset index 54354cbafd..198fa783b5 100644 --- a/data/assets/scene/solarsystem/planets/mars/default_layers.asset +++ b/data/assets/scene/solarsystem/planets/mars/default_layers.asset @@ -1,35 +1,31 @@ -local colorLayersPath = "./layers/colorlayers" -local heightLayersPath = "./layers/heightlayers" -local overlaysPath = "./layers/overlays" - -- Color layer -local colorLayer = asset.require(colorLayersPath .. "/moc_wa_color_utah") -- TODO: fallback -asset.require(colorLayersPath .. "/moc_wa_color_liu") -- TODO: fallback -asset.require(colorLayersPath .. "/viking_mdim_utah") -asset.require(colorLayersPath .. "/viking_mdim_sweden") -asset.require(colorLayersPath .. "/mola_pseudo_color_utah") -asset.require(colorLayersPath .. "/mola_pseudo_color_sweden") -asset.require(colorLayersPath .. "/mola_hrsc_utah") -asset.require(colorLayersPath .. "/mola_hrsc_sweden") -asset.require(colorLayersPath .. "/themis_ir_day_utah") -asset.require(colorLayersPath .. "/themis_ir_day_sweden") -asset.require(colorLayersPath .. "/themis_ir_night_utah") -asset.require(colorLayersPath .. "/themis_ir_night_sweden") -asset.require(colorLayersPath .. "/ctx_mosaic_utah") -asset.require(colorLayersPath .. "/ctx_mosaic_sweden") -asset.require(colorLayersPath .. "/ctx_blended_01") -asset.require(colorLayersPath .. "/hirise") -asset.require(colorLayersPath .. "/hirisels") +local colorLayer = asset.require("./layers/colorlayers/moc_wa_color_utah") -- TODO: fallback +asset.require("./layers/colorlayers/moc_wa_color_sweden") -- TODO: fallback +asset.require("./layers/colorlayers/viking_mdim_utah") +asset.require("./layers/colorlayers/viking_mdim_sweden") +asset.require("./layers/colorlayers/mola_pseudo_color_utah") +asset.require("./layers/colorlayers/mola_pseudo_color_sweden") +asset.require("./layers/colorlayers/mola_hrsc_utah") +asset.require("./layers/colorlayers/mola_hrsc_sweden") +asset.require("./layers/colorlayers/themis_ir_day_utah") +asset.require("./layers/colorlayers/themis_ir_day_sweden") +asset.require("./layers/colorlayers/themis_ir_night_utah") +asset.require("./layers/colorlayers/themis_ir_night_sweden") +asset.require("./layers/colorlayers/ctx_mosaic_utah") +asset.require("./layers/colorlayers/ctx_mosaic_sweden") +asset.require("./layers/colorlayers/ctx_blended_01") +asset.require("./layers/colorlayers/hirise") +asset.require("./layers/colorlayers/hirisels") -- Height layers -asset.require(heightLayersPath .. "/mola_europe") -asset.require(heightLayersPath .. "/mola_utah") -local heightLayer = asset.require(heightLayersPath .. "/MDEM200M") -asset.require(heightLayersPath .. "/hirisels") +asset.require("./layers/heightlayers/mola_sweden") +asset.require("./layers/heightlayers/mola_utah") +local heightLayer = asset.require("./layers/heightlayers/MDEM200M") +asset.require("./layers/heightlayers/hirisels") -- Overlays -asset.require(overlaysPath .. "/indices") -asset.require(overlaysPath .. "/size_reference") +asset.require("./layers/overlays/indices") +asset.require("./layers/overlays/size_reference") -- Set enabled layers (temporary solution) -- @TODO: do this using a boolean that's passed to the 'asset.require' instead diff --git a/data/assets/scene/solarsystem/planets/mars/layers/colorlayers/ctx_blended_01.asset b/data/assets/scene/solarsystem/planets/mars/layers/colorlayers/ctx_blended_01.asset index bf644867fd..44727a84ea 100644 --- a/data/assets/scene/solarsystem/planets/mars/layers/colorlayers/ctx_blended_01.asset +++ b/data/assets/scene/solarsystem/planets/mars/layers/colorlayers/ctx_blended_01.asset @@ -1,10 +1,9 @@ -local mapServiceConfigs = asset.localResource("./../../map_service_configs") -local globeIdentifier = asset.require("./../../mars").Mars.Identifier +local globeIdentifier = asset.require("../../mars").Mars.Identifier local layer = { Identifier = "CTX_blended_01", Name = "CTX Blended beta01", - FilePath = mapServiceConfigs .. "/ESRI/CTX/CTXblended.vrt", + FilePath = asset.localResource("ctx_blended_01.vrt"), BlendMode = "Color", Settings = { Gamma = 2.14, @@ -27,20 +26,24 @@ local layer = { to prevent misinterpretation. (Description from URL)]], } -asset.onInitialize(function () +asset.onInitialize(function() openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer) end) +asset.onDeinitialize(function() + openspace.globebrowsing.deleteLayer(globeIdentifier, "ColorLayers", layer) +end) + asset.export("layer", layer) + asset.meta = { Name = "CTX Blended beta01", - Version = "1.0", + Version = "1.1", Description = [[New blended CTX map for Mars from CalTech Murray lab. This map is hosted by ESRI.]], Author = "Caltech Murray Lab", URL = "http://murray-lab.caltech.edu/CTX/", - License = "Esri Master License Agreement", - Identifiers = {"CTX_blended_01"} + License = "Esri Master License Agreement" } diff --git a/data/assets/scene/solarsystem/planets/mars/map_service_configs/ESRI/CTX/CTXblended.vrt b/data/assets/scene/solarsystem/planets/mars/layers/colorlayers/ctx_blended_01.vrt similarity index 90% rename from data/assets/scene/solarsystem/planets/mars/map_service_configs/ESRI/CTX/CTXblended.vrt rename to data/assets/scene/solarsystem/planets/mars/layers/colorlayers/ctx_blended_01.vrt index 8b81d03b3e..ed8fb78132 100644 --- a/data/assets/scene/solarsystem/planets/mars/map_service_configs/ESRI/CTX/CTXblended.vrt +++ b/data/assets/scene/solarsystem/planets/mars/layers/colorlayers/ctx_blended_01.vrt @@ -5,7 +5,7 @@ 0.00000000000000E+00 Gray - CTXblended.tif + ctx_blended_01.wms 1 @@ -17,7 +17,7 @@ 0 Alpha - CTXblended.tif + ctx_blended_01.wms 1 diff --git a/data/assets/scene/solarsystem/planets/mars/map_service_configs/ESRI/CTX/CTXblended.tif b/data/assets/scene/solarsystem/planets/mars/layers/colorlayers/ctx_blended_01.wms similarity index 97% rename from data/assets/scene/solarsystem/planets/mars/map_service_configs/ESRI/CTX/CTXblended.tif rename to data/assets/scene/solarsystem/planets/mars/layers/colorlayers/ctx_blended_01.wms index 6025d7c7bd..28ea11c342 100644 --- a/data/assets/scene/solarsystem/planets/mars/map_service_configs/ESRI/CTX/CTXblended.tif +++ b/data/assets/scene/solarsystem/planets/mars/layers/colorlayers/ctx_blended_01.wms @@ -1,18 +1,18 @@ - - - http://astro.arcgis.com/arcgis/rest/services/OnMars/CTX/MapServer/tile/${z}/${y}/${x} - - - -180.0 90.0 - 180.0 -90.0 - 4194304 2097152 - 12 top - - GEOGCS["GCS_Mars_2000_Sphere",DATUM["D_Mars_2000_Sphere",SPHEROID["Mars_2000_Sphere_IAU_IAG",3396190.0,0.0]],PRIMEM["Reference_Meridian",0.0],UNIT["Degree",0.0174532925199433]] - 512 - 512 - 1 - 5 - - 404,400 - + + + http://astro.arcgis.com/arcgis/rest/services/OnMars/CTX/MapServer/tile/${z}/${y}/${x} + + + -180.0 90.0 + 180.0 -90.0 + 4194304 2097152 + 12 top + + GEOGCS["GCS_Mars_2000_Sphere",DATUM["D_Mars_2000_Sphere",SPHEROID["Mars_2000_Sphere_IAU_IAG",3396190.0,0.0]],PRIMEM["Reference_Meridian",0.0],UNIT["Degree",0.0174532925199433]] + 512 + 512 + 1 + 5 + + 404,400 + diff --git a/data/assets/scene/solarsystem/planets/mars/layers/colorlayers/ctx_mosaic_sweden.asset b/data/assets/scene/solarsystem/planets/mars/layers/colorlayers/ctx_mosaic_sweden.asset index 9b414b1fc3..7914ab1948 100644 --- a/data/assets/scene/solarsystem/planets/mars/layers/colorlayers/ctx_mosaic_sweden.asset +++ b/data/assets/scene/solarsystem/planets/mars/layers/colorlayers/ctx_mosaic_sweden.asset @@ -1,15 +1,30 @@ -local mapServiceConfigs = asset.localResource("./../../map_service_configs") -local globeIdentifier = asset.require("./../../mars").Mars.Identifier +local globeIdentifier = asset.require("../../mars").Mars.Identifier local layer = { Identifier = "CTX_Mosaic_Sweden", Name = "CTX Mosaic [Sweden]", - FilePath = mapServiceConfigs .. "/LiU/CTX.wms", + FilePath = asset.localResource("ctx_mosaic_sweden.wms"), BlendMode = "Color" } -asset.onInitialize(function () +asset.onInitialize(function() openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer) end) +asset.onDeinitialize(function() + openspace.globebrowsing.deleteLayer(globeIdentifier, "ColorLayers", layer) +end) + asset.export("layer", layer) + + + +asset.meta = { + Name = "CTX Mosaic [Sweden]", + Version = "1.0", + Description = [[ CTX Mosaic layer for Mars globe. This layer is served from the + OpenSpace servers in Sweden.]], + Author = "OpenSpace Team", + URL = "http://openspaceproject.com", + License = "MIT license" +} diff --git a/data/assets/scene/solarsystem/planets/mars/map_service_configs/LiU/CTX.wms b/data/assets/scene/solarsystem/planets/mars/layers/colorlayers/ctx_mosaic_sweden.wms similarity index 100% rename from data/assets/scene/solarsystem/planets/mars/map_service_configs/LiU/CTX.wms rename to data/assets/scene/solarsystem/planets/mars/layers/colorlayers/ctx_mosaic_sweden.wms diff --git a/data/assets/scene/solarsystem/planets/mars/layers/colorlayers/ctx_mosaic_utah.asset b/data/assets/scene/solarsystem/planets/mars/layers/colorlayers/ctx_mosaic_utah.asset index 1b7342a8d1..9571efd001 100644 --- a/data/assets/scene/solarsystem/planets/mars/layers/colorlayers/ctx_mosaic_utah.asset +++ b/data/assets/scene/solarsystem/planets/mars/layers/colorlayers/ctx_mosaic_utah.asset @@ -1,15 +1,30 @@ -local mapServiceConfigs = asset.localResource("./../../map_service_configs") -local globeIdentifier = asset.require("./../../mars").Mars.Identifier +local globeIdentifier = asset.require("../../mars").Mars.Identifier local layer = { Identifier = "CTX_Mosaic_Utah", Name = "CTX Mosaic [Utah]", - FilePath = mapServiceConfigs .. "/Utah/CTX.wms", + FilePath = asset.localResource("ctx_mosaic_utah.wms"), BlendMode = "Color" } -asset.onInitialize(function () +asset.onInitialize(function() openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer) end) +asset.onDeinitialize(function() + openspace.globebrowsing.deleteLayer(globeIdentifier, "ColorLayers", layer) +end) + asset.export("layer", layer) + + + +asset.meta = { + Name = "CTX Mosaic [Utah]", + Version = "1.0", + Description = [[ CTX Mosaic layer for Mars globe. This layer is served from the + OpenSpace servers in Utah.]], + Author = "OpenSpace Team", + URL = "http://openspaceproject.com", + License = "MIT license" +} diff --git a/data/assets/scene/solarsystem/planets/mars/map_service_configs/Utah/CTX.wms b/data/assets/scene/solarsystem/planets/mars/layers/colorlayers/ctx_mosaic_utah.wms similarity index 100% rename from data/assets/scene/solarsystem/planets/mars/map_service_configs/Utah/CTX.wms rename to data/assets/scene/solarsystem/planets/mars/layers/colorlayers/ctx_mosaic_utah.wms diff --git a/data/assets/scene/solarsystem/planets/mars/layers/colorlayers/fallbacks/mars_texture.asset b/data/assets/scene/solarsystem/planets/mars/layers/colorlayers/fallbacks/mars_texture.asset index beb227466d..5f5e11db94 100644 --- a/data/assets/scene/solarsystem/planets/mars/layers/colorlayers/fallbacks/mars_texture.asset +++ b/data/assets/scene/solarsystem/planets/mars/layers/colorlayers/fallbacks/mars_texture.asset @@ -1,9 +1,14 @@ -local texturesPath = asset.require("./../../../mars_textures").TexturesPath +local texturesPath = asset.syncedResource({ + Name = "Mars Textures", + Type = "HttpSynchronization", + Identifier = "mars_textures", + Version = 1 +}) local layer = { Identifier = "Mars_Texture", Name = "Mars Texture", - FilePath = texturesPath .. "/mars.jpg", + FilePath = texturesPath .. "mars.jpg", } asset.export("layer", layer) diff --git a/data/assets/scene/solarsystem/planets/mars/layers/colorlayers/hirise.asset b/data/assets/scene/solarsystem/planets/mars/layers/colorlayers/hirise.asset index c3bedbb9a9..14cb347416 100644 --- a/data/assets/scene/solarsystem/planets/mars/layers/colorlayers/hirise.asset +++ b/data/assets/scene/solarsystem/planets/mars/layers/colorlayers/hirise.asset @@ -1,10 +1,9 @@ -local mapServiceConfigs = asset.localResource("./../../map_service_configs") -local globeIdentifier = asset.require("./../../mars").Mars.Identifier +local globeIdentifier = asset.require("../../mars").Mars.Identifier local layer = { Identifier = "HiRISE-PSP", Name = "HiRISE", - FilePath = mapServiceConfigs .. "/ESRI/HiRISE/HiRISE_PSP.vrt", + FilePath = asset.localResource("hirise.vrt"), BlendMode = "Color", Settings = { Gamma = 1.0, @@ -23,20 +22,24 @@ local layer = { 10 bit range. (Description from URL)]], } -asset.onInitialize(function () +asset.onInitialize(function() openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer) end) +asset.onDeinitialize(function() + openspace.globebrowsing.deleteLayer(globeIdentifier, "ColorLayers", layer) +end) + asset.export("layer", layer) + asset.meta = { Name = "HiRISE", - Version = "1.0", + Version = "1.1", Description = [[Updated HiRISE layer for Mars with raw unselected imagery. This map is hosted by ESRI.]], Author = "esri_astro", URL = "https://www.arcgis.com/home/item.html?id=c1c4c750a2154842ae523c984cc14fa5", - License = "Esri Master License Agreement", - Identifiers = {"HiRISE-PSP"} + License = "Esri Master License Agreement" } diff --git a/data/assets/scene/solarsystem/planets/mars/map_service_configs/ESRI/HiRISE/HiRISE_PSP.vrt b/data/assets/scene/solarsystem/planets/mars/layers/colorlayers/hirise.vrt similarity index 89% rename from data/assets/scene/solarsystem/planets/mars/map_service_configs/ESRI/HiRISE/HiRISE_PSP.vrt rename to data/assets/scene/solarsystem/planets/mars/layers/colorlayers/hirise.vrt index c7927f1f30..0b4f07e86b 100644 --- a/data/assets/scene/solarsystem/planets/mars/map_service_configs/ESRI/HiRISE/HiRISE_PSP.vrt +++ b/data/assets/scene/solarsystem/planets/mars/layers/colorlayers/hirise.vrt @@ -4,7 +4,7 @@ Gray - HiRISE_PSP.tif + hirise.wms 1 @@ -14,7 +14,7 @@ Alpha - HiRISE_PSP.tif + hirise.wms 1 diff --git a/data/assets/scene/solarsystem/planets/mars/map_service_configs/ESRI/HiRISE/HiRISE_PSP.tif b/data/assets/scene/solarsystem/planets/mars/layers/colorlayers/hirise.wms similarity index 100% rename from data/assets/scene/solarsystem/planets/mars/map_service_configs/ESRI/HiRISE/HiRISE_PSP.tif rename to data/assets/scene/solarsystem/planets/mars/layers/colorlayers/hirise.wms diff --git a/data/assets/scene/solarsystem/planets/mars/layers/colorlayers/hirisels.asset b/data/assets/scene/solarsystem/planets/mars/layers/colorlayers/hirisels.asset index 5dd9e190c5..8b50ff6ad6 100644 --- a/data/assets/scene/solarsystem/planets/mars/layers/colorlayers/hirisels.asset +++ b/data/assets/scene/solarsystem/planets/mars/layers/colorlayers/hirisels.asset @@ -1,10 +1,9 @@ -local mapServiceConfigs = asset.localResource("./../../map_service_configs") -local globeIdentifier = asset.require("./../../mars").Mars.Identifier +local globeIdentifier = asset.require("../../mars").Mars.Identifier local layer = { Identifier = "HiRISE-LS", Name = "HiRISE Local Set", - FilePath = mapServiceConfigs .. "/ESRI/HiRISE/HiRISELS.vrt", + FilePath = asset.localResource("hirisels.vrt"), BlendMode = "Color", Description = [[ HiRISE (High Resolution Imaging Science Experiment) is the most powerful camera ever sent to another planet, one of six instruments onboard the @@ -20,22 +19,26 @@ local layer = { model (DTM) was available as of 2018.]], } -asset.onInitialize(function () +asset.onInitialize(function() openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer) end) +asset.onDeinitialize(function() + openspace.globebrowsing.deleteLayer(globeIdentifier, "ColorLayers", layer) +end) + asset.export("layer", layer) + asset.meta = { Name = "HiRISE Local Set", - Version = "1.0", + Version = "1.1", Description = [[HiRISE layer for images with corresponding DEMs. This map is hosted by ESRI.]], Author = "USGS", URL = "https://www.uahirise.org", - License = "Esri Master License Agreement", - Identifiers = {"HiRISE-LS"} + License = "Esri Master License Agreement" } diff --git a/data/assets/scene/solarsystem/planets/mars/map_service_configs/ESRI/HiRISE/HiRISELS.vrt b/data/assets/scene/solarsystem/planets/mars/layers/colorlayers/hirisels.vrt similarity index 92% rename from data/assets/scene/solarsystem/planets/mars/map_service_configs/ESRI/HiRISE/HiRISELS.vrt rename to data/assets/scene/solarsystem/planets/mars/layers/colorlayers/hirisels.vrt index 40a9f2d8c6..4c1dd0968f 100644 --- a/data/assets/scene/solarsystem/planets/mars/map_service_configs/ESRI/HiRISE/HiRISELS.vrt +++ b/data/assets/scene/solarsystem/planets/mars/layers/colorlayers/hirisels.vrt @@ -5,7 +5,7 @@ 0 Gray - HiRISELS.tif + hirisels.wms 1 @@ -17,7 +17,7 @@ Alpha 0 - HiRISELS.tif + hirisels.wms 1 diff --git a/data/assets/scene/solarsystem/planets/mars/map_service_configs/ESRI/HiRISE/HiRISELS.tif b/data/assets/scene/solarsystem/planets/mars/layers/colorlayers/hirisels.wms similarity index 100% rename from data/assets/scene/solarsystem/planets/mars/map_service_configs/ESRI/HiRISE/HiRISELS.tif rename to data/assets/scene/solarsystem/planets/mars/layers/colorlayers/hirisels.wms diff --git a/data/assets/scene/solarsystem/planets/mars/layers/colorlayers/mars_texture.asset b/data/assets/scene/solarsystem/planets/mars/layers/colorlayers/mars_texture.asset index 125d653a4b..911568c86f 100644 --- a/data/assets/scene/solarsystem/planets/mars/layers/colorlayers/mars_texture.asset +++ b/data/assets/scene/solarsystem/planets/mars/layers/colorlayers/mars_texture.asset @@ -1,20 +1,31 @@ -local texturesPath = asset.require("./../../mars_textures").TexturesPath -local globeIdentifier = asset.require("./../../mars").Mars.Identifier +local globeIdentifier = asset.require("../../mars").Mars.Identifier + +local texturesPath = asset.syncedResource({ + Name = "Mars Textures", + Type = "HttpSynchronization", + Identifier = "mars_textures", + Version = 1 +}) local layer = { Identifier = "Mars_Texture", Name = "Mars Texture", - FilePath = texturesPath .. "/mars.jpg", + FilePath = texturesPath .. "mars.jpg", Description = [[ Default jpg texture for Mars]] } -asset.onInitialize(function () +asset.onInitialize(function() openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer) end) +asset.onDeinitialize(function() + openspace.globebrowsing.deleteLayer(globeIdentifier, "ColorLayers", layer) +end) + asset.export("layer", layer) + asset.meta = { Name = "Mars Texutre", Version = "1.0", diff --git a/data/assets/scene/solarsystem/planets/mars/layers/colorlayers/moc_wa_color_liu.asset b/data/assets/scene/solarsystem/planets/mars/layers/colorlayers/moc_wa_color_sweden.asset similarity index 73% rename from data/assets/scene/solarsystem/planets/mars/layers/colorlayers/moc_wa_color_liu.asset rename to data/assets/scene/solarsystem/planets/mars/layers/colorlayers/moc_wa_color_sweden.asset index 71cf10ad69..853531dbec 100644 --- a/data/assets/scene/solarsystem/planets/mars/layers/colorlayers/moc_wa_color_liu.asset +++ b/data/assets/scene/solarsystem/planets/mars/layers/colorlayers/moc_wa_color_sweden.asset @@ -1,12 +1,11 @@ -local mapServiceConfigs = asset.localResource("./../../map_service_configs") -local globeIdentifier = asset.require("./../../mars").Mars.Identifier +local globeIdentifier = asset.require("../../mars").Mars.Identifier local fallbackLayer = asset.require("./fallbacks/mars_texture").layer local layer = { Identifier = "MOC_WA_Color_LiU", Name = "MOC WA Color [Sweden]", - FilePath = mapServiceConfigs .. "/LiU/Color.wms", + FilePath = asset.localResource("moc_wa_color_sweden.wms"), Settings = { Gamma = 1.6, Multiplier = 1.07 @@ -18,20 +17,24 @@ local layer = { https://www.jpl.nasa.gov/spaceimages/details.php?id=PIA03467.]], } -asset.onInitialize(function () +asset.onInitialize(function() openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer) end) +asset.onDeinitialize(function() + openspace.globebrowsing.deleteLayer(globeIdentifier, "ColorLayers", layer) +end) + asset.export("layer", layer) + asset.meta = { Name = "MOC WA Color [Sweden]", - Version = "1.0", + Version = "1.1", Description = [[Main color map layer for Mars. This map is hosted on the OpenSpace server in Sweden.]], Author = "OpenSpace Team", URL = "http://www.openspaceproject.com", - License = "NASA/PDS", - Identifiers = {"MOLA_HRSC_Sweden"} + License = "NASA/PDS" } diff --git a/data/assets/scene/solarsystem/planets/mars/map_service_configs/LiU/Color.wms b/data/assets/scene/solarsystem/planets/mars/layers/colorlayers/moc_wa_color_sweden.wms similarity index 100% rename from data/assets/scene/solarsystem/planets/mars/map_service_configs/LiU/Color.wms rename to data/assets/scene/solarsystem/planets/mars/layers/colorlayers/moc_wa_color_sweden.wms diff --git a/data/assets/scene/solarsystem/planets/mars/layers/colorlayers/moc_wa_color_utah.asset b/data/assets/scene/solarsystem/planets/mars/layers/colorlayers/moc_wa_color_utah.asset index d62edc34ed..94e23f2241 100644 --- a/data/assets/scene/solarsystem/planets/mars/layers/colorlayers/moc_wa_color_utah.asset +++ b/data/assets/scene/solarsystem/planets/mars/layers/colorlayers/moc_wa_color_utah.asset @@ -1,12 +1,11 @@ -local mapServiceConfigs = asset.localResource("./../../map_service_configs") -local globeIdentifier = asset.require("./../../mars").Mars.Identifier +local globeIdentifier = asset.require("../../mars").Mars.Identifier local fallbackLayer = asset.require("./fallbacks/mars_texture").layer local layer = { Identifier = "MOC_WA_Color_Utah", Name = "MOC WA Color [Utah]", - FilePath = mapServiceConfigs .. "/Utah/Mars_Color.wms", + FilePath = asset.localResource("moc_wa_color_utah.wms"), Settings = { Gamma = 1.6, Multiplier = 1.07 @@ -18,20 +17,24 @@ local layer = { https://www.jpl.nasa.gov/spaceimages/details.php?id=PIA03467]], } -asset.onInitialize(function () +asset.onInitialize(function() openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer) end) +asset.onDeinitialize(function() + openspace.globebrowsing.deleteLayer(globeIdentifier, "ColorLayers", layer) +end) + asset.export("layer", layer) + asset.meta = { Name = "MOC WA Color [Utah]", - Version = "1.0", + Version = "1.1", Description = [[Main color map layer for Mars. This map is hosted on the OpenSpace server in Utah.]], Author = "OpenSpace Team", URL = "http://www.openspaceproject.com", - License = "NASA/PDS", - Identifiers = {"MOC_WA_Color_Utah"} + License = "NASA/PDS" } diff --git a/data/assets/scene/solarsystem/planets/mars/map_service_configs/Utah/Mars_Color.wms b/data/assets/scene/solarsystem/planets/mars/layers/colorlayers/moc_wa_color_utah.wms similarity index 100% rename from data/assets/scene/solarsystem/planets/mars/map_service_configs/Utah/Mars_Color.wms rename to data/assets/scene/solarsystem/planets/mars/layers/colorlayers/moc_wa_color_utah.wms diff --git a/data/assets/scene/solarsystem/planets/mars/layers/colorlayers/mola_hrsc_sweden.asset b/data/assets/scene/solarsystem/planets/mars/layers/colorlayers/mola_hrsc_sweden.asset index d532c11131..93cd918697 100644 --- a/data/assets/scene/solarsystem/planets/mars/layers/colorlayers/mola_hrsc_sweden.asset +++ b/data/assets/scene/solarsystem/planets/mars/layers/colorlayers/mola_hrsc_sweden.asset @@ -1,30 +1,33 @@ -local mapServiceConfigs = asset.localResource("./../../map_service_configs") -local globeIdentifier = asset.require("./../../mars").Mars.Identifier +local globeIdentifier = asset.require("../../mars").Mars.Identifier local layer = { Identifier = "MOLA_HRSC_Sweden", Name = "MOLA HRSC [Sweden]", - FilePath = mapServiceConfigs .. "/LiU/Mola_HRSC.wms", + FilePath = asset.localResource("mola_hrsc_sweden.wms"), Description = [[ This map layer is colorzied based elevation data from MOLA and HRSC. Compared to MOLA Psuedo Color, this layer has no terrain shading, which is suitable for use when combing with other layers. Data Reference: https://astrogeology.usgs.gov/search/map/Mars/Topography/HRSC_MOLA_Blend/Mars_HRSC_MOLA_BlendDEM_Global_200mp_v2]], } -asset.onInitialize(function () +asset.onInitialize(function() openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer) end) +asset.onDeinitialize(function() + openspace.globebrowsing.deleteLayer(globeIdentifier, "ColorLayers", layer) +end) + asset.export("layer", layer) + asset.meta = { Name = "MOLA HRSC [Sweden]", - Version = "1.0", + Version = "1.1", Description = [[ Colorzied elevation data for Mars. This map is hosted on the OpenSpace server in Sweden.]], Author = "OpenSpace Team", URL = "http://www.openspaceproject.com", - License = "NASA/PDS", - Identifiers = {"MOLA_HRSC_Sweden"} + License = "NASA/PDS" } diff --git a/data/assets/scene/solarsystem/planets/mars/map_service_configs/LiU/Mola_HRSC.wms b/data/assets/scene/solarsystem/planets/mars/layers/colorlayers/mola_hrsc_sweden.wms similarity index 100% rename from data/assets/scene/solarsystem/planets/mars/map_service_configs/LiU/Mola_HRSC.wms rename to data/assets/scene/solarsystem/planets/mars/layers/colorlayers/mola_hrsc_sweden.wms diff --git a/data/assets/scene/solarsystem/planets/mars/layers/colorlayers/mola_hrsc_utah.asset b/data/assets/scene/solarsystem/planets/mars/layers/colorlayers/mola_hrsc_utah.asset index faf06c205d..5ed20cc70b 100644 --- a/data/assets/scene/solarsystem/planets/mars/layers/colorlayers/mola_hrsc_utah.asset +++ b/data/assets/scene/solarsystem/planets/mars/layers/colorlayers/mola_hrsc_utah.asset @@ -1,30 +1,33 @@ -local mapServiceConfigs = asset.localResource("./../../map_service_configs") -local globeIdentifier = asset.require("./../../mars").Mars.Identifier +local globeIdentifier = asset.require("../../mars").Mars.Identifier local layer = { Identifier = "MOLA_HRSC_Utah", Name = "MOLA HRSC [Utah]", - FilePath = mapServiceConfigs .. "/Utah/Mola_HRSC.wms", + FilePath = asset.localResource("mola_hrsc_utah.wms"), Description = [[ This map layer is colorzied based elevation data from MOLA and HRSC. Compared to MOLA Psuedo Color, this layer has no terrain shading, which is suitable for use when combing with other layers. Data Reference: https://astrogeology.usgs.gov/search/map/Mars/Topography/HRSC_MOLA_Blend/Mars_HRSC_MOLA_BlendDEM_Global_200mp_v2]], } -asset.onInitialize(function () +asset.onInitialize(function() openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer) end) +asset.onDeinitialize(function() + openspace.globebrowsing.deleteLayer(globeIdentifier, "ColorLayers", layer) +end) + asset.export("layer", layer) + asset.meta = { Name = "MOLA HRSC [Utah]", - Version = "1.0", + Version = "1.1", Description = [[ Colorzied elevation data for Mars. This map is hosted on the OpenSpace server in Sweden.]], Author = "OpenSpace Team", URL = "http://www.openspaceproject.com", - License = "NASA/PDS", - Identifiers = {"MOLA_HRSC_Sweden"} + License = "NASA/PDS" } diff --git a/data/assets/scene/solarsystem/planets/mars/map_service_configs/Utah/Mola_HRSC.wms b/data/assets/scene/solarsystem/planets/mars/layers/colorlayers/mola_hrsc_utah.wms similarity index 100% rename from data/assets/scene/solarsystem/planets/mars/map_service_configs/Utah/Mola_HRSC.wms rename to data/assets/scene/solarsystem/planets/mars/layers/colorlayers/mola_hrsc_utah.wms diff --git a/data/assets/scene/solarsystem/planets/mars/layers/colorlayers/mola_pseudo_color_sweden.asset b/data/assets/scene/solarsystem/planets/mars/layers/colorlayers/mola_pseudo_color_sweden.asset index f2595009a5..36d453325c 100644 --- a/data/assets/scene/solarsystem/planets/mars/layers/colorlayers/mola_pseudo_color_sweden.asset +++ b/data/assets/scene/solarsystem/planets/mars/layers/colorlayers/mola_pseudo_color_sweden.asset @@ -1,10 +1,9 @@ -local mapServiceConfigs = asset.localResource("./../../map_service_configs") -local globeIdentifier = asset.require("./../../mars").Mars.Identifier +local globeIdentifier = asset.require("../../mars").Mars.Identifier local layer = { Identifier = "MOLA_Pseudo_Color_Sweden", Name = "MOLA Pseudo Color [Sweden]", - FilePath = mapServiceConfigs .. "/LiU/Mola_PseudoColor.wms", + FilePath = asset.localResource("mola_pseudo_color_sweden.wms"), Description = [[This map is based on data from the Mars Orbiter Laser Altimeter (MOLA) (Smith, et al., 2001), an instrument on NASA’s Mars Global Surveyor (MGS) spacecraft (Albee, et al., 2001). The image used for the base of this map @@ -21,21 +20,25 @@ local layer = { is 463 meters per pixel (m). (Description from URL). Data Reference: (See URL).]], } -asset.onInitialize(function () +asset.onInitialize(function() openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer) end) +asset.onDeinitialize(function() + openspace.globebrowsing.deleteLayer(globeIdentifier, "ColorLayers", layer) +end) + asset.export("layer", layer) + asset.meta = { Name = "MOLA Pseudo Color [Sweden]", - Version = "1.0", + Version = "1.1", Description = [[ Colorzied elevation data for Mars (with shading). This map is hosted on the OpenSpace server in Sweden.]], Author = "USGS", URL = "https://astrogeology.usgs.gov/search/map/Mars/GlobalSurveyor/MOLA/" .. "Mars_MGS_MOLA_ClrShade_merge_global_463m", - License = "NASA/PDS", - Identifiers = {"MOLA_Pseudo_Color_Sweden"} + License = "NASA/PDS" } diff --git a/data/assets/scene/solarsystem/planets/mars/map_service_configs/LiU/Mola_PseudoColor.wms b/data/assets/scene/solarsystem/planets/mars/layers/colorlayers/mola_pseudo_color_sweden.wms similarity index 100% rename from data/assets/scene/solarsystem/planets/mars/map_service_configs/LiU/Mola_PseudoColor.wms rename to data/assets/scene/solarsystem/planets/mars/layers/colorlayers/mola_pseudo_color_sweden.wms diff --git a/data/assets/scene/solarsystem/planets/mars/layers/colorlayers/mola_pseudo_color_utah.asset b/data/assets/scene/solarsystem/planets/mars/layers/colorlayers/mola_pseudo_color_utah.asset index 06ab2bdca2..77e8872282 100644 --- a/data/assets/scene/solarsystem/planets/mars/layers/colorlayers/mola_pseudo_color_utah.asset +++ b/data/assets/scene/solarsystem/planets/mars/layers/colorlayers/mola_pseudo_color_utah.asset @@ -1,10 +1,9 @@ -local mapServiceConfigs = asset.localResource("./../../map_service_configs") -local globeIdentifier = asset.require("./../../mars").Mars.Identifier +local globeIdentifier = asset.require("../../mars").Mars.Identifier local layer = { Identifier = "MOLA_Pseudo_Color_Utah", Name = "MOLA Pseudo Color [Utah]", - FilePath = mapServiceConfigs .. "/Utah/Mola_PseudoColor.wms", + FilePath = asset.localResource("mola_pseudo_color_utah.wms"), Description = [[This map is based on data from the Mars Orbiter Laser Altimeter (MOLA) (Smith, et al., 2001), an instrument on NASA’s Mars Global Surveyor (MGS) spacecraft (Albee, et al., 2001). The image used for the base of this map @@ -21,21 +20,25 @@ local layer = { is 463 meters per pixel (m). (Description from URL). Data Reference: (See URL)]], } -asset.onInitialize(function () - openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer) +asset.onInitialize(function() + openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer) +end) + +asset.onDeinitialize(function() + openspace.globebrowsing.deleteLayer(globeIdentifier, "ColorLayers", layer) end) asset.export("layer", layer) + asset.meta = { Name = "MOLA Pseudo Color [Utah]", - Version = "1.0", + Version = "1.1", Description = [[ Colorzied elevation data for Mars (with shading). This map is hosted on the OpenSpace server in Utah.]], Author = "USGS", URL = "https://astrogeology.usgs.gov/search/map/Mars/GlobalSurveyor/MOLA/" .. "Mars_MGS_MOLA_ClrShade_merge_global_463m", - License = "NASA/PDS", - Identifiers = {"MOLA_Pseudo_Color_Utah"} + License = "NASA/PDS" } diff --git a/data/assets/scene/solarsystem/planets/mars/map_service_configs/Utah/Mola_PseudoColor.wms b/data/assets/scene/solarsystem/planets/mars/layers/colorlayers/mola_pseudo_color_utah.wms similarity index 100% rename from data/assets/scene/solarsystem/planets/mars/map_service_configs/Utah/Mola_PseudoColor.wms rename to data/assets/scene/solarsystem/planets/mars/layers/colorlayers/mola_pseudo_color_utah.wms diff --git a/data/assets/scene/solarsystem/planets/mars/layers/colorlayers/themis_ir_day_sweden.asset b/data/assets/scene/solarsystem/planets/mars/layers/colorlayers/themis_ir_day_sweden.asset index 8f31b54ba7..6d386e688f 100644 --- a/data/assets/scene/solarsystem/planets/mars/layers/colorlayers/themis_ir_day_sweden.asset +++ b/data/assets/scene/solarsystem/planets/mars/layers/colorlayers/themis_ir_day_sweden.asset @@ -1,10 +1,9 @@ -local mapServiceConfigs = asset.localResource("./../../map_service_configs") -local globeIdentifier = asset.require("./../../mars").Mars.Identifier +local globeIdentifier = asset.require("../../mars").Mars.Identifier local layer = { Identifier = "Themis_IR_Day_Sweden", Name = "Themis IR Day [Sweden]", - FilePath = mapServiceConfigs .. "/LiU/Themis_IR_Day.wms", + FilePath = asset.localResource("themis_ir_day_sweden.wms"), BlendMode = "Color", Description = [[This mosaic represents the Thermal Emission Imaging System (THEMIS) -daytime infrared (IR) 100 meter/pixel mosaic (version 12) released in the summer @@ -18,21 +17,25 @@ local layer = { (Description from URL).]], } -asset.onInitialize(function () +asset.onInitialize(function() openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer) end) +asset.onDeinitialize(function() + openspace.globebrowsing.deleteLayer(globeIdentifier, "ColorLayers", layer) +end) + asset.export("layer", layer) + asset.meta = { Name = "Themis IR Day [Sweden]", - Version = "1.0", + Version = "1.1", Description = [[Themis Day layer for Mars. This map is hosted on the OpenSpace server in Sweden.]], Author = "USGS", URL = "https://astrogeology.usgs.gov/search/map/Mars/Odyssey/THEMIS-IR-Mosaic-ASU/" .. "Mars_MO_THEMIS-IR-Day_mosaic_global_100m_v12", - License = "NASA/PDS", - Identifiers = {"Themis_IR_Day_Sweden"} + License = "NASA/PDS" } diff --git a/data/assets/scene/solarsystem/planets/mars/map_service_configs/LiU/Themis_IR_Day.wms b/data/assets/scene/solarsystem/planets/mars/layers/colorlayers/themis_ir_day_sweden.wms similarity index 100% rename from data/assets/scene/solarsystem/planets/mars/map_service_configs/LiU/Themis_IR_Day.wms rename to data/assets/scene/solarsystem/planets/mars/layers/colorlayers/themis_ir_day_sweden.wms diff --git a/data/assets/scene/solarsystem/planets/mars/layers/colorlayers/themis_ir_day_utah.asset b/data/assets/scene/solarsystem/planets/mars/layers/colorlayers/themis_ir_day_utah.asset index d01800cf9e..861700e630 100644 --- a/data/assets/scene/solarsystem/planets/mars/layers/colorlayers/themis_ir_day_utah.asset +++ b/data/assets/scene/solarsystem/planets/mars/layers/colorlayers/themis_ir_day_utah.asset @@ -1,10 +1,9 @@ -local mapServiceConfigs = asset.localResource("./../../map_service_configs") -local globeIdentifier = asset.require("./../../mars").Mars.Identifier +local globeIdentifier = asset.require("../../mars").Mars.Identifier local layer = { Identifier = "Themis_IR_Day_Utah", Name = "Themis IR Day [Utah]", - FilePath = mapServiceConfigs .. "/Utah/Themis_IR_Day.wms", + FilePath = asset.localResource("themis_ir_day_utah.wms"), BlendMode = "Color", Description = [[This mosaic represents the Thermal Emission Imaging System (THEMIS) -daytime infrared (IR) 100 meter/pixel mosaic (version 12) released in the summer @@ -18,21 +17,25 @@ local layer = { (Description from URL).]], } -asset.onInitialize(function () +asset.onInitialize(function() openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer) end) +asset.onDeinitialize(function() + openspace.globebrowsing.deleteLayer(globeIdentifier, "ColorLayers", layer) +end) + asset.export("layer", layer) + asset.meta = { Name = "Themis IR Day [Utah]", - Version = "1.0", + Version = "1.1", Description = [[Themis Day layer for Mars. This map is hosted on the OpenSpace server in Utah.]], Author = "USGS", URL = "https://astrogeology.usgs.gov/search/map/Mars/Odyssey/THEMIS-IR-Mosaic-ASU/" .. "Mars_MO_THEMIS-IR-Day_mosaic_global_100m_v12", - License = "NASA/PDS", - Identifiers = {"Themis_IR_Day_Utah"} + License = "NASA/PDS" } diff --git a/data/assets/scene/solarsystem/planets/mars/map_service_configs/Utah/Themis_IR_Day.wms b/data/assets/scene/solarsystem/planets/mars/layers/colorlayers/themis_ir_day_utah.wms similarity index 100% rename from data/assets/scene/solarsystem/planets/mars/map_service_configs/Utah/Themis_IR_Day.wms rename to data/assets/scene/solarsystem/planets/mars/layers/colorlayers/themis_ir_day_utah.wms diff --git a/data/assets/scene/solarsystem/planets/mars/layers/colorlayers/themis_ir_night_sweden.asset b/data/assets/scene/solarsystem/planets/mars/layers/colorlayers/themis_ir_night_sweden.asset index d4bfd6a9ad..4baf2cec7f 100644 --- a/data/assets/scene/solarsystem/planets/mars/layers/colorlayers/themis_ir_night_sweden.asset +++ b/data/assets/scene/solarsystem/planets/mars/layers/colorlayers/themis_ir_night_sweden.asset @@ -1,10 +1,9 @@ -local mapServiceConfigs = asset.localResource("./../../map_service_configs") -local globeIdentifier = asset.require("./../../mars").Mars.Identifier +local globeIdentifier = asset.require("../../mars").Mars.Identifier local layer = { Identifier = "Themis_IR_Night_Sweden", Name = "Themis IR Night [Sweden]", - FilePath = mapServiceConfigs .. "/LiU/Themis_IR_Night.wms", + FilePath = asset.localResource("themis_ir_night_sweden.wms"), BlendMode = "Color", Description = [[This mosaic represents the Thermal Emission Imaging System (THEMIS) -nighttime infrared (IR) 100 meter/pixel mosaic (version 12) released in the @@ -19,21 +18,25 @@ local layer = { URL).]], } -asset.onInitialize(function () +asset.onInitialize(function() openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer) end) +asset.onDeinitialize(function() + openspace.globebrowsing.deleteLayer(globeIdentifier, "ColorLayers", layer) +end) + asset.export("layer", layer) + asset.meta = { Name = "Themis IR Night [Sweden]", - Version = "1.0", + Version = "1.1", Description = [[Themis Night layer for Mars. This map is hosted on the OpenSpace server in Sweden.]], Author = "USGS", URL = "https://astrogeology.usgs.gov/search/map/Mars/Odyssey/THEMIS-IR-Mosaic-ASU/" .. "Mars_MO_THEMIS-IR-Night_mosaic_60N60S_100m_v14", - License = "NASA/PDS", - Identifiers = {"Themis_IR_Night_Sweden"} + License = "NASA/PDS" } diff --git a/data/assets/scene/solarsystem/planets/mars/map_service_configs/LiU/Themis_IR_Night.wms b/data/assets/scene/solarsystem/planets/mars/layers/colorlayers/themis_ir_night_sweden.wms similarity index 100% rename from data/assets/scene/solarsystem/planets/mars/map_service_configs/LiU/Themis_IR_Night.wms rename to data/assets/scene/solarsystem/planets/mars/layers/colorlayers/themis_ir_night_sweden.wms diff --git a/data/assets/scene/solarsystem/planets/mars/layers/colorlayers/themis_ir_night_utah.asset b/data/assets/scene/solarsystem/planets/mars/layers/colorlayers/themis_ir_night_utah.asset index b2f1b72f38..12ce8f479b 100644 --- a/data/assets/scene/solarsystem/planets/mars/layers/colorlayers/themis_ir_night_utah.asset +++ b/data/assets/scene/solarsystem/planets/mars/layers/colorlayers/themis_ir_night_utah.asset @@ -1,10 +1,9 @@ -local mapServiceConfigs = asset.localResource("./../../map_service_configs") -local globeIdentifier = asset.require("./../../mars").Mars.Identifier +local globeIdentifier = asset.require("../../mars").Mars.Identifier local layer = { Identifier = "Themis_IR_Night_Utah", Name = "Themis IR Night [Utah]", - FilePath = mapServiceConfigs .. "/Utah/Themis_IR_Night.wms", + FilePath = asset.localResource("themis_ir_night_utah.wms"), BlendMode = "Color", Description = [[This mosaic represents the Thermal Emission Imaging System (THEMIS) -nighttime infrared (IR) 100 meter/pixel mosaic (version 12) released in the @@ -19,21 +18,25 @@ local layer = { URL).]], } -asset.onInitialize(function () +asset.onInitialize(function() openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer) end) +asset.onDeinitialize(function() + openspace.globebrowsing.deleteLayer(globeIdentifier, "ColorLayers", layer) +end) + asset.export("layer", layer) + asset.meta = { Name = "Themis IR Night [Utah]", - Version = "1.0", + Version = "1.1", Description = [[Themis Night layer for Mars. This map is hosted on the OpenSpace server in Utah.]], Author = "USGS", URL = "https://astrogeology.usgs.gov/search/map/Mars/Odyssey/THEMIS-IR-Mosaic-ASU/" .. "Mars_MO_THEMIS-IR-Night_mosaic_60N60S_100m_v14", - License = "NASA/PDS", - Identifiers = {"Themis_IR_Night_Utah"} + License = "NASA/PDS" } diff --git a/data/assets/scene/solarsystem/planets/mars/map_service_configs/Utah/Themis_IR_Night.wms b/data/assets/scene/solarsystem/planets/mars/layers/colorlayers/themis_ir_night_utah.wms similarity index 100% rename from data/assets/scene/solarsystem/planets/mars/map_service_configs/Utah/Themis_IR_Night.wms rename to data/assets/scene/solarsystem/planets/mars/layers/colorlayers/themis_ir_night_utah.wms diff --git a/data/assets/scene/solarsystem/planets/mars/layers/colorlayers/viking_mdim_sweden.asset b/data/assets/scene/solarsystem/planets/mars/layers/colorlayers/viking_mdim_sweden.asset index dc2d73a5d6..8e2a5db8fc 100644 --- a/data/assets/scene/solarsystem/planets/mars/layers/colorlayers/viking_mdim_sweden.asset +++ b/data/assets/scene/solarsystem/planets/mars/layers/colorlayers/viking_mdim_sweden.asset @@ -1,10 +1,9 @@ -local mapServiceConfigs = asset.localResource("./../../map_service_configs") -local globeIdentifier = asset.require("./../../mars").Mars.Identifier +local globeIdentifier = asset.require("../../mars").Mars.Identifier local layer = { Identifier = "Viking_MDIM_Sweden", Name = "Viking MDIM [Sweden]", - FilePath = mapServiceConfigs .. "/LiU/MDIM.wms", + FilePath = asset.localResource("viking_mdim_sweden.wms"), Description = [[This global image map of Mars has a resolution of 256 pixels/degree (scale approximately 232 meters per pixel (m) at the equator). The colorized mosaic was completed by NASA AMES which warped the original Viking colorized @@ -26,21 +25,25 @@ local layer = { references available here: http://astrogeology.usgs.gov/maps/mdim-2-1 ]], } -asset.onInitialize(function () +asset.onInitialize(function() openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer) end) +asset.onDeinitialize(function() + openspace.globebrowsing.deleteLayer(globeIdentifier, "ColorLayers", layer) +end) + asset.export("layer", layer) + asset.meta = { Name = "Viking MDIM [Sweden]", - Version = "1.0", + Version = "1.1", Description = [[ Alternate image layer for Mars. This map is hosted on the OpenSpace server in Sweden.]], Author = "USGS", URL = "https://astrogeology.usgs.gov/search/map/Mars/Viking/MDIM21/" .. "Mars_Viking_MDIM21_ClrMosaic_global_232m", - License = "NASA/PDS", - Identifiers = {"Viking_MDIM_Sweden"} + License = "NASA/PDS" } diff --git a/data/assets/scene/solarsystem/planets/mars/map_service_configs/LiU/MDIM.wms b/data/assets/scene/solarsystem/planets/mars/layers/colorlayers/viking_mdim_sweden.wms similarity index 100% rename from data/assets/scene/solarsystem/planets/mars/map_service_configs/LiU/MDIM.wms rename to data/assets/scene/solarsystem/planets/mars/layers/colorlayers/viking_mdim_sweden.wms diff --git a/data/assets/scene/solarsystem/planets/mars/layers/colorlayers/viking_mdim_utah.asset b/data/assets/scene/solarsystem/planets/mars/layers/colorlayers/viking_mdim_utah.asset index d5d9fe3faf..dc4c31dd40 100644 --- a/data/assets/scene/solarsystem/planets/mars/layers/colorlayers/viking_mdim_utah.asset +++ b/data/assets/scene/solarsystem/planets/mars/layers/colorlayers/viking_mdim_utah.asset @@ -1,10 +1,9 @@ -local mapServiceConfigs = asset.localResource("./../../map_service_configs") -local globeIdentifier = asset.require("./../../mars").Mars.Identifier +local globeIdentifier = asset.require("../../mars").Mars.Identifier local layer = { Identifier = "Viking_MDIM_Utah", Name = "Viking MDIM [Utah]", - FilePath = mapServiceConfigs .. "/Utah/Mdim.wms", + FilePath = asset.localResource("viking_mdim_utah.wms"), Description = [[This global image map of Mars has a resolution of 256 pixels/degree (scale approximately 232 meters per pixel (m) at the equator). The colorized mosaic was completed by NASA AMES which warped the original Viking colorized @@ -26,21 +25,25 @@ local layer = { references available here: http://astrogeology.usgs.gov/maps/mdim-2-1 ]], } -asset.onInitialize(function () +asset.onInitialize(function() openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer) end) +asset.onDeinitialize(function() + openspace.globebrowsing.deleteLayer(globeIdentifier, "ColorLayers", layer) +end) + asset.export("layer", layer) + asset.meta = { Name = "Viking MDIM [Utah]", - Version = "1.0", + Version = "1.1", Description = [[ Alternate image layer for Mars. This map is hosted on the OpenSpace server in Utah.]], Author = "USGS", URL = "https://astrogeology.usgs.gov/search/map/Mars/Viking/MDIM21/" .. "Mars_Viking_MDIM21_ClrMosaic_global_232m", - License = "NASA/PDS", - Identifiers = {"Viking_MDIM_Utah"} + License = "NASA/PDS" } diff --git a/data/assets/scene/solarsystem/planets/mars/map_service_configs/Utah/Mdim.wms b/data/assets/scene/solarsystem/planets/mars/layers/colorlayers/viking_mdim_utah.wms similarity index 100% rename from data/assets/scene/solarsystem/planets/mars/map_service_configs/Utah/Mdim.wms rename to data/assets/scene/solarsystem/planets/mars/layers/colorlayers/viking_mdim_utah.wms diff --git a/data/assets/scene/solarsystem/planets/mars/layers/heightlayers/MDEM200M.asset b/data/assets/scene/solarsystem/planets/mars/layers/heightlayers/MDEM200M.asset index fefc177186..07249e7d89 100644 --- a/data/assets/scene/solarsystem/planets/mars/layers/heightlayers/MDEM200M.asset +++ b/data/assets/scene/solarsystem/planets/mars/layers/heightlayers/MDEM200M.asset @@ -1,10 +1,9 @@ -local mapServiceConfigs = asset.localResource("./../../map_service_configs") -local globeIdentifier = asset.require("./../../mars").Mars.Identifier +local globeIdentifier = asset.require("../../mars").Mars.Identifier local layer = { Identifier = "MDEM200M", Name = "HRSC MOLA Blended DEM Global 200m v2", - FilePath = mapServiceConfigs .. "/ESRI/MDEM200M.tif", + FilePath = asset.localResource("mdem200m.wms"), Description = [[ Blend of data derived from the Mars Orbiter Laser Altimeter (MOLA, an instrument aboard NASA’s Mars Global Surveyor spacecraft), and data derived from the High-Resolution @@ -12,24 +11,28 @@ local layer = { Express spacecraft). The average accuracy is ~100 meters in horizontal position and the elevation uncertainty is at least ±3 m. This tiled elevation layer, hosted by Esri, is made available using - lossless LERC compression.(Description from URL).]], + lossless LERC compression. (Description from URL).]], } -asset.onInitialize(function () +asset.onInitialize(function() openspace.globebrowsing.addLayer(globeIdentifier, "HeightLayers", layer) end) +asset.onDeinitialize(function() + openspace.globebrowsing.deleteLayer(globeIdentifier, "HeightLayers", layer) +end) + asset.export("layer", layer) + asset.meta = { Name = "Mars HRSC MOLA Blended DEM Global 200m v2", - Version = "1.0", + Version = "1.1", Description = [[ESRI Hosted ars HRSC MOLA Blended DEM.]], Author = "esri_astro", URL = "https://www.arcgis.com/home/item.html?id=225adad86379474ebc3d51a74573c99b", - License = "Esri Master License Agreement", - Identifiers = {"MDEM200M"} + License = "Esri Master License Agreement" } diff --git a/data/assets/scene/solarsystem/planets/mars/layers/heightlayers/hirisels.asset b/data/assets/scene/solarsystem/planets/mars/layers/heightlayers/hirisels.asset index 795213cff8..98dba0edb9 100644 --- a/data/assets/scene/solarsystem/planets/mars/layers/heightlayers/hirisels.asset +++ b/data/assets/scene/solarsystem/planets/mars/layers/heightlayers/hirisels.asset @@ -1,10 +1,9 @@ -local mapServiceConfigs = asset.localResource("./../../map_service_configs") -local globeIdentifier = asset.require("./../../mars").Mars.Identifier +local globeIdentifier = asset.require("../../mars").Mars.Identifier local layer = { Identifier = "HiRISE-LS-DEM", Name = "HiRISE Local Set DEM", - FilePath = mapServiceConfigs .. "/ESRI/HiRISE/HiRISE_DEM.dem", + FilePath = asset.localResource("hirisels.wms"), Description = [[ HiRISE (High Resolution Imaging Science Experiment) is the most powerful camera ever sent to another planet, one of six instruments onboard the Mars Reconnaissance Orbiter. We launched in 2005, arrived at Mars in 2006 and have @@ -18,22 +17,26 @@ local layer = { DEM where available as of 2018.]], } -asset.onInitialize(function () +asset.onInitialize(function() openspace.globebrowsing.addLayer(globeIdentifier, "HeightLayers", layer) end) +asset.onDeinitialize(function() + openspace.globebrowsing.deleteLayer(globeIdentifier, "HeightLayers", layer) +end) + asset.export("layer", layer) + asset.meta = { Name = "HiRISE Local Set DEM", - Version = "1.0", + Version = "1.1", Description = [[HiRISE DEM layer for corresponding Local Set imager. This map is hosted by ESRI.]], Author = "USGS", URL = "https://www.uahirise.org", - License = "Esri Master License Agreement", - Identifiers = {"HiRISE-LS-DEM"} + License = "Esri Master License Agreement" } diff --git a/data/assets/scene/solarsystem/planets/mars/map_service_configs/ESRI/HiRISE/HiRISE_DEM.dem b/data/assets/scene/solarsystem/planets/mars/layers/heightlayers/hirisels.wms similarity index 100% rename from data/assets/scene/solarsystem/planets/mars/map_service_configs/ESRI/HiRISE/HiRISE_DEM.dem rename to data/assets/scene/solarsystem/planets/mars/layers/heightlayers/hirisels.wms diff --git a/data/assets/scene/solarsystem/planets/mars/map_service_configs/ESRI/MDEM200M.tif b/data/assets/scene/solarsystem/planets/mars/layers/heightlayers/mdem200m.wms similarity index 98% rename from data/assets/scene/solarsystem/planets/mars/map_service_configs/ESRI/MDEM200M.tif rename to data/assets/scene/solarsystem/planets/mars/layers/heightlayers/mdem200m.wms index 11e11e6d3e..afbe84aefd 100644 --- a/data/assets/scene/solarsystem/planets/mars/map_service_configs/ESRI/MDEM200M.tif +++ b/data/assets/scene/solarsystem/planets/mars/layers/heightlayers/mdem200m.wms @@ -1,17 +1,17 @@ - - - http://astro.arcgis.com/arcgis/rest/services/OnMars/MDEM200M/ImageServer/tile/${z}/${y}/${x} - - - -180.0 90.0 - 180.0 -90.0 - 131328 65664 - 7 top - - GEOGCS["GCS_Mars_2000_Sphere",DATUM["D_Mars_2000_Sphere",SPHEROID["Mars_2000_Sphere_IAU_IAG",3396190.0,0.0]],PRIMEM["Reference_Meridian",0.0],UNIT["Degree",0.0174532925199433]] - 513 513 - 1 Int16 - - 5 - 404,400 - + + + http://astro.arcgis.com/arcgis/rest/services/OnMars/MDEM200M/ImageServer/tile/${z}/${y}/${x} + + + -180.0 90.0 + 180.0 -90.0 + 131328 65664 + 7 top + + GEOGCS["GCS_Mars_2000_Sphere",DATUM["D_Mars_2000_Sphere",SPHEROID["Mars_2000_Sphere_IAU_IAG",3396190.0,0.0]],PRIMEM["Reference_Meridian",0.0],UNIT["Degree",0.0174532925199433]] + 513 513 + 1 Int16 + + 5 + 404,400 + diff --git a/data/assets/scene/solarsystem/planets/mars/layers/heightlayers/mola_europe.asset b/data/assets/scene/solarsystem/planets/mars/layers/heightlayers/mola_sweden.asset similarity index 83% rename from data/assets/scene/solarsystem/planets/mars/layers/heightlayers/mola_europe.asset rename to data/assets/scene/solarsystem/planets/mars/layers/heightlayers/mola_sweden.asset index 7943fe4196..231a7dbf06 100644 --- a/data/assets/scene/solarsystem/planets/mars/layers/heightlayers/mola_europe.asset +++ b/data/assets/scene/solarsystem/planets/mars/layers/heightlayers/mola_sweden.asset @@ -1,10 +1,9 @@ -local mapServiceConfigs = asset.localResource("./../../map_service_configs") -local globeIdentifier = asset.require("./../../mars").Mars.Identifier +local globeIdentifier = asset.require("../../mars").Mars.Identifier local layer = { Identifier = "Mola_Europe", Name = "Mola Elevation [Sweden]", - FilePath = mapServiceConfigs .. "/LiU/Mola_Elevation.wms", + FilePath = asset.localResource("mola_sweden.wms"), TilePixelSize = 90, Description = [[ This digital elevation model (DEM) is based on data from the Mars Orbiter Laser Altimeter (MOLA; Smith et al., 2001), an instrument on NASA's Mars @@ -22,21 +21,25 @@ local layer = { URL). Data Reference: (See URL).]], } -asset.onInitialize(function () +asset.onInitialize(function() openspace.globebrowsing.addLayer(globeIdentifier, "HeightLayers", layer) end) +asset.onDeinitialize(function() + openspace.globebrowsing.deleteLayer(globeIdentifier, "HeightLayers", layer) +end) + asset.export("layer", layer) + asset.meta = { Name = "Mola Elevation [Sweden]", - Version = "1.0", + Version = "1.1", Author = "USGS", Description = [[ Global elevation layer for Mars. This layer is hosted on the OpenSpace server in Sweden.]], URL = "https://astrogeology.usgs.gov/search/map/Mars/GlobalSurveyor/MOLA/" .. "Mars_MGS_MOLA_DEM_mosaic_global_463m", - License = "NASA/PDS", - Identifiers = {"Mola_Europe"} + License = "NASA/PDS" } diff --git a/data/assets/scene/solarsystem/planets/mars/map_service_configs/LiU/Mola_Elevation.wms b/data/assets/scene/solarsystem/planets/mars/layers/heightlayers/mola_sweden.wms similarity index 100% rename from data/assets/scene/solarsystem/planets/mars/map_service_configs/LiU/Mola_Elevation.wms rename to data/assets/scene/solarsystem/planets/mars/layers/heightlayers/mola_sweden.wms diff --git a/data/assets/scene/solarsystem/planets/mars/layers/heightlayers/mola_utah.asset b/data/assets/scene/solarsystem/planets/mars/layers/heightlayers/mola_utah.asset index ed377660bc..550672c7be 100644 --- a/data/assets/scene/solarsystem/planets/mars/layers/heightlayers/mola_utah.asset +++ b/data/assets/scene/solarsystem/planets/mars/layers/heightlayers/mola_utah.asset @@ -1,10 +1,9 @@ -local mapServiceConfigs = asset.localResource("./../../map_service_configs") -local globeIdentifier = asset.require("./../../mars").Mars.Identifier +local globeIdentifier = asset.require("../../mars").Mars.Identifier local layer = { Identifier = "Mola_Utah", Name = "Mola Elevation [Utah]", - FilePath = mapServiceConfigs .. "/Utah/Mola_Elevation.wms", + FilePath = asset.localResource("mola_utah.wms"), TilePixelSize = 90, Description = [[ This digital elevation model (DEM) is based on data from the Mars Orbiter Laser Altimeter (MOLA; Smith et al., 2001), an instrument on NASA's Mars @@ -22,21 +21,25 @@ local layer = { URL). Data Reference: (See URL).]], } -asset.onInitialize(function () +asset.onInitialize(function() openspace.globebrowsing.addLayer(globeIdentifier, "HeightLayers", layer) end) +asset.onDeinitialize(function() + openspace.globebrowsing.deleteLayer(globeIdentifier, "HeightLayers", layer) +end) + asset.export("layer", layer) + asset.meta = { Name = "Mola Elevation [Utah]", - Version = "1.0", + Version = "1.1", Description = [[ Global elevation layer for Mars. This layer is hosted on the OpenSpace server in Utah.]], Author = "USGS", URL = "https://astrogeology.usgs.gov/search/map/Mars/GlobalSurveyor/MOLA/" .. "Mars_MGS_MOLA_DEM_mosaic_global_463m", - License = "NASA/PDS", - Identifiers = {"Mola_Utah"} + License = "NASA/PDS" } diff --git a/data/assets/scene/solarsystem/planets/mars/map_service_configs/Utah/Mola_Elevation.wms b/data/assets/scene/solarsystem/planets/mars/layers/heightlayers/mola_utah.wms similarity index 100% rename from data/assets/scene/solarsystem/planets/mars/map_service_configs/Utah/Mola_Elevation.wms rename to data/assets/scene/solarsystem/planets/mars/layers/heightlayers/mola_utah.wms diff --git a/data/assets/scene/solarsystem/planets/mars/layers/overlays/indices.asset b/data/assets/scene/solarsystem/planets/mars/layers/overlays/indices.asset index 84a291e4a8..a601d8d2ff 100644 --- a/data/assets/scene/solarsystem/planets/mars/layers/overlays/indices.asset +++ b/data/assets/scene/solarsystem/planets/mars/layers/overlays/indices.asset @@ -1,12 +1,26 @@ -local globeIdentifier = asset.require("./../../mars").Mars.Identifier +local globeIdentifier = asset.require("../../mars").Mars.Identifier local layer = { Identifier = "Indices", Type = "TileIndexTileLayer" } -asset.onInitialize(function () +asset.onInitialize(function() openspace.globebrowsing.addLayer(globeIdentifier, "Overlays", layer) end) +asset.onDeinitialize(function() + openspace.globebrowsing.deleteLayer(globeIdentifier, "Overlays", layer) +end) + asset.export("layer", layer) + + +asset.meta = { + Name = "Mars Indices", + Version = "1.0", + Description = [[ This asset supplies a tile index layer for the Mars globe.]], + Author = "OpenSpace Team", + URL = "http://openspaceproject.com", + License = "MIT license" +} diff --git a/data/assets/scene/solarsystem/planets/mars/layers/overlays/size_reference.asset b/data/assets/scene/solarsystem/planets/mars/layers/overlays/size_reference.asset index 0fa6e5d926..bcb7cb6884 100644 --- a/data/assets/scene/solarsystem/planets/mars/layers/overlays/size_reference.asset +++ b/data/assets/scene/solarsystem/planets/mars/layers/overlays/size_reference.asset @@ -1,4 +1,4 @@ -local marsAsset = asset.require("./../../mars").Mars +local marsAsset = asset.require("../../mars").Mars local globeIdentifier = marsAsset.Identifier local layer ={ @@ -8,8 +8,23 @@ local layer ={ Radii = marsAsset.Renderable.Radii } -asset.onInitialize(function () +asset.onInitialize(function() openspace.globebrowsing.addLayer(globeIdentifier, "Overlays", layer) end) +asset.onDeinitialize(function() + openspace.globebrowsing.deleteLayer(globeIdentifier, "Overlays", layer) +end) + asset.export("layer", layer) + + + +asset.meta = { + Name = "Mars Size Reference", + Version = "1.0", + Description = [[ This asset supplies a size reference layer for the Mars globe.]], + Author = "OpenSpace Team", + URL = "http://openspaceproject.com", + License = "MIT license" +} diff --git a/data/assets/scene/solarsystem/planets/mars/map_service_configs/ESRI/CTX/CTXblended.info b/data/assets/scene/solarsystem/planets/mars/map_service_configs/ESRI/CTX/CTXblended.info deleted file mode 100644 index 4f06d09ec6..0000000000 --- a/data/assets/scene/solarsystem/planets/mars/map_service_configs/ESRI/CTX/CTXblended.info +++ /dev/null @@ -1,5 +0,0 @@ -Name = "CTX Blended beta01" -Identifier = "CTXblended" -Description = "Seam-corrected and seam-mapped mosaic of Mars CTX created by Jay Dixon at The Murray Lab" -HeightFile = nil -ColorFile = "CTXblended.vrt" diff --git a/data/assets/scene/solarsystem/planets/mars/map_service_configs/ESRI/HiRISE/OnMarsHiRISE.info b/data/assets/scene/solarsystem/planets/mars/map_service_configs/ESRI/HiRISE/OnMarsHiRISE.info deleted file mode 100644 index 62cefd7d58..0000000000 --- a/data/assets/scene/solarsystem/planets/mars/map_service_configs/ESRI/HiRISE/OnMarsHiRISE.info +++ /dev/null @@ -1,5 +0,0 @@ -Name="HiRISE Local Set" -Identifier="OnMarsHiRISELS" -Description=[[ This map contains a subet set of the HiRISE imagaery, only containing locations where a corresponding HiRISE digital terrain model (DTM) was available.]] -ColorFile="HiRISELS.vrt" -HeightFile="HiRISE_DEM.wms" \ No newline at end of file diff --git a/data/assets/scene/solarsystem/planets/mars/map_service_configs/LiU/Mola_CTX.wms b/data/assets/scene/solarsystem/planets/mars/map_service_configs/LiU/Mola_CTX.wms deleted file mode 100644 index e5f9f9f92a..0000000000 --- a/data/assets/scene/solarsystem/planets/mars/map_service_configs/LiU/Mola_CTX.wms +++ /dev/null @@ -1,20 +0,0 @@ - - - http://wms.itn.liu.se/Mars/Mola_CTX/tile/${z}/${y}/${x} - - - -180.0 - 90.0 - 180.0 - -90.0 - 46080 - 23040 - 7 - top - - PROJCS["Mars2000_ECylindrical_clon0",GEOGCS["GCS_Mars_2000_Sphere",DATUM["Mars_2000_Sphere",SPHEROID["Mars_2000_Sphere",3396190,0]],PRIMEM["Reference_Meridian",0],UNIT["degree",0.0174532925199433]],PROJECTION["Equirectangular"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",0],PARAMETER["standard_parallel_1",0],PARAMETER["false_easting",0],PARAMETER["false_northing",0],UNIT["metre",1,AUTHORITY["EPSG","9001"]]] - 256 - 256 - 1 - 10 - diff --git a/data/assets/scene/solarsystem/planets/mars/map_service_configs/MARS_Viking_MDIM21.wms b/data/assets/scene/solarsystem/planets/mars/map_service_configs/MARS_Viking_MDIM21.wms deleted file mode 100644 index 81d024b430..0000000000 --- a/data/assets/scene/solarsystem/planets/mars/map_service_configs/MARS_Viking_MDIM21.wms +++ /dev/null @@ -1,17 +0,0 @@ - - - http://d1poygwgh8gv6r.cloudfront.net/catalog/Mars_Viking_MDIM21_ClrMosaic_global_232m/1.0.0//default/default028mm/${z}/${y}/${x}.jpg - image/jpg - - - 8 - 2 - 1 - top - - EPSG:4326 - 256 - 256 - 3 - 5 - diff --git a/data/assets/scene/solarsystem/planets/mars/map_service_configs/Utah/MolaCTX_Elevation.wms b/data/assets/scene/solarsystem/planets/mars/map_service_configs/Utah/MolaCTX_Elevation.wms deleted file mode 100644 index 7671ec557a..0000000000 --- a/data/assets/scene/solarsystem/planets/mars/map_service_configs/Utah/MolaCTX_Elevation.wms +++ /dev/null @@ -1,14 +0,0 @@ - - - http://asgard.sci.utah.edu/MolaCTX/tile/${z}/${y}/${x} - Mola Elevation - - - -180.0 - 90.0 - 180.0 - -90.0 - bottom - - 5 - diff --git a/data/assets/scene/solarsystem/planets/mars/mar097.asset b/data/assets/scene/solarsystem/planets/mars/mar097.asset deleted file mode 100644 index 70af8b1c5f..0000000000 --- a/data/assets/scene/solarsystem/planets/mars/mar097.asset +++ /dev/null @@ -1,8 +0,0 @@ -local Kernels = asset.syncedResource({ - Name = "Mars Spice Kernels", - Type = "HttpSynchronization", - Identifier = "mars_kernels", - Version = 1 -}) - -asset.export("Kernels", Kernels .. '/mar097.bsp') diff --git a/data/assets/scene/solarsystem/planets/mars/mars.asset b/data/assets/scene/solarsystem/planets/mars/mars.asset index 38ea1c813f..03ae56507b 100644 --- a/data/assets/scene/solarsystem/planets/mars/mars.asset +++ b/data/assets/scene/solarsystem/planets/mars/mars.asset @@ -1,8 +1,13 @@ -local transforms = asset.require('./transforms') -local assetHelper = asset.require('util/asset_helper') +local transforms = asset.require("./transforms") asset.require("spice/base") -asset.require('./trail') -local labelsPath = asset.require('./mars_globelabels').LabelsPath +asset.require("./trail") + +local labelsPath = asset.syncedResource({ + Name = "Mars Labels", + Type = "HttpSynchronization", + Identifier = "mars_labels", + Version = 1 +}) -- local marsRadii = { 3396190.0, 3396190.0, 3376200.0 } local marsRadii = { 3396190.0, 3396190.0, 3396190.0 } @@ -29,7 +34,7 @@ local Mars = { Layers = {}, Labels = { Enabled = false, - FileName = labelsPath .. "/mars.labels", + FileName = labelsPath .. "mars.labels", AlignmentOption = "Horizontally", -- or Circularly FontSize = 20.0, Size = 8.7, @@ -75,15 +80,26 @@ local MarsLabel = { } } -assetHelper.registerSceneGraphNodesAndExport(asset, { Mars, MarsLabel }) +asset.onInitialize(function() + openspace.addSceneGraphNode(Mars) + openspace.addSceneGraphNode(MarsLabel) +end) + +asset.onDeinitialize(function() + openspace.removeSceneGraphNode(MarsLabel) + openspace.removeSceneGraphNode(Mars) +end) + +asset.export(Mars) +asset.export(MarsLabel) + asset.meta = { Name = "Mars", - Version = "1.0", + Version = "1.1", Description = [[ Mars globe, and main globe label.]], Author = "OpenSpace Team", URL = "http://openspaceproject.com", - License = "MIT license", - Identifiers = {"Mars", "MarsLabel"} + License = "MIT license" } diff --git a/data/assets/scene/solarsystem/planets/mars/mars_globelabels.asset b/data/assets/scene/solarsystem/planets/mars/mars_globelabels.asset deleted file mode 100644 index ca47fef12e..0000000000 --- a/data/assets/scene/solarsystem/planets/mars/mars_globelabels.asset +++ /dev/null @@ -1,7 +0,0 @@ -local LabelsPath = asset.syncedResource({ - Name = "Mars Labels", - Type = "HttpSynchronization", - Identifier = "mars_labels", - Version = 1 -}) -asset.export("LabelsPath", LabelsPath) diff --git a/data/assets/scene/solarsystem/planets/mars/mars_textures.asset b/data/assets/scene/solarsystem/planets/mars/mars_textures.asset deleted file mode 100644 index 757bad1d08..0000000000 --- a/data/assets/scene/solarsystem/planets/mars/mars_textures.asset +++ /dev/null @@ -1,7 +0,0 @@ -local TexturesPath = asset.syncedResource({ - Name = "Mars Textures", - Type = "HttpSynchronization", - Identifier = "mars_textures", - Version = 1 -}) -asset.export("TexturesPath", TexturesPath) diff --git a/data/assets/scene/solarsystem/planets/mars/moons/deimos.asset b/data/assets/scene/solarsystem/planets/mars/moons/deimos.asset index a7b3d5e7aa..bb9f981936 100644 --- a/data/assets/scene/solarsystem/planets/mars/moons/deimos.asset +++ b/data/assets/scene/solarsystem/planets/mars/moons/deimos.asset @@ -1,7 +1,11 @@ -local transforms = asset.require('../transforms') -local assetHelper = asset.require('util/asset_helper') -local kernels = asset.require('../mar097').Kernels +local transforms = asset.require("../transforms") +local kernels = asset.syncedResource({ + Name = "Mars Spice Kernels", + Type = "HttpSynchronization", + Identifier = "mars_kernels", + Version = 1 +}) local Deimos = { Identifier = "Deimos", @@ -11,13 +15,13 @@ local Deimos = { Type = "SpiceRotation", SourceFrame = "IAU_DEIMOS", DestinationFrame = "GALACTIC", - Kernels = kernels + Kernels = kernels .. "mar097.bsp" }, Translation = { Type = "SpiceTranslation", Target = "DEIMOS", Observer = "MARS BARYCENTER", - Kernels = kernels + Kernels = kernels .. "mar097.bsp" } }, Renderable = { @@ -56,15 +60,26 @@ local DeimosTrail = { } } -assetHelper.registerSceneGraphNodesAndExport(asset, { Deimos, DeimosTrail }) +asset.onInitialize(function() + openspace.addSceneGraphNode(Deimos) + openspace.addSceneGraphNode(DeimosTrail) +end) + +asset.onDeinitialize(function() + openspace.removeSceneGraphNode(DeimosTrail) + openspace.removeSceneGraphNode(Deimos) +end) + +asset.export(Deimos) +asset.export(DeimosTrail) + asset.meta = { Name = "Deimos", - Version = "1.0", + Version = "1.1", Description = [[ RenderableGlobe and Trail for Deimos.]], Author = "OpenSpace Team", URL = "http://openspaceproject.com", - License = "MIT license", - Identifiers = {"Deimos", "DeimosTrail"} + License = "MIT license" } diff --git a/data/assets/scene/solarsystem/planets/mars/moons/layers/colorlayers/deimos_viking.asset b/data/assets/scene/solarsystem/planets/mars/moons/layers/colorlayers/deimos_viking.asset index e2d8bcc965..a07f1b275f 100644 --- a/data/assets/scene/solarsystem/planets/mars/moons/layers/colorlayers/deimos_viking.asset +++ b/data/assets/scene/solarsystem/planets/mars/moons/layers/colorlayers/deimos_viking.asset @@ -1,4 +1,4 @@ -local globeIdentifier = asset.require("./../../deimos").Deimos.Identifier +local globeIdentifier = asset.require("../../deimos").Deimos.Identifier local layer = { Identifier = "Deimos_Global_Mosaic_USGS", @@ -11,18 +11,22 @@ local layer = { released 26 October 2001. (Description from URL)]] } -asset.onInitialize(function () +asset.onInitialize(function() openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer) end) +asset.onDeinitialize(function() + openspace.globebrowsing.deleteLayer(globeIdentifier, "ColorLayers", layer) +end) + asset.export("layer", layer) + asset.meta = { Name = "Deimos Global Mosaic [USGS]", - Version = "1.0", + Version = "1.1", Author = "Philip Stooke/NASA", URL = "https://astrowebmaps.wr.usgs.gov/webmapatlas/Layers/maps.html", - License = "NASA/PDS", - Identifiers = {'Deimos_Global_Mosaic_USGS'} + License = "NASA/PDS" } diff --git a/data/assets/scene/solarsystem/planets/mars/moons/layers/colorlayers/phobos_viking.asset b/data/assets/scene/solarsystem/planets/mars/moons/layers/colorlayers/phobos_viking.asset index a753881a56..d4f2b61ef5 100644 --- a/data/assets/scene/solarsystem/planets/mars/moons/layers/colorlayers/phobos_viking.asset +++ b/data/assets/scene/solarsystem/planets/mars/moons/layers/colorlayers/phobos_viking.asset @@ -1,4 +1,4 @@ -local globeIdentifier = asset.require("./../../phobos").Phobos.Identifier +local globeIdentifier = asset.require("../../phobos").Phobos.Identifier local layer = { Identifier = "Phobos_Global_Shaded_Relief_USGS", @@ -8,18 +8,22 @@ local layer = { Description = [[ Viking-base Phobos shaded relief created by USGS.]] } -asset.onInitialize(function () +asset.onInitialize(function() openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer) end) +asset.onDeinitialize(function() + openspace.globebrowsing.deleteLayer(globeIdentifier, "ColorLayers", layer) +end) + asset.export("layer", layer) + asset.meta = { Name = "Phobos Global Shaded Relief [USGS]", - Version = "1.0", + Version = "1.1", Author = "USGS/NASA", URL = "https://astrowebmaps.wr.usgs.gov/webmapatlas/Layers/maps.html", - License = "NASA/PDS", - Identifiers = {'Phobos_Global_Shaded_Relief_USGS'} + License = "NASA/PDS" } diff --git a/data/assets/scene/solarsystem/planets/mars/moons/phobos.asset b/data/assets/scene/solarsystem/planets/mars/moons/phobos.asset index 353c73e320..81223634ca 100644 --- a/data/assets/scene/solarsystem/planets/mars/moons/phobos.asset +++ b/data/assets/scene/solarsystem/planets/mars/moons/phobos.asset @@ -1,7 +1,11 @@ -local transforms = asset.require('../transforms') -local assetHelper = asset.require('util/asset_helper') -local kernels = asset.require('../mar097').Kernels +local transforms = asset.require("../transforms") +local kernels = asset.syncedResource({ + Name = "Mars Spice Kernels", + Type = "HttpSynchronization", + Identifier = "mars_kernels", + Version = 1 +}) local Phobos = { Identifier = "Phobos", @@ -11,13 +15,13 @@ local Phobos = { Type = "SpiceRotation", SourceFrame = "IAU_PHOBOS", DestinationFrame = "GALACTIC", - Kernels = kernels + Kernels = kernels .. "mar097.bsp" }, Translation = { Type = "SpiceTranslation", Target = "PHOBOS", Observer = "MARS BARYCENTER", - Kernels = kernels + Kernels = kernels .. "mar097.bsp" } }, Renderable = { @@ -56,15 +60,26 @@ local PhobosTrail = { } } -assetHelper.registerSceneGraphNodesAndExport(asset, { Phobos, PhobosTrail }) +asset.onInitialize(function() + openspace.addSceneGraphNode(Phobos) + openspace.addSceneGraphNode(PhobosTrail) +end) + +asset.onDeinitialize(function() + openspace.removeSceneGraphNode(PhobosTrail) + openspace.removeSceneGraphNode(Phobos) +end) + +asset.export(Phobos) +asset.export(PhobosTrail) + asset.meta = { Name = "Phobos", - Version = "1.0", + Version = "1.1", Description = [[ RenderableGlobe and Trail for Phobos.]], Author = "OpenSpace Team", URL = "http://openspaceproject.com", - License = "MIT license", - Identifiers = {"Phobos", "PhobosTrail"} + License = "MIT license" } diff --git a/data/assets/scene/solarsystem/planets/mars/trail.asset b/data/assets/scene/solarsystem/planets/mars/trail.asset index 78e8eea805..e1b81178f4 100644 --- a/data/assets/scene/solarsystem/planets/mars/trail.asset +++ b/data/assets/scene/solarsystem/planets/mars/trail.asset @@ -1,5 +1,4 @@ -local assetHelper = asset.require('util/asset_helper') -local transforms = asset.require('scene/solarsystem/sun/transforms') +local transforms = asset.require("scene/solarsystem/sun/transforms") asset.require("spice/base") @@ -27,15 +26,23 @@ local MarsTrail = { } } -assetHelper.registerSceneGraphNodesAndExport(asset, { MarsTrail }) +asset.onInitialize(function() + openspace.addSceneGraphNode(MarsTrail) +end) + +asset.onDeinitialize(function() + openspace.removeSceneGraphNode(MarsTrail) +end) + +asset.export(MarsTrail) + asset.meta = { Name = "Mars Trail", - Version = "1.0", + Version = "1.1", Description = [[ Main Mars trail from SPICE.]], Author = "OpenSpace Team", URL = "http://openspaceproject.com", - License = "MIT license", - Identifiers = {"MarsTrail"} + License = "MIT license" } diff --git a/data/assets/scene/solarsystem/planets/mars/trail_earth.asset b/data/assets/scene/solarsystem/planets/mars/trail_earth.asset index 0863042ef5..6e0e1874cf 100644 --- a/data/assets/scene/solarsystem/planets/mars/trail_earth.asset +++ b/data/assets/scene/solarsystem/planets/mars/trail_earth.asset @@ -1,6 +1,5 @@ -local assetHelper = asset.require('util/asset_helper') -local transforms = asset.require('scene/solarsystem/sun/transforms') -local earthTransforms = asset.require('scene/solarsystem/planets/earth/transforms') +local transforms = asset.require("scene/solarsystem/sun/transforms") +local earthTransforms = asset.require("scene/solarsystem/planets/earth/transforms") asset.require("spice/base") @@ -29,16 +28,24 @@ local MarsTrailEarth = { } } -assetHelper.registerSceneGraphNodesAndExport(asset, { MarsTrailEarth }) +asset.onInitialize(function() + openspace.addSceneGraphNode(MarsTrailEarth) +end) + +asset.onDeinitialize(function() + openspace.removeSceneGraphNode(MarsTrailEarth) +end) + +asset.export(MarsTrailEarth) + asset.meta = { Name = "Mars Trail from Earth", - Version = "1.0", + Version = "1.1", Description = [[ Trail of Mars, parented to Earth with Earth as the SPICE observer. Data from NASA SPICE (see base spice asset)]], Author = "OpenSpace Team", URL = "http://openspaceproject.com", - License = "MIT license", - Identifiers = {"MarsTrailEarth"} + License = "MIT license" } diff --git a/data/assets/scene/solarsystem/planets/mars/transforms.asset b/data/assets/scene/solarsystem/planets/mars/transforms.asset index 7b8fb79dbf..e373087398 100644 --- a/data/assets/scene/solarsystem/planets/mars/transforms.asset +++ b/data/assets/scene/solarsystem/planets/mars/transforms.asset @@ -1,5 +1,4 @@ -local assetHelper = asset.require('util/asset_helper') -local transforms = asset.require('scene/solarsystem/sun/transforms') +local transforms = asset.require("scene/solarsystem/sun/transforms") asset.require("spice/base") local MarsBarycenter = { @@ -20,15 +19,23 @@ local MarsBarycenter = { } } -assetHelper.registerSceneGraphNodesAndExport(asset, { MarsBarycenter }) +asset.onInitialize(function() + openspace.addSceneGraphNode(MarsBarycenter) +end) + +asset.onDeinitialize(function() + openspace.removeSceneGraphNode(MarsBarycenter) +end) + +asset.export(MarsBarycenter) + asset.meta = { Name = "Mars Transforms", - Version = "1.0", + Version = "1.1", Description = [[ Transform with position for Mars.]], Author = "OpenSpace Team", URL = "http://openspaceproject.com", - License = "MIT license", - Identifiers = {"MarsBarycenter"} + License = "MIT license" } diff --git a/data/assets/scene/solarsystem/planets/mercury/default_layers.asset b/data/assets/scene/solarsystem/planets/mercury/default_layers.asset index 1193812a21..b5b9eba9b5 100644 --- a/data/assets/scene/solarsystem/planets/mercury/default_layers.asset +++ b/data/assets/scene/solarsystem/planets/mercury/default_layers.asset @@ -1,39 +1,39 @@ -local colorLayersPath = "./layers/colorlayers" - --mdis -asset.require(colorLayersPath .. "/messenger_mdis_utah") -asset.require(colorLayersPath .. "/messenger_mdis_sweden") +asset.require("./layers/colorlayers/messenger_mdis_utah") +asset.require("./layers/colorlayers/messenger_mdis_sweden") --mossaic -asset.require(colorLayersPath .. "/messenger_mosaic_utah") -asset.require(colorLayersPath .. "/messenger_mosaic_sweden") +asset.require("./layers/colorlayers/messenger_mosaic_utah") +asset.require("./layers/colorlayers/messenger_mosaic_sweden") --mosaic2 aka 8 color -asset.require(colorLayersPath .. "/messenger_mosaic2_utah") -asset.require(colorLayersPath .. "/messenger_mosaic2_sweden") +asset.require("./layers/colorlayers/messenger_mosaic2_utah") +asset.require("./layers/colorlayers/messenger_mosaic2_sweden") --bdr -local colorLayer = asset.require(colorLayersPath .. "/messenger_bdr_utah") -- TODO enabled -asset.require(colorLayersPath .. "/messenger_bdr_sweden") +local colorLayer = asset.require("./layers/colorlayers/messenger_bdr_utah") -- TODO enabled +asset.require("./layers/colorlayers/messenger_bdr_sweden") --mdr -asset.require(colorLayersPath .. "/messenger_mdr_utah") +asset.require("./layers/colorlayers/messenger_mdr_utah") --mp3 -asset.require(colorLayersPath .. "/messenger_mp3_utah") +asset.require("./layers/colorlayers/messenger_mp3_utah") --hie -asset.require(colorLayersPath .. "/messenger_hie_utah") -asset.require(colorLayersPath .. "/messenger_hie_sweden") +asset.require("./layers/colorlayers/messenger_hie_utah") +asset.require("./layers/colorlayers/messenger_hie_sweden") --hiw -asset.require(colorLayersPath .. "/messenger_hiw_utah") -asset.require(colorLayersPath .. "/messenger_hiw_sweden") +asset.require("./layers/colorlayers/messenger_hiw_utah") +asset.require("./layers/colorlayers/messenger_hiw_sweden") --loi -asset.require(colorLayersPath .. "/messenger_loi_utah") -asset.require(colorLayersPath .. "/messenger_loi_sweden") +asset.require("./layers/colorlayers/messenger_loi_utah") +asset.require("./layers/colorlayers/messenger_loi_sweden") --shade -asset.require(colorLayersPath .. "/messenger_shade_utah") -asset.require(colorLayersPath .. "/messenger_shade_sweden") +asset.require("./layers/colorlayers/messenger_shade_utah") +asset.require("./layers/colorlayers/messenger_shade_sweden") --local textures, these are mineral abundance maps -asset.require(colorLayersPath .. "/alsimap_02122015") -asset.require(colorLayersPath .. "/casimap_02122015") -asset.require(colorLayersPath .. "/fesimap_02122015") -asset.require(colorLayersPath .. "/mgsimap_02122015") -asset.require(colorLayersPath .. "/ssimap_02122015") +asset.require("./layers/colorlayers/alsimap_02122015") +asset.require("./layers/colorlayers/casimap_02122015") +asset.require("./layers/colorlayers/fesimap_02122015") +asset.require("./layers/colorlayers/mgsimap_02122015") +asset.require("./layers/colorlayers/ssimap_02122015") + +asset.require("./layers/heightlayers/messenger_dem_utah") -- Set enabled layers (temporary solution) -- @TODO: do this using a boolean that's passed to the 'asset.require' instead diff --git a/data/assets/scene/solarsystem/planets/mercury/layers/colorlayers/alsimap_02122015.asset b/data/assets/scene/solarsystem/planets/mercury/layers/colorlayers/alsimap_02122015.asset index 7ded2c0167..683a6830da 100644 --- a/data/assets/scene/solarsystem/planets/mercury/layers/colorlayers/alsimap_02122015.asset +++ b/data/assets/scene/solarsystem/planets/mercury/layers/colorlayers/alsimap_02122015.asset @@ -1,15 +1,36 @@ -local texturesPath = asset.require("./../../mercury_textures").TexturesPath -local globeIdentifier = asset.require("./../../mercury").Mercury.Identifier +local globeIdentifier = asset.require("../../mercury").Mercury.Identifier + +local texturesPath = asset.syncedResource({ + Name = "Mercury Textures", + Type = "HttpSynchronization", + Identifier = "mercury_abundance_textures", + Version = 1 +}) local layer = { Name = "Aluminium Abundance", Identifier = "alsimap_02122015", - FilePath = texturesPath .. "/alsimap_02122015.png", + FilePath = texturesPath .. "alsimap_02122015.png", BlendMode = "Multiply", } -asset.onInitialize(function () +asset.onInitialize(function() openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer) end) +asset.onDeinitialize(function() + openspace.globebrowsing.deleteLayer(globeIdentifier, "ColorLayers", layer) +end) + asset.export("layer", layer) + + + +asset.meta = { + Name = "Mercury Aluminium Abundance", + Version = "1.0", + Description = [[ Aluminium Abundance layer for Mercury globe]], + Author = "OpenSpace Team", + URL = "http://openspaceproject.com", + License = "MIT license" +} diff --git a/data/assets/scene/solarsystem/planets/mercury/layers/colorlayers/casimap_02122015.asset b/data/assets/scene/solarsystem/planets/mercury/layers/colorlayers/casimap_02122015.asset index 32f3535fd6..39b4ff4faa 100644 --- a/data/assets/scene/solarsystem/planets/mercury/layers/colorlayers/casimap_02122015.asset +++ b/data/assets/scene/solarsystem/planets/mercury/layers/colorlayers/casimap_02122015.asset @@ -1,15 +1,37 @@ -local texturesPath = asset.require("./../../mercury_textures").TexturesPath -local globeIdentifier = asset.require("./../../mercury").Mercury.Identifier +local globeIdentifier = asset.require("../../mercury").Mercury.Identifier + +local texturesPath = asset.syncedResource({ + Name = "Mercury Textures", + Type = "HttpSynchronization", + Identifier = "mercury_abundance_textures", + Version = 1 +}) local layer = { Name = "Calcium Abundance", Identifier = "casimap_02122015", - FilePath = texturesPath .. "/casimap_02122015.png", + FilePath = texturesPath .. "casimap_02122015.png", BlendMode = "Multiply", } -asset.onInitialize(function () +asset.onInitialize(function() openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer) end) +asset.onDeinitialize(function() + openspace.globebrowsing.deleteLayer(globeIdentifier, "ColorLayers", layer) +end) + asset.export("layer", layer) + + + + +asset.meta = { + Name = "Mercury Calcium Abundance", + Version = "1.0", + Description = [[ Calcium Abundance layer for Mercury globe]], + Author = "OpenSpace Team", + URL = "http://openspaceproject.com", + License = "MIT license" +} diff --git a/data/assets/scene/solarsystem/planets/mercury/layers/colorlayers/fesimap_02122015.asset b/data/assets/scene/solarsystem/planets/mercury/layers/colorlayers/fesimap_02122015.asset index dd3c272b19..e014f11702 100644 --- a/data/assets/scene/solarsystem/planets/mercury/layers/colorlayers/fesimap_02122015.asset +++ b/data/assets/scene/solarsystem/planets/mercury/layers/colorlayers/fesimap_02122015.asset @@ -1,15 +1,37 @@ -local texturesPath = asset.require("./../../mercury_textures").TexturesPath -local globeIdentifier = asset.require("./../../mercury").Mercury.Identifier +local globeIdentifier = asset.require("../../mercury").Mercury.Identifier + +local texturesPath = asset.syncedResource({ + Name = "Mercury Textures", + Type = "HttpSynchronization", + Identifier = "mercury_abundance_textures", + Version = 1 +}) local layer = { Name = "Iron Abundance", Identifier = "fesimap_02122015", - FilePath = texturesPath .. "/fesimap_02122015.png", + FilePath = texturesPath .. "fesimap_02122015.png", BlendMode = "Multiply", } -asset.onInitialize(function () +asset.onInitialize(function() openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer) end) +asset.onDeinitialize(function() + openspace.globebrowsing.deleteLayer(globeIdentifier, "ColorLayers", layer) +end) + asset.export("layer", layer) + + + + +asset.meta = { + Name = "Mercury Iron Abundance", + Version = "1.0", + Description = [[ Iron Abundance layer for Mercury globe]], + Author = "OpenSpace Team", + URL = "http://openspaceproject.com", + License = "MIT license" +} diff --git a/data/assets/scene/solarsystem/planets/mercury/layers/colorlayers/messenger_bdr_sweden.asset b/data/assets/scene/solarsystem/planets/mercury/layers/colorlayers/messenger_bdr_sweden.asset index 5c1be9ae17..017ef4ad1b 100644 --- a/data/assets/scene/solarsystem/planets/mercury/layers/colorlayers/messenger_bdr_sweden.asset +++ b/data/assets/scene/solarsystem/planets/mercury/layers/colorlayers/messenger_bdr_sweden.asset @@ -1,15 +1,38 @@ -local mapServiceConfigs = asset.localResource("./../../map_service_configs") -local globeIdentifier = asset.require("./../../mercury").Mercury.Identifier +local globeIdentifier = asset.require("../../mercury").Mercury.Identifier local layer = { Identifier = "Messenger_BDR_Sweden", Name = "Messenger BDR [Sweden]", - FilePath = mapServiceConfigs .. "/LiU/Messenger_BDR.wms", + FilePath = asset.localResource("messenger_bdr_sweden.wms"), TilePixelSize = 360, + Description = [[The Map Projected Basemap RDR (BDR) data set consists of a global + monochrome map of reflectance at a resolution of 256 pixels per degree (~166 m/p). + This edition, version 1, was released May 6, 2016 to the Planetary Data System (PDS) + MESSENGER archive. It is compiled using NAC or WAC 750-nm images from any campaign that + best fit the intended illumination geometry or low emission angle and incidence angle + near 74 degrees. It is controlled and projected onto a global digital elevation model. It uses + a Kasseleinin-Shkuratov photometric model, whose parameters are the same for any given + wavelength band across all MESSENGER end-of-mission map data products.]] } -asset.onInitialize(function () +asset.onInitialize(function() openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer) end) +asset.onDeinitialize(function() + openspace.globebrowsing.deleteLayer(globeIdentifier, "ColorLayers", layer) +end) + asset.export("layer", layer) + + + +asset.meta = { + Name = "Messenger BDR [Sweden]", + Version = "1.0", + Description = [[ Mercury MESSENGER MDIS Global Basemap BDR 166m layer for Mercury globe. + This map is hosted on the OpenSpace server in Sweden.]], + Author = "USGS", + URL = "https://astrogeology.usgs.gov/search/map/Mercury/Messenger/Global/Mercury_MESSENGER_MDIS_Basemap_BDR_Mosaic_Global_166m", + License = "NASA/PDS" +} diff --git a/data/assets/scene/solarsystem/planets/mercury/map_service_configs/LiU/Messenger_BDR.wms b/data/assets/scene/solarsystem/planets/mercury/layers/colorlayers/messenger_bdr_sweden.wms similarity index 100% rename from data/assets/scene/solarsystem/planets/mercury/map_service_configs/LiU/Messenger_BDR.wms rename to data/assets/scene/solarsystem/planets/mercury/layers/colorlayers/messenger_bdr_sweden.wms diff --git a/data/assets/scene/solarsystem/planets/mercury/layers/colorlayers/messenger_bdr_utah.asset b/data/assets/scene/solarsystem/planets/mercury/layers/colorlayers/messenger_bdr_utah.asset index 739f312e00..2acff83235 100644 --- a/data/assets/scene/solarsystem/planets/mercury/layers/colorlayers/messenger_bdr_utah.asset +++ b/data/assets/scene/solarsystem/planets/mercury/layers/colorlayers/messenger_bdr_utah.asset @@ -1,15 +1,38 @@ -local mapServiceConfigs = asset.localResource("./../../map_service_configs") -local globeIdentifier = asset.require("./../../mercury").Mercury.Identifier +local globeIdentifier = asset.require("../../mercury").Mercury.Identifier local layer = { Identifier = "Messenger_BDR_Utah", Name = "Messenger BDR [Utah]", - FilePath = mapServiceConfigs .. "/Utah/MessengerBDR.wms", + FilePath = asset.localResource("messenger_bdr_utah.wms"), TilePixelSize = 360, + Description = [[The Map Projected Basemap RDR (BDR) data set consists of a global + monochrome map of reflectance at a resolution of 256 pixels per degree (~166 m/p). + This edition, version 1, was released May 6, 2016 to the Planetary Data System (PDS) + MESSENGER archive. It is compiled using NAC or WAC 750-nm images from any campaign that + best fit the intended illumination geometry or low emission angle and incidence angle + near 74 degrees. It is controlled and projected onto a global digital elevation model. It uses + a Kasseleinin-Shkuratov photometric model, whose parameters are the same for any given + wavelength band across all MESSENGER end-of-mission map data products.]] } -asset.onInitialize(function () +asset.onInitialize(function() openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer) end) +asset.onDeinitialize(function() + openspace.globebrowsing.deleteLayer(globeIdentifier, "ColorLayers", layer) +end) + asset.export("layer", layer) + + + +asset.meta = { + Name = "Messenger BDR [Utah]", + Version = "1.0", + Description = [[ Mercury MESSENGER MDIS Global Basemap BDR 166m layer for Mercury globe. + This map is hosted on the OpenSpace server in Utah.]], + Author = "USGS", + URL = "https://astrogeology.usgs.gov/search/map/Mercury/Messenger/Global/Mercury_MESSENGER_MDIS_Basemap_BDR_Mosaic_Global_166m", + License = "NASA/PDS" +} diff --git a/data/assets/scene/solarsystem/planets/mercury/map_service_configs/Utah/MessengerBDR.wms b/data/assets/scene/solarsystem/planets/mercury/layers/colorlayers/messenger_bdr_utah.wms similarity index 100% rename from data/assets/scene/solarsystem/planets/mercury/map_service_configs/Utah/MessengerBDR.wms rename to data/assets/scene/solarsystem/planets/mercury/layers/colorlayers/messenger_bdr_utah.wms diff --git a/data/assets/scene/solarsystem/planets/mercury/layers/colorlayers/messenger_hie_sweden.asset b/data/assets/scene/solarsystem/planets/mercury/layers/colorlayers/messenger_hie_sweden.asset index 808b5726c9..fadefbb18c 100644 --- a/data/assets/scene/solarsystem/planets/mercury/layers/colorlayers/messenger_hie_sweden.asset +++ b/data/assets/scene/solarsystem/planets/mercury/layers/colorlayers/messenger_hie_sweden.asset @@ -1,14 +1,30 @@ -local mapServiceConfigs = asset.localResource("./../../map_service_configs") -local globeIdentifier = asset.require("./../../mercury").Mercury.Identifier +local globeIdentifier = asset.require("../../mercury").Mercury.Identifier local layer = { Identifier = "Messenger_HIE_Sweden", Name = "Messenger HIE [Sweden]", - FilePath = mapServiceConfigs .. "/LiU/Messenger_HIE.wms", + FilePath = asset.localResource("messenger_hie_sweden.wms") } -asset.onInitialize(function () +asset.onInitialize(function() openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer) end) +asset.onDeinitialize(function() + openspace.globebrowsing.deleteLayer(globeIdentifier, "ColorLayers", layer) +end) + asset.export("layer", layer) + + + +asset.meta = { + Name = "Messenger HIE [Sweden]", + Version = "1.0", + Description = [[ Mercury HIE layer for Mercury globe. + This map is hosted on the OpenSpace server in Sweden.]], + Author = "USGS", + URL = "", + License = "NASA/PDS" +} + diff --git a/data/assets/scene/solarsystem/planets/mercury/map_service_configs/LiU/Messenger_HIE.wms b/data/assets/scene/solarsystem/planets/mercury/layers/colorlayers/messenger_hie_sweden.wms similarity index 100% rename from data/assets/scene/solarsystem/planets/mercury/map_service_configs/LiU/Messenger_HIE.wms rename to data/assets/scene/solarsystem/planets/mercury/layers/colorlayers/messenger_hie_sweden.wms diff --git a/data/assets/scene/solarsystem/planets/mercury/layers/colorlayers/messenger_hie_utah.asset b/data/assets/scene/solarsystem/planets/mercury/layers/colorlayers/messenger_hie_utah.asset index 0e5c229df6..5b2249f632 100644 --- a/data/assets/scene/solarsystem/planets/mercury/layers/colorlayers/messenger_hie_utah.asset +++ b/data/assets/scene/solarsystem/planets/mercury/layers/colorlayers/messenger_hie_utah.asset @@ -1,14 +1,29 @@ -local mapServiceConfigs = asset.localResource("./../../map_service_configs") -local globeIdentifier = asset.require("./../../mercury").Mercury.Identifier +local globeIdentifier = asset.require("../../mercury").Mercury.Identifier local layer = { Identifier = "Messenger_HIE_Utah", Name = "Messenger HIE [Utah]", - FilePath = mapServiceConfigs .. "/Utah/MessengerHIE.wms", + FilePath = asset.localResource("messenger_hie_utah.wms") } -asset.onInitialize(function () +asset.onInitialize(function() openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer) end) +asset.onDeinitialize(function() + openspace.globebrowsing.deleteLayer(globeIdentifier, "ColorLayers", layer) +end) + asset.export("layer", layer) + + + +asset.meta = { + Name = "Messenger HIE [Utah]", + Version = "1.0", + Description = [[ Mercury HIE layer for Mercury globe. + This map is hosted on the OpenSpace server in Utah.]], + Author = "USGS", + URL = "", + License = "NASA/PDS" +} diff --git a/data/assets/scene/solarsystem/planets/mercury/map_service_configs/Utah/MessengerHIE.wms b/data/assets/scene/solarsystem/planets/mercury/layers/colorlayers/messenger_hie_utah.wms similarity index 100% rename from data/assets/scene/solarsystem/planets/mercury/map_service_configs/Utah/MessengerHIE.wms rename to data/assets/scene/solarsystem/planets/mercury/layers/colorlayers/messenger_hie_utah.wms diff --git a/data/assets/scene/solarsystem/planets/mercury/layers/colorlayers/messenger_hiw_sweden.asset b/data/assets/scene/solarsystem/planets/mercury/layers/colorlayers/messenger_hiw_sweden.asset index bb2fd1bf06..9176323dc2 100644 --- a/data/assets/scene/solarsystem/planets/mercury/layers/colorlayers/messenger_hiw_sweden.asset +++ b/data/assets/scene/solarsystem/planets/mercury/layers/colorlayers/messenger_hiw_sweden.asset @@ -1,14 +1,31 @@ -local mapServiceConfigs = asset.localResource("./../../map_service_configs") -local globeIdentifier = asset.require("./../../mercury").Mercury.Identifier +local globeIdentifier = asset.require("../../mercury").Mercury.Identifier local layer = { Identifier = "Messenger_HIW_Sweden", Name = "Messenger HIW [Sweden]", - FilePath = mapServiceConfigs .. "/LiU/Messenger_HIW.wms", + FilePath = asset.localResource("messenger_hiw_sweden.wms") } -asset.onInitialize(function () +asset.onInitialize(function() openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer) end) +asset.onDeinitialize(function() + openspace.globebrowsing.deleteLayer(globeIdentifier, "ColorLayers", layer) +end) + asset.export("layer", layer) + + + +asset.meta = { + Name = "Messenger HIW [Sweden]", + Version = "1.0", + Description = [[ Messenger HIW layer for Mercury globe. + This map is hosted on the OpenSpace server in Sweden.]], + Author = "USGS", + URL = "", + License = "NASA/PDS" +} + + diff --git a/data/assets/scene/solarsystem/planets/mercury/map_service_configs/LiU/Messenger_HIW.wms b/data/assets/scene/solarsystem/planets/mercury/layers/colorlayers/messenger_hiw_sweden.wms similarity index 100% rename from data/assets/scene/solarsystem/planets/mercury/map_service_configs/LiU/Messenger_HIW.wms rename to data/assets/scene/solarsystem/planets/mercury/layers/colorlayers/messenger_hiw_sweden.wms diff --git a/data/assets/scene/solarsystem/planets/mercury/layers/colorlayers/messenger_hiw_utah.asset b/data/assets/scene/solarsystem/planets/mercury/layers/colorlayers/messenger_hiw_utah.asset index 4eccc97a04..f1fe3a0bd9 100644 --- a/data/assets/scene/solarsystem/planets/mercury/layers/colorlayers/messenger_hiw_utah.asset +++ b/data/assets/scene/solarsystem/planets/mercury/layers/colorlayers/messenger_hiw_utah.asset @@ -1,14 +1,30 @@ -local mapServiceConfigs = asset.localResource("./../../map_service_configs") -local globeIdentifier = asset.require("./../../mercury").Mercury.Identifier +local globeIdentifier = asset.require("../../mercury").Mercury.Identifier local layer = { Identifier = "Messenger_HIW_Utah", Name = "Messenger HIW [Utah]", - FilePath = mapServiceConfigs .. "/Utah/MessengerHIW.wms", + FilePath = asset.localResource("messenger_hiw_utah.wms") } -asset.onInitialize(function () +asset.onInitialize(function() openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer) end) +asset.onDeinitialize(function() + openspace.globebrowsing.deleteLayer(globeIdentifier, "ColorLayers", layer) +end) + asset.export("layer", layer) + + + +asset.meta = { + Name = "Messenger HIW [Utah]", + Version = "1.0", + Description = [[ Messenger HIW layer for Mercury globe. + This map is hosted on the OpenSpace server in Utah.]], + Author = "USGS", + URL = "", + License = "NASA/PDS" +} + diff --git a/data/assets/scene/solarsystem/planets/mercury/map_service_configs/Utah/MessengerHIW.wms b/data/assets/scene/solarsystem/planets/mercury/layers/colorlayers/messenger_hiw_utah.wms similarity index 100% rename from data/assets/scene/solarsystem/planets/mercury/map_service_configs/Utah/MessengerHIW.wms rename to data/assets/scene/solarsystem/planets/mercury/layers/colorlayers/messenger_hiw_utah.wms diff --git a/data/assets/scene/solarsystem/planets/mercury/layers/colorlayers/messenger_loi_sweden.asset b/data/assets/scene/solarsystem/planets/mercury/layers/colorlayers/messenger_loi_sweden.asset index a6f1749c87..de14d966e2 100644 --- a/data/assets/scene/solarsystem/planets/mercury/layers/colorlayers/messenger_loi_sweden.asset +++ b/data/assets/scene/solarsystem/planets/mercury/layers/colorlayers/messenger_loi_sweden.asset @@ -1,14 +1,30 @@ -local mapServiceConfigs = asset.localResource("./../../map_service_configs") -local globeIdentifier = asset.require("./../../mercury").Mercury.Identifier +local globeIdentifier = asset.require("../../mercury").Mercury.Identifier local layer = { Identifier = "Messenger_LOI_Sweden", Name = "Messenger LOI [Sweden]", - FilePath = mapServiceConfigs .. "/LiU/Messenger_LOI.wms", + FilePath = asset.localResource("messenger_loi_sweden.wms") } -asset.onInitialize(function () +asset.onInitialize(function() openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer) end) +asset.onDeinitialize(function() + openspace.globebrowsing.deleteLayer(globeIdentifier, "ColorLayers", layer) +end) + asset.export("layer", layer) + + + +asset.meta = { + Name = "Messenger LOI [Sweden]", + Version = "1.0", + Description = [[ Mercury LOI layer for Mercury globe. + This map is hosted on the OpenSpace server in Sweden.]], + Author = "USGS", + URL = "https://astrogeology.usgs.gov/search/map/Mercury/Messenger/Global/Mercury_MESSENGER_MDIS_Basemap_LOI_Mosaic_Global_166m", + License = "NASA/PDS" +} + diff --git a/data/assets/scene/solarsystem/planets/mercury/map_service_configs/LiU/Messenger_LOI.wms b/data/assets/scene/solarsystem/planets/mercury/layers/colorlayers/messenger_loi_sweden.wms similarity index 100% rename from data/assets/scene/solarsystem/planets/mercury/map_service_configs/LiU/Messenger_LOI.wms rename to data/assets/scene/solarsystem/planets/mercury/layers/colorlayers/messenger_loi_sweden.wms diff --git a/data/assets/scene/solarsystem/planets/mercury/layers/colorlayers/messenger_loi_utah.asset b/data/assets/scene/solarsystem/planets/mercury/layers/colorlayers/messenger_loi_utah.asset index c4bfe727b5..3dcb3086c9 100644 --- a/data/assets/scene/solarsystem/planets/mercury/layers/colorlayers/messenger_loi_utah.asset +++ b/data/assets/scene/solarsystem/planets/mercury/layers/colorlayers/messenger_loi_utah.asset @@ -1,14 +1,30 @@ -local mapServiceConfigs = asset.localResource("./../../map_service_configs") -local globeIdentifier = asset.require("./../../mercury").Mercury.Identifier +local globeIdentifier = asset.require("../../mercury").Mercury.Identifier local layer = { Identifier = "Messenger_LOI_Utah", Name = "Messenger LOI [Utah]", - FilePath = mapServiceConfigs .. "/Utah/MessengerLOI.wms", + FilePath = asset.localResource("messenger_loi_utah.wms") } -asset.onInitialize(function () +asset.onInitialize(function() openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer) end) +asset.onDeinitialize(function() + openspace.globebrowsing.deleteLayer(globeIdentifier, "ColorLayers", layer) +end) + asset.export("layer", layer) + + + +asset.meta = { + Name = "Messenger LOI [Utah]", + Version = "1.0", + Description = [[ Mercury LOI layer for Mercury globe. + This map is hosted on the OpenSpace server in Utah.]], + Author = "USGS", + URL = "https://astrogeology.usgs.gov/search/map/Mercury/Messenger/Global/Mercury_MESSENGER_MDIS_Basemap_LOI_Mosaic_Global_166m", + License = "NASA/PDS" +} + diff --git a/data/assets/scene/solarsystem/planets/mercury/map_service_configs/Utah/MessengerLOI.wms b/data/assets/scene/solarsystem/planets/mercury/layers/colorlayers/messenger_loi_utah.wms similarity index 100% rename from data/assets/scene/solarsystem/planets/mercury/map_service_configs/Utah/MessengerLOI.wms rename to data/assets/scene/solarsystem/planets/mercury/layers/colorlayers/messenger_loi_utah.wms diff --git a/data/assets/scene/solarsystem/planets/mercury/layers/colorlayers/messenger_mdis_sweden.asset b/data/assets/scene/solarsystem/planets/mercury/layers/colorlayers/messenger_mdis_sweden.asset index 541c360148..33885c5862 100644 --- a/data/assets/scene/solarsystem/planets/mercury/layers/colorlayers/messenger_mdis_sweden.asset +++ b/data/assets/scene/solarsystem/planets/mercury/layers/colorlayers/messenger_mdis_sweden.asset @@ -1,14 +1,39 @@ -local mapServiceConfigs = asset.localResource("./../../map_service_configs") -local globeIdentifier = asset.require("./../../mercury").Mercury.Identifier +local globeIdentifier = asset.require("../../mercury").Mercury.Identifier local layer = { Identifier = "Messenger_MDIS_Sweden", Name = "Messenger MDIS [Sweden]", - FilePath = mapServiceConfigs .. "/LiU/Messenger_MDIS.wms", + FilePath = asset.localResource("messenger_mdis_sweden.wms"), + Description = [[This May 2013 basemap is a combination of the following mosaics; (1) + The 2013-05-10 version of the monochrome global mosaic, made from Applied Coherent + Technology (ACT) Corporation tiles, (2) An average north polar mosaic from 90N to 82.5N, + composed of images from many campaigns, made by C. Ernst, and (3) An average south + polar mosaic from 90S to 85S, composed of images from the south polar monitoring + campaign from the primary mission, made by N. Chabot. To fill minor areas of missing + data, the 2013-05-10 version of the high-incidence global mosaic was underlain. This + monochrome mosaic is composed of Mercury Dual Imaging System (MDIS) Narrow Angle + Camera (NAC) images and Wide Angle Camers (WAC) images acquired in the filter centered + at 750 nm. The resolution of this mosaic is 250 meters per pixel (m).]] } -asset.onInitialize(function () +asset.onInitialize(function() openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer) end) +asset.onDeinitialize(function() + openspace.globebrowsing.deleteLayer(globeIdentifier, "ColorLayers", layer) +end) + asset.export("layer", layer) + + + +asset.meta = { + Name = "Messenger MDIS [Sweden]", + Version = "1.0", + Description = [[ Messenger MDIS layer for Mercury globe. + This map is hosted on the OpenSpace server in Sweden.]], + Author = "USGS", + URL = "https://astrogeology.usgs.gov/search/map/Mercury/Messenger/Global/Mercury_MESSENGER_MDIS_mosaic_global_250m_2013", + License = "NASA/PDS" +} diff --git a/data/assets/scene/solarsystem/planets/mercury/map_service_configs/LiU/Messenger_MDIS.wms b/data/assets/scene/solarsystem/planets/mercury/layers/colorlayers/messenger_mdis_sweden.wms similarity index 100% rename from data/assets/scene/solarsystem/planets/mercury/map_service_configs/LiU/Messenger_MDIS.wms rename to data/assets/scene/solarsystem/planets/mercury/layers/colorlayers/messenger_mdis_sweden.wms diff --git a/data/assets/scene/solarsystem/planets/mercury/layers/colorlayers/messenger_mdis_utah.asset b/data/assets/scene/solarsystem/planets/mercury/layers/colorlayers/messenger_mdis_utah.asset index 231aa8bba8..ef410e0480 100644 --- a/data/assets/scene/solarsystem/planets/mercury/layers/colorlayers/messenger_mdis_utah.asset +++ b/data/assets/scene/solarsystem/planets/mercury/layers/colorlayers/messenger_mdis_utah.asset @@ -1,14 +1,41 @@ -local mapServiceConfigs = asset.localResource("./../../map_service_configs") -local globeIdentifier = asset.require("./../../mercury").Mercury.Identifier +local globeIdentifier = asset.require("../../mercury").Mercury.Identifier local layer = { Identifier = "Messenger_MDIS_Utah", Name = "Messenger MDIS [Utah]", - FilePath = mapServiceConfigs .. "/Utah/MessengerMDIS.wms", + FilePath = asset.localResource("messenger_mdis_utah.wms"), + Description = [[This May 2013 basemap is a combination of the following mosaics; (1) + The 2013-05-10 version of the monochrome global mosaic, made from Applied Coherent + Technology (ACT) Corporation tiles, (2) An average north polar mosaic from 90N to 82.5N, + composed of images from many campaigns, made by C. Ernst, and (3) An average south + polar mosaic from 90S to 85S, composed of images from the south polar monitoring + campaign from the primary mission, made by N. Chabot. To fill minor areas of missing + data, the 2013-05-10 version of the high-incidence global mosaic was underlain. This + monochrome mosaic is composed of Mercury Dual Imaging System (MDIS) Narrow Angle + Camera (NAC) images and Wide Angle Camers (WAC) images acquired in the filter centered + at 750 nm. The resolution of this mosaic is 250 meters per pixel (m).]] } -asset.onInitialize(function () +asset.onInitialize(function() openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer) end) +asset.onDeinitialize(function() + openspace.globebrowsing.deleteLayer(globeIdentifier, "ColorLayers", layer) +end) + asset.export("layer", layer) + + + +asset.meta = { + Name = "Messenger MDIS [Utah]", + Version = "1.0", + Description = [[ Messenger MDIS layer for Mercury globe. + This map is hosted on the OpenSpace server in Utah.]], + Author = "USGS", + URL = "https://astrogeology.usgs.gov/search/map/Mercury/Messenger/Global/Mercury_MESSENGER_MDIS_mosaic_global_250m_2013", + License = "NASA/PDS" +} + + diff --git a/data/assets/scene/solarsystem/planets/mercury/map_service_configs/Utah/MessengerMdis.wms b/data/assets/scene/solarsystem/planets/mercury/layers/colorlayers/messenger_mdis_utah.wms similarity index 100% rename from data/assets/scene/solarsystem/planets/mercury/map_service_configs/Utah/MessengerMdis.wms rename to data/assets/scene/solarsystem/planets/mercury/layers/colorlayers/messenger_mdis_utah.wms diff --git a/data/assets/scene/solarsystem/planets/mercury/layers/colorlayers/messenger_mdr_utah.asset b/data/assets/scene/solarsystem/planets/mercury/layers/colorlayers/messenger_mdr_utah.asset index 01a5d89f63..1145b4bcec 100644 --- a/data/assets/scene/solarsystem/planets/mercury/layers/colorlayers/messenger_mdr_utah.asset +++ b/data/assets/scene/solarsystem/planets/mercury/layers/colorlayers/messenger_mdr_utah.asset @@ -1,14 +1,30 @@ -local mapServiceConfigs = asset.localResource("./../../map_service_configs") -local globeIdentifier = asset.require("./../../mercury").Mercury.Identifier +local globeIdentifier = asset.require("../../mercury").Mercury.Identifier local layer = { Identifier = "Messenger_MDR_Utah", Name = "Messenger MDR [Utah]", - FilePath = mapServiceConfigs .. "/Utah/MessengerMDR.wms", + FilePath = asset.localResource("messenger_mdr_utah.wms") } -asset.onInitialize(function () +asset.onInitialize(function() openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer) end) +asset.onDeinitialize(function() + openspace.globebrowsing.deleteLayer(globeIdentifier, "ColorLayers", layer) +end) + asset.export("layer", layer) + + + +asset.meta = { + Name = "Messenger MDR [Utah]", + Version = "1.0", + Description = [[ Mercury MDR layer for Mercury globe. + This map is hosted on the OpenSpace server in Utah.]], + Author = "USGS", + URL = "", + License = "NASA/PDS" +} + diff --git a/data/assets/scene/solarsystem/planets/mercury/map_service_configs/Utah/MessengerMDR.wms b/data/assets/scene/solarsystem/planets/mercury/layers/colorlayers/messenger_mdr_utah.wms similarity index 100% rename from data/assets/scene/solarsystem/planets/mercury/map_service_configs/Utah/MessengerMDR.wms rename to data/assets/scene/solarsystem/planets/mercury/layers/colorlayers/messenger_mdr_utah.wms diff --git a/data/assets/scene/solarsystem/planets/mercury/layers/colorlayers/messenger_mosaic2_sweden.asset b/data/assets/scene/solarsystem/planets/mercury/layers/colorlayers/messenger_mosaic2_sweden.asset index ea4103fb23..dec4bc602d 100644 --- a/data/assets/scene/solarsystem/planets/mercury/layers/colorlayers/messenger_mosaic2_sweden.asset +++ b/data/assets/scene/solarsystem/planets/mercury/layers/colorlayers/messenger_mosaic2_sweden.asset @@ -1,14 +1,29 @@ -local mapServiceConfigs = asset.localResource("./../../map_service_configs") -local globeIdentifier = asset.require("./../../mercury").Mercury.Identifier +local globeIdentifier = asset.require("../../mercury").Mercury.Identifier local layer = { Identifier = "Messenger_Mosaic2_Sweden", Name = "Messenger Mosaic2 [Sweden]", - FilePath = mapServiceConfigs .. "/LiU/Messenger_Mosaic_2.wms", + FilePath = asset.localResource("messenger_mosaic2_sweden.wms") } -asset.onInitialize(function () +asset.onInitialize(function() openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer) end) +asset.onDeinitialize(function() + openspace.globebrowsing.deleteLayer(globeIdentifier, "ColorLayers", layer) +end) + asset.export("layer", layer) + + + +asset.meta = { + Name = "Messenger Mosaic2 [Sweden]", + Version = "1.0", + Description = [[ Mercury Messenger Mosaic2 layer for Mercury globe. + This map is hosted on the OpenSpace server in Sweden.]], + Author = "USGS", + URL = "", + License = "NASA/PDS" +} diff --git a/data/assets/scene/solarsystem/planets/mercury/map_service_configs/LiU/Messenger_Mosaic_2.wms b/data/assets/scene/solarsystem/planets/mercury/layers/colorlayers/messenger_mosaic2_sweden.wms similarity index 100% rename from data/assets/scene/solarsystem/planets/mercury/map_service_configs/LiU/Messenger_Mosaic_2.wms rename to data/assets/scene/solarsystem/planets/mercury/layers/colorlayers/messenger_mosaic2_sweden.wms diff --git a/data/assets/scene/solarsystem/planets/mercury/layers/colorlayers/messenger_mosaic2_utah.asset b/data/assets/scene/solarsystem/planets/mercury/layers/colorlayers/messenger_mosaic2_utah.asset index b2779a0203..9b5234d85a 100644 --- a/data/assets/scene/solarsystem/planets/mercury/layers/colorlayers/messenger_mosaic2_utah.asset +++ b/data/assets/scene/solarsystem/planets/mercury/layers/colorlayers/messenger_mosaic2_utah.asset @@ -1,14 +1,29 @@ -local mapServiceConfigs = asset.localResource("./../../map_service_configs") -local globeIdentifier = asset.require("./../../mercury").Mercury.Identifier +local globeIdentifier = asset.require("../../mercury").Mercury.Identifier local layer = { Identifier = "Messenger_Mosaic2_Utah", Name = "Messenger Mosaic2 [Utah]", - FilePath = mapServiceConfigs .. "/Utah/MessengerMosaic2.wms", + FilePath = asset.localResource("messenger_mosaic2_utah.wms") } -asset.onInitialize(function () +asset.onInitialize(function() openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer) end) +asset.onDeinitialize(function() + openspace.globebrowsing.deleteLayer(globeIdentifier, "ColorLayers", layer) +end) + asset.export("layer", layer) + + + +asset.meta = { + Name = "Messenger Mosaic2 [Utah]", + Version = "1.0", + Description = [[ Mercury Messenger Mosaic2 layer for Mercury globe. + This map is hosted on the OpenSpace server in Utah.]], + Author = "USGS", + URL = "", + License = "NASA/PDS" +} diff --git a/data/assets/scene/solarsystem/planets/mercury/map_service_configs/Utah/MessengerMosaic2.wms b/data/assets/scene/solarsystem/planets/mercury/layers/colorlayers/messenger_mosaic2_utah.wms similarity index 100% rename from data/assets/scene/solarsystem/planets/mercury/map_service_configs/Utah/MessengerMosaic2.wms rename to data/assets/scene/solarsystem/planets/mercury/layers/colorlayers/messenger_mosaic2_utah.wms diff --git a/data/assets/scene/solarsystem/planets/mercury/layers/colorlayers/messenger_mosaic_sweden.asset b/data/assets/scene/solarsystem/planets/mercury/layers/colorlayers/messenger_mosaic_sweden.asset index 8ba07d375f..6c0ca846c2 100644 --- a/data/assets/scene/solarsystem/planets/mercury/layers/colorlayers/messenger_mosaic_sweden.asset +++ b/data/assets/scene/solarsystem/planets/mercury/layers/colorlayers/messenger_mosaic_sweden.asset @@ -1,14 +1,29 @@ -local mapServiceConfigs = asset.localResource("./../../map_service_configs") -local globeIdentifier = asset.require("./../../mercury").Mercury.Identifier +local globeIdentifier = asset.require("../../mercury").Mercury.Identifier local layer = { Identifier = "Messenger_Mosaic_Sweden", Name = "Messenger Mosaic [Sweden]", - FilePath = mapServiceConfigs .. "/LiU/Messenger_Mosaic.wms" + FilePath = asset.localResource("messenger_mosaic_sweden.wms") } -asset.onInitialize(function () +asset.onInitialize(function() openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer) end) +asset.onDeinitialize(function() + openspace.globebrowsing.deleteLayer(globeIdentifier, "ColorLayers", layer) +end) + asset.export("layer", layer) + + + +asset.meta = { + Name = "Messenger Mosaic [Sweden]", + Version = "1.0", + Description = [[ Mercury Messenger Mosaic layer for Mercury globe. + This map is hosted on the OpenSpace server in Sweden.]], + Author = "USGS", + URL = "", + License = "NASA/PDS" +} diff --git a/data/assets/scene/solarsystem/planets/mercury/map_service_configs/LiU/Messenger_Mosaic.wms b/data/assets/scene/solarsystem/planets/mercury/layers/colorlayers/messenger_mosaic_sweden.wms similarity index 100% rename from data/assets/scene/solarsystem/planets/mercury/map_service_configs/LiU/Messenger_Mosaic.wms rename to data/assets/scene/solarsystem/planets/mercury/layers/colorlayers/messenger_mosaic_sweden.wms diff --git a/data/assets/scene/solarsystem/planets/mercury/layers/colorlayers/messenger_mosaic_utah.asset b/data/assets/scene/solarsystem/planets/mercury/layers/colorlayers/messenger_mosaic_utah.asset index 9e6f140cb4..ae74f3472e 100644 --- a/data/assets/scene/solarsystem/planets/mercury/layers/colorlayers/messenger_mosaic_utah.asset +++ b/data/assets/scene/solarsystem/planets/mercury/layers/colorlayers/messenger_mosaic_utah.asset @@ -1,14 +1,29 @@ -local mapServiceConfigs = asset.localResource("./../../map_service_configs") -local globeIdentifier = asset.require("./../../mercury").Mercury.Identifier +local globeIdentifier = asset.require("../../mercury").Mercury.Identifier local layer = { Identifier = "Messenger_Mosaic_Utah", Name = "Messenger Mosaic [Utah]", - FilePath = mapServiceConfigs .. "/Utah/MessengerMosaic.wms" + FilePath = asset.localResource("messenger_mosaic_utah.wms") } -asset.onInitialize(function () +asset.onInitialize(function() openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer) end) +asset.onDeinitialize(function() + openspace.globebrowsing.deleteLayer(globeIdentifier, "ColorLayers", layer) +end) + asset.export("layer", layer) + + + +asset.meta = { + Name = "Messenger Mosaic [Utah]", + Version = "1.0", + Description = [[ Mercury Messenger Mosaic layer for Mercury globe. + This map is hosted on the OpenSpace server in Utah.]], + Author = "USGS", + URL = "", + License = "NASA/PDS" +} diff --git a/data/assets/scene/solarsystem/planets/mercury/map_service_configs/Utah/MessengerMosaic.wms b/data/assets/scene/solarsystem/planets/mercury/layers/colorlayers/messenger_mosaic_utah.wms similarity index 100% rename from data/assets/scene/solarsystem/planets/mercury/map_service_configs/Utah/MessengerMosaic.wms rename to data/assets/scene/solarsystem/planets/mercury/layers/colorlayers/messenger_mosaic_utah.wms diff --git a/data/assets/scene/solarsystem/planets/mercury/layers/colorlayers/messenger_mp3_utah.asset b/data/assets/scene/solarsystem/planets/mercury/layers/colorlayers/messenger_mp3_utah.asset index e9599d9bc6..ec14b039db 100644 --- a/data/assets/scene/solarsystem/planets/mercury/layers/colorlayers/messenger_mp3_utah.asset +++ b/data/assets/scene/solarsystem/planets/mercury/layers/colorlayers/messenger_mp3_utah.asset @@ -1,14 +1,30 @@ -local mapServiceConfigs = asset.localResource("./../../map_service_configs") -local globeIdentifier = asset.require("./../../mercury").Mercury.Identifier +local globeIdentifier = asset.require("../../mercury").Mercury.Identifier local layer = { Identifier = "Messenger_MP3_Utah", Name = "Messenger MP3 [Utah]", - FilePath = mapServiceConfigs .. "/Utah/MessengerMP3.wms", + FilePath = asset.localResource("messenger_mp3_utah.wms") } -asset.onInitialize(function () +asset.onInitialize(function() openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer) end) +asset.onDeinitialize(function() + openspace.globebrowsing.deleteLayer(globeIdentifier, "ColorLayers", layer) +end) + asset.export("layer", layer) + + + +asset.meta = { + Name = "Messenger MP3 [Utah]", + Version = "1.0", + Description = [[ Mercury Messenger MP3 layer for Mercury globe. + This map is hosted on the OpenSpace server in Utah.]], + Author = "USGS", + URL = "", + License = "NASA/PDS" +} + diff --git a/data/assets/scene/solarsystem/planets/mercury/map_service_configs/Utah/MessengerMP3.wms b/data/assets/scene/solarsystem/planets/mercury/layers/colorlayers/messenger_mp3_utah.wms similarity index 100% rename from data/assets/scene/solarsystem/planets/mercury/map_service_configs/Utah/MessengerMP3.wms rename to data/assets/scene/solarsystem/planets/mercury/layers/colorlayers/messenger_mp3_utah.wms diff --git a/data/assets/scene/solarsystem/planets/mercury/layers/colorlayers/messenger_shade_sweden.asset b/data/assets/scene/solarsystem/planets/mercury/layers/colorlayers/messenger_shade_sweden.asset index 75e1311ce6..29d676abc1 100644 --- a/data/assets/scene/solarsystem/planets/mercury/layers/colorlayers/messenger_shade_sweden.asset +++ b/data/assets/scene/solarsystem/planets/mercury/layers/colorlayers/messenger_shade_sweden.asset @@ -1,10 +1,9 @@ -local mapServiceConfigs = asset.localResource("./../../map_service_configs") -local globeIdentifier = asset.require("./../../mercury").Mercury.Identifier +local globeIdentifier = asset.require("../../mercury").Mercury.Identifier local layer = { Identifier = "Messenger_SHADE_Sweden", Name = "Messenger SHADE [Sweden]", - FilePath = mapServiceConfigs .. "/LiU/Messenger_SHADE.wms", + FilePath = asset.localResource("messenger_shade_sweden.wms"), Settings = { Gamma = 1.33, Multiplier = 1.15 @@ -12,8 +11,24 @@ local layer = { BlendMode = "Multiply", } -asset.onInitialize(function () +asset.onInitialize(function() openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer) end) +asset.onDeinitialize(function() + openspace.globebrowsing.deleteLayer(globeIdentifier, "ColorLayers", layer) +end) + asset.export("layer", layer) + + + +asset.meta = { + Name = "Messenger SHADE [Sweden]", + Version = "1.0", + Description = [[ Mercury SHADE layer for Mercury globe. + This map is hosted on the OpenSpace server in Sweden.]], + Author = "USGS", + URL = "https://astrogeology.usgs.gov/search/map/Mercury/Topography/MESSENGER/Mercury_Messenger_USGS_ClrShade_Global_2km", + License = "NASA/PDS" +} diff --git a/data/assets/scene/solarsystem/planets/mercury/map_service_configs/LiU/Messenger_Shade.wms b/data/assets/scene/solarsystem/planets/mercury/layers/colorlayers/messenger_shade_sweden.wms similarity index 100% rename from data/assets/scene/solarsystem/planets/mercury/map_service_configs/LiU/Messenger_Shade.wms rename to data/assets/scene/solarsystem/planets/mercury/layers/colorlayers/messenger_shade_sweden.wms diff --git a/data/assets/scene/solarsystem/planets/mercury/layers/colorlayers/messenger_shade_utah.asset b/data/assets/scene/solarsystem/planets/mercury/layers/colorlayers/messenger_shade_utah.asset index db21653329..4e4fa0df0b 100644 --- a/data/assets/scene/solarsystem/planets/mercury/layers/colorlayers/messenger_shade_utah.asset +++ b/data/assets/scene/solarsystem/planets/mercury/layers/colorlayers/messenger_shade_utah.asset @@ -1,10 +1,9 @@ -local mapServiceConfigs = asset.localResource("./../../map_service_configs") -local globeIdentifier = asset.require("./../../mercury").Mercury.Identifier +local globeIdentifier = asset.require("../../mercury").Mercury.Identifier local layer = { Identifier = "Messenger_SHADE_Utah", Name = "Messenger SHADE [Utah]", - FilePath = mapServiceConfigs .. "/Utah/MessengerSHADE.wms", + FilePath = asset.localResource("messenger_shade_utah.wms"), Settings = { Gamma = 1.33, Multiplier = 1.15 @@ -12,8 +11,24 @@ local layer = { BlendMode = "Multiply", } -asset.onInitialize(function () +asset.onInitialize(function() openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer) end) +asset.onDeinitialize(function() + openspace.globebrowsing.deleteLayer(globeIdentifier, "ColorLayers", layer) +end) + asset.export("layer", layer) + + + +asset.meta = { + Name = "Messenger SHADE [Utah]", + Version = "1.0", + Description = [[ Mercury Messenger SHADE layer for Mercury globe. + This map is hosted on the OpenSpace server in Utah.]], + Author = "USGS", + URL = "https://astrogeology.usgs.gov/search/map/Mercury/Topography/MESSENGER/Mercury_Messenger_USGS_ClrShade_Global_2km", + License = "NASA/PDS" +} diff --git a/data/assets/scene/solarsystem/planets/mercury/map_service_configs/Utah/MessengerSHADE.wms b/data/assets/scene/solarsystem/planets/mercury/layers/colorlayers/messenger_shade_utah.wms similarity index 100% rename from data/assets/scene/solarsystem/planets/mercury/map_service_configs/Utah/MessengerSHADE.wms rename to data/assets/scene/solarsystem/planets/mercury/layers/colorlayers/messenger_shade_utah.wms diff --git a/data/assets/scene/solarsystem/planets/mercury/layers/colorlayers/mgsimap_02122015.asset b/data/assets/scene/solarsystem/planets/mercury/layers/colorlayers/mgsimap_02122015.asset index 8dbb6ce060..26772b155d 100644 --- a/data/assets/scene/solarsystem/planets/mercury/layers/colorlayers/mgsimap_02122015.asset +++ b/data/assets/scene/solarsystem/planets/mercury/layers/colorlayers/mgsimap_02122015.asset @@ -1,10 +1,16 @@ -local texturesPath = asset.require("./../../mercury_textures").TexturesPath -local globeIdentifier = asset.require("./../../mercury").Mercury.Identifier +local globeIdentifier = asset.require("../../mercury").Mercury.Identifier + +local texturesPath = asset.syncedResource({ + Name = "Mercury Textures", + Type = "HttpSynchronization", + Identifier = "mercury_abundance_textures", + Version = 1 +}) local layer = { Name = "Magnesium Abundance", Identifier = "mgsimap_02122015", - FilePath = texturesPath .. "/mgsimap_02122015.png", + FilePath = texturesPath .. "mgsimap_02122015.png", Settings = { Gamma = 1.33, Multiplier = 1.15 @@ -12,8 +18,23 @@ local layer = { BlendMode = "Multiply", } -asset.onInitialize(function () +asset.onInitialize(function() openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer) end) +asset.onDeinitialize(function() + openspace.globebrowsing.deleteLayer(globeIdentifier, "ColorLayers", layer) +end) + asset.export("layer", layer) + + + +asset.meta = { + Name = "Mercury Magnesium Abundance", + Version = "1.0", + Description = [[ Magnesium Abundance layer for Mercury globe]], + Author = "OpenSpace Team", + URL = "http://openspaceproject.com", + License = "MIT license" +} diff --git a/data/assets/scene/solarsystem/planets/mercury/layers/colorlayers/ssimap_02122015.asset b/data/assets/scene/solarsystem/planets/mercury/layers/colorlayers/ssimap_02122015.asset index 8922f0cdfb..811a7a780f 100644 --- a/data/assets/scene/solarsystem/planets/mercury/layers/colorlayers/ssimap_02122015.asset +++ b/data/assets/scene/solarsystem/planets/mercury/layers/colorlayers/ssimap_02122015.asset @@ -1,15 +1,36 @@ -local texturesPath = asset.require("./../../mercury_textures").TexturesPath -local globeIdentifier = asset.require("./../../mercury").Mercury.Identifier +local globeIdentifier = asset.require("../../mercury").Mercury.Identifier + +local texturesPath = asset.syncedResource({ + Name = "Mercury Textures", + Type = "HttpSynchronization", + Identifier = "mercury_abundance_textures", + Version = 1 +}) local layer = { Name = "Silicon Abundance", Identifier = "ssimap_02122015", - FilePath = texturesPath .. "/ssimap_02122015.png", + FilePath = texturesPath .. "ssimap_02122015.png", BlendMode = "Multiply", } -asset.onInitialize(function () +asset.onInitialize(function() openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer) end) +asset.onDeinitialize(function() + openspace.globebrowsing.deleteLayer(globeIdentifier, "ColorLayers", layer) +end) + asset.export("layer", layer) + + + +asset.meta = { + Name = "Mercury Silicon Abundance", + Version = "1.0", + Description = [[ Silicon Abundance layer for Mercury globe]], + Author = "OpenSpace Team", + URL = "http://openspaceproject.com", + License = "MIT license" +} diff --git a/data/assets/scene/solarsystem/planets/mercury/layers/heightlayers/messenger_dem_utah.asset b/data/assets/scene/solarsystem/planets/mercury/layers/heightlayers/messenger_dem_utah.asset new file mode 100644 index 0000000000..b2bc20cf7e --- /dev/null +++ b/data/assets/scene/solarsystem/planets/mercury/layers/heightlayers/messenger_dem_utah.asset @@ -0,0 +1,14 @@ +local globeIdentifier = asset.require("../../mercury").Mercury.Identifier + +local layer = { + Identifier = "Messenger_DEM_Utah", + Name = "Messenger DEM [Utah]", + FilePath = asset.localResource("messenger_dem_utah.wms"), + TilePixelSize = 64 +} + +asset.onInitialize(function () + openspace.globebrowsing.addLayer(globeIdentifier, "HeightLayers", layer) +end) + +asset.export("layer", layer) diff --git a/data/assets/scene/solarsystem/planets/mercury/map_service_configs/Utah/MessengerDEM.wms b/data/assets/scene/solarsystem/planets/mercury/layers/heightlayers/messenger_dem_utah.wms similarity index 100% rename from data/assets/scene/solarsystem/planets/mercury/map_service_configs/Utah/MessengerDEM.wms rename to data/assets/scene/solarsystem/planets/mercury/layers/heightlayers/messenger_dem_utah.wms diff --git a/data/assets/scene/solarsystem/planets/mercury/map_service_configs/AMNH/OnMercuryColor.wms b/data/assets/scene/solarsystem/planets/mercury/map_service_configs/AMNH/OnMercuryColor.wms deleted file mode 100644 index f16e0e2b06..0000000000 --- a/data/assets/scene/solarsystem/planets/mercury/map_service_configs/AMNH/OnMercuryColor.wms +++ /dev/null @@ -1,31 +0,0 @@ - - - http://192.168.1.167/OnMercury/wms.cgi? - Color 665m - - - - -180.0 - 90 - 180.0 - -90 - 20 - 2 - 1 - top - - 5 - 512 - 512 - diff --git a/data/assets/scene/solarsystem/planets/mercury/map_service_configs/AMNH/OnMercuryElevationGaskell.wms b/data/assets/scene/solarsystem/planets/mercury/map_service_configs/AMNH/OnMercuryElevationGaskell.wms deleted file mode 100644 index 9769b967a0..0000000000 --- a/data/assets/scene/solarsystem/planets/mercury/map_service_configs/AMNH/OnMercuryElevationGaskell.wms +++ /dev/null @@ -1,25 +0,0 @@ - - - http://192.168.1.167/OnMercury/wms.cgi? - - Elevation 16bit, Gaskell - - - -180.0 - 90 - 180.0 - -90 - 8 - 2 - 1 - top - - 512 - 512 - 5 - diff --git a/data/assets/scene/solarsystem/planets/mercury/map_service_configs/AMNH/OnMercuryImage.wms b/data/assets/scene/solarsystem/planets/mercury/map_service_configs/AMNH/OnMercuryImage.wms deleted file mode 100644 index ceded0e510..0000000000 --- a/data/assets/scene/solarsystem/planets/mercury/map_service_configs/AMNH/OnMercuryImage.wms +++ /dev/null @@ -1,32 +0,0 @@ - - - http://192.168.1.167/OnMercury/wms.cgi? - Mercury Image - - - - -180.0 - 90 - 180.0 - -90 - 20 - 2 - 1 - top - - 512 - 512 - 5 - diff --git a/data/assets/scene/solarsystem/planets/mercury/mercury.asset b/data/assets/scene/solarsystem/planets/mercury/mercury.asset index f6e8465910..3fb3cc0207 100644 --- a/data/assets/scene/solarsystem/planets/mercury/mercury.asset +++ b/data/assets/scene/solarsystem/planets/mercury/mercury.asset @@ -1,9 +1,13 @@ -local assetHelper = asset.require('util/asset_helper') -local transforms = asset.require('./transforms') -local labelsPath = asset.require('./mercury_globelabels').LabelsPath - +local transforms = asset.require("./transforms") asset.require("spice/base") -asset.require('./trail') +asset.require("./trail") + +local labelsPath = asset.syncedResource({ + Name = "Mercury Labels", + Type = "HttpSynchronization", + Identifier = "mercury_labels", + Version = 1 +}) local Mercury = { Identifier = "Mercury", @@ -30,7 +34,7 @@ local Mercury = { Layers = {}, Labels = { Enabled = false, - FileName = labelsPath .. "/Mercury.labels", + FileName = labelsPath .. "Mercury.labels", AlignmentOption = "Horizontally", -- or Circularly FontSize = 20.0, Size = 10.1, @@ -67,15 +71,26 @@ local MercuryLabel = { } } -assetHelper.registerSceneGraphNodesAndExport(asset, { Mercury, MercuryLabel }) +asset.onInitialize(function() + openspace.addSceneGraphNode(Mercury) + openspace.addSceneGraphNode(MercuryLabel) +end) + +asset.onDeinitialize(function() + openspace.removeSceneGraphNode(MercuryLabel) + openspace.removeSceneGraphNode(Mercury) +end) + +asset.export(Mercury) +asset.export(MercuryLabel) + asset.meta = { Name = "Mercury", - Version = "1.0", + Version = "1.1", Description = [[ Mercury globe with labels, and main planet label.]], Author = "OpenSpace Team", URL = "http://openspaceproject.com", - License = "MIT license", - Identifiers = {"Mercury" , "MercuryLabel"} + License = "MIT license" } diff --git a/data/assets/scene/solarsystem/planets/mercury/mercury_globelabels.asset b/data/assets/scene/solarsystem/planets/mercury/mercury_globelabels.asset deleted file mode 100644 index 14cbb35a14..0000000000 --- a/data/assets/scene/solarsystem/planets/mercury/mercury_globelabels.asset +++ /dev/null @@ -1,7 +0,0 @@ -local LabelsPath = asset.syncedResource({ - Name = "Mercury Labels", - Type = "HttpSynchronization", - Identifier = "mercury_labels", - Version = 1 -}) -asset.export("LabelsPath", LabelsPath) \ No newline at end of file diff --git a/data/assets/scene/solarsystem/planets/mercury/mercury_textures.asset b/data/assets/scene/solarsystem/planets/mercury/mercury_textures.asset deleted file mode 100644 index 3ff8488a6d..0000000000 --- a/data/assets/scene/solarsystem/planets/mercury/mercury_textures.asset +++ /dev/null @@ -1,7 +0,0 @@ -local TexturesPath = asset.syncedResource({ - Name = "Mercury Textures", - Type = "HttpSynchronization", - Identifier = "mercury_abundance_textures", - Version = 1 -}) -asset.export("TexturesPath", TexturesPath) diff --git a/data/assets/scene/solarsystem/planets/mercury/trail.asset b/data/assets/scene/solarsystem/planets/mercury/trail.asset index 2514f0ca70..952f77e772 100644 --- a/data/assets/scene/solarsystem/planets/mercury/trail.asset +++ b/data/assets/scene/solarsystem/planets/mercury/trail.asset @@ -1,5 +1,4 @@ -local assetHelper = asset.require('util/asset_helper') -local transforms = asset.require('scene/solarsystem/sun/transforms') +local transforms = asset.require("scene/solarsystem/sun/transforms") asset.require("spice/base") @@ -26,16 +25,24 @@ local MercuryTrail = { } } -assetHelper.registerSceneGraphNodesAndExport(asset, { MercuryTrail }) +asset.onInitialize(function() + openspace.addSceneGraphNode(MercuryTrail) +end) + +asset.onDeinitialize(function() + openspace.removeSceneGraphNode(MercuryTrail) +end) + +asset.export(MercuryTrail) + asset.meta = { Name = "Mercury Trail", - Version = "1.0", + Version = "1.1", Description = [[ Main trail for Mercury. Data from NASA Spice (see base spice asset)]], Author = "OpenSpace Team", URL = "http://openspaceproject.com", - License = "MIT license", - Identifiers = {"MercuryTrail"} + License = "MIT license" } diff --git a/data/assets/scene/solarsystem/planets/mercury/trail_earth.asset b/data/assets/scene/solarsystem/planets/mercury/trail_earth.asset index 1d44518f34..e31823edbf 100644 --- a/data/assets/scene/solarsystem/planets/mercury/trail_earth.asset +++ b/data/assets/scene/solarsystem/planets/mercury/trail_earth.asset @@ -1,6 +1,5 @@ -local assetHelper = asset.require('util/asset_helper') -local transforms = asset.require('scene/solarsystem/sun/transforms') -local earthTransforms = asset.require('scene/solarsystem/planets/earth/transforms') +local transforms = asset.require("scene/solarsystem/sun/transforms") +local earthTransforms = asset.require("scene/solarsystem/planets/earth/transforms") asset.require("spice/base") @@ -29,16 +28,24 @@ local MercuryTrailEarth = { } } -assetHelper.registerSceneGraphNodesAndExport(asset, { MercuryTrailEarth }) +asset.onInitialize(function() + openspace.addSceneGraphNode(MercuryTrailEarth) +end) + +asset.onDeinitialize(function() + openspace.removeSceneGraphNode(MercuryTrailEarth) +end) + +asset.export(MercuryTrailEarth) + asset.meta = { Name = "Mercury Trail from Earth", - Version = "1.0", + Version = "1.1", Description = [[ Alternate trail of Mercury, as observed by the Earth rather then the Sun.]], Author = "OpenSpace Team", URL = "http://openspaceproject.com", - License = "MIT license", - Identifiers = {"MercuryTrailEarth"} + License = "MIT license" } diff --git a/data/assets/scene/solarsystem/planets/mercury/transforms.asset b/data/assets/scene/solarsystem/planets/mercury/transforms.asset index 0b85348f9b..9365e25254 100644 --- a/data/assets/scene/solarsystem/planets/mercury/transforms.asset +++ b/data/assets/scene/solarsystem/planets/mercury/transforms.asset @@ -1,5 +1,4 @@ -local assetHelper = asset.require('util/asset_helper') -local transforms = asset.require('scene/solarsystem/sun/transforms') +local transforms = asset.require("scene/solarsystem/sun/transforms") asset.require("spice/base") local MercuryBarycenter = { @@ -20,15 +19,23 @@ local MercuryBarycenter = { } } -assetHelper.registerSceneGraphNodesAndExport(asset, { MercuryBarycenter }) +asset.onInitialize(function() + openspace.addSceneGraphNode(MercuryBarycenter) +end) + +asset.onDeinitialize(function() + openspace.removeSceneGraphNode(MercuryBarycenter) +end) + +asset.export(MercuryBarycenter) + asset.meta = { Name = "Mercury Transforms", - Version = "1.0", + Version = "1.1", Description = [[ Mercury Barycenter transform]], Author = "OpenSpace Team", URL = "http://openspaceproject.com", - License = "MIT license", - Identifiers = {"MercuryBarycenter"} + License = "MIT license" } diff --git a/data/assets/scene/solarsystem/planets/neptune/default_layers.asset b/data/assets/scene/solarsystem/planets/neptune/default_layers.asset index aa5c63aeb5..aaa96a1536 100644 --- a/data/assets/scene/solarsystem/planets/neptune/default_layers.asset +++ b/data/assets/scene/solarsystem/planets/neptune/default_layers.asset @@ -1,6 +1,4 @@ -local colorLayersPath = "./layers/colorlayers" - -local colorLayer = asset.require(colorLayersPath .. "/neptune_texture") +local colorLayer = asset.require("./layers/colorlayers/neptune_texture") -- Set enabled layers (temporary solution) -- @TODO: do this using a boolean that's passed to the 'asset.require' instead diff --git a/data/assets/scene/solarsystem/planets/neptune/inner_moons.asset b/data/assets/scene/solarsystem/planets/neptune/inner_moons.asset index dc8e85f381..a22b904ed9 100644 --- a/data/assets/scene/solarsystem/planets/neptune/inner_moons.asset +++ b/data/assets/scene/solarsystem/planets/neptune/inner_moons.asset @@ -1,7 +1,6 @@ -local assetHelper = asset.require('util/asset_helper') -local proceduralGlobes = asset.require('util/procedural_globe') -local transforms = asset.require('./transforms') -local kernels = asset.require('./kernels') +local proceduralGlobes = asset.require("util/procedural_globe") +local transforms = asset.require("./transforms") +local kernels = asset.require("./kernels") local kernel081 = kernels.nep081 local kernel087 = kernels.nep087 local kernel088 = kernels.nep088 @@ -142,10 +141,23 @@ local innerMoons = { } } -assetHelper.registerSceneGraphNodesAndExport( - asset, - proceduralGlobes.createGlobes(innerMoons) -) +local nodes = proceduralGlobes.createGlobes(innerMoons) + +asset.onInitialize(function() + for _, node in ipairs(nodes) do + openspace.addSceneGraphNode(node) + end +end) + +asset.onDeinitialize(function() + for i = #nodes, 1, -1 do + openspace.removeSceneGraphNode(nodes[i]) + end +end) + +for _, node in ipairs(nodes) do + asset.export(node) +end asset.meta = { diff --git a/data/assets/scene/solarsystem/planets/neptune/irregular_prograde_moons.asset b/data/assets/scene/solarsystem/planets/neptune/irregular_prograde_moons.asset index efb2834b56..e6eafd5be7 100644 --- a/data/assets/scene/solarsystem/planets/neptune/irregular_prograde_moons.asset +++ b/data/assets/scene/solarsystem/planets/neptune/irregular_prograde_moons.asset @@ -1,7 +1,6 @@ -local assetHelper = asset.require('util/asset_helper') -local proceduralGlobes = asset.require('util/procedural_globe') -local transforms = asset.require('./transforms') -local kernels = asset.require('./kernels') +local proceduralGlobes = asset.require("util/procedural_globe") +local transforms = asset.require("./transforms") +local kernels = asset.require("./kernels") local kernel081 = kernels.nep081 local kernel086 = kernels.nep086 local kernel088 = kernels.nep088 @@ -73,10 +72,23 @@ local irregularProgradeMoons = { } } -assetHelper.registerSceneGraphNodesAndExport( - asset, - proceduralGlobes.createGlobes(irregularProgradeMoons) -) +local nodes = proceduralGlobes.createGlobes(irregularProgradeMoons) + +asset.onInitialize(function() + for _, node in ipairs(nodes) do + openspace.addSceneGraphNode(node) + end +end) + +asset.onDeinitialize(function() + for i = #nodes, 1, -1 do + openspace.removeSceneGraphNode(nodes[i]) + end +end) + +for _, node in ipairs(nodes) do + asset.export(node) +end asset.meta = { diff --git a/data/assets/scene/solarsystem/planets/neptune/irregular_retrograde_moons.asset b/data/assets/scene/solarsystem/planets/neptune/irregular_retrograde_moons.asset index 38d9472ffa..88e2e54df5 100644 --- a/data/assets/scene/solarsystem/planets/neptune/irregular_retrograde_moons.asset +++ b/data/assets/scene/solarsystem/planets/neptune/irregular_retrograde_moons.asset @@ -1,7 +1,6 @@ -local assetHelper = asset.require('util/asset_helper') -local proceduralGlobes = asset.require('util/procedural_globe') -local transforms = asset.require('./transforms') -local kernels = asset.require('./kernels') +local proceduralGlobes = asset.require("util/procedural_globe") +local transforms = asset.require("./transforms") +local kernels = asset.require("./kernels") local kernel081 = kernels.nep081 local kernel086 = kernels.nep086 @@ -72,10 +71,23 @@ local irregularRetrogradeMoons = { } } -assetHelper.registerSceneGraphNodesAndExport( - asset, - proceduralGlobes.createGlobes(irregularRetrogradeMoons) -) +local nodes = proceduralGlobes.createGlobes(irregularRetrogradeMoons) + +asset.onInitialize(function() + for _, node in ipairs(nodes) do + openspace.addSceneGraphNode(node) + end +end) + +asset.onDeinitialize(function() + for i = #nodes, 1, -1 do + openspace.removeSceneGraphNode(nodes[i]) + end +end) + +for _, node in ipairs(nodes) do + asset.export(node) +end asset.meta = { diff --git a/data/assets/scene/solarsystem/planets/neptune/kernels.asset b/data/assets/scene/solarsystem/planets/neptune/kernels.asset index 8898ad4e7f..d512e3d7c3 100644 --- a/data/assets/scene/solarsystem/planets/neptune/kernels.asset +++ b/data/assets/scene/solarsystem/planets/neptune/kernels.asset @@ -5,10 +5,10 @@ local Kernels = asset.syncedResource({ Version = 1 }) -asset.export("nep081", Kernels .. '/nep081.bsp') -asset.export("nep086", Kernels .. '/nep086.bsp') -asset.export("nep087", Kernels .. '/nep087.bsp') -asset.export("nep088", Kernels .. '/nep088.bsp') +asset.export("nep081", Kernels .. "nep081.bsp") +asset.export("nep086", Kernels .. "nep086.bsp") +asset.export("nep087", Kernels .. "nep087.bsp") +asset.export("nep088", Kernels .. "nep088.bsp") asset.meta = { diff --git a/data/assets/scene/solarsystem/planets/neptune/layers/colorlayers/neptune_texture.asset b/data/assets/scene/solarsystem/planets/neptune/layers/colorlayers/neptune_texture.asset index 5ee223dfa1..a28c779835 100644 --- a/data/assets/scene/solarsystem/planets/neptune/layers/colorlayers/neptune_texture.asset +++ b/data/assets/scene/solarsystem/planets/neptune/layers/colorlayers/neptune_texture.asset @@ -1,18 +1,29 @@ -local texturesPath = asset.require("./../../neptune_textures").TexturesPath -local globeIdentifier = asset.require("./../../neptune").Neptune.Identifier +local globeIdentifier = asset.require("../../neptune").Neptune.Identifier + +local texturesPath = asset.syncedResource({ + Name = "Neptune textures", + Type = "HttpSynchronization", + Identifier = "neptune_textures", + Version = 1 +}) local layer = { Identifier = "Texture", - FilePath = texturesPath .. "/neptune.jpg", + FilePath = texturesPath .. "neptune.jpg", } -asset.onInitialize(function () +asset.onInitialize(function() openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer) end) +asset.onDeinitialize(function() + openspace.globebrowsing.deleteLayer(globeIdentifier, "ColorLayers", layer) +end) + asset.export("layer", layer) + asset.meta = { Name = "Neptune Texutre", Version = "1.0", diff --git a/data/assets/scene/solarsystem/planets/neptune/major_moons.asset b/data/assets/scene/solarsystem/planets/neptune/major_moons.asset index 698924a3e3..18ffe8f9b0 100644 --- a/data/assets/scene/solarsystem/planets/neptune/major_moons.asset +++ b/data/assets/scene/solarsystem/planets/neptune/major_moons.asset @@ -1,4 +1,4 @@ -asset.require('./triton') +asset.require("./triton") asset.meta = { diff --git a/data/assets/scene/solarsystem/planets/neptune/minor_moons.asset b/data/assets/scene/solarsystem/planets/neptune/minor_moons.asset index 83a3d6391f..584e67489b 100644 --- a/data/assets/scene/solarsystem/planets/neptune/minor_moons.asset +++ b/data/assets/scene/solarsystem/planets/neptune/minor_moons.asset @@ -1,3 +1,14 @@ -asset.require('./inner_moons') -asset.require('./irregular_prograde_moons') -asset.require('./irregular_retrograde_moons') +asset.require("./inner_moons") +asset.require("./irregular_prograde_moons") +asset.require("./irregular_retrograde_moons") + + +asset.meta = { + Name = "Neptune Minor Moons", + Version = "1.0", + Description = [[ Meta asset containing 3 moon groups: inner_moons, + irregular_prograde_moons, and irregular_retrograde_moons]], + Author = "OpenSpace Team", + URL = "http://openspaceproject.com", + License = "MIT license" +} diff --git a/data/assets/scene/solarsystem/planets/neptune/neptune.asset b/data/assets/scene/solarsystem/planets/neptune/neptune.asset index e4e226a339..a168e76df3 100644 --- a/data/assets/scene/solarsystem/planets/neptune/neptune.asset +++ b/data/assets/scene/solarsystem/planets/neptune/neptune.asset @@ -1,7 +1,6 @@ -local assetHelper = asset.require('util/asset_helper') -local transforms = asset.require('./transforms') +local transforms = asset.require("./transforms") asset.require("spice/base") -asset.require('./trail') +asset.require("./trail") local Neptune = { Identifier = "Neptune", @@ -53,15 +52,26 @@ local NeptuneLabel = { } } -assetHelper.registerSceneGraphNodesAndExport(asset, { Neptune, NeptuneLabel }) +asset.onInitialize(function() + openspace.addSceneGraphNode(Neptune) + openspace.addSceneGraphNode(NeptuneLabel) +end) + +asset.onDeinitialize(function() + openspace.removeSceneGraphNode(NeptuneLabel) + openspace.removeSceneGraphNode(Neptune) +end) + +asset.export(Neptune) +asset.export(NeptuneLabel) + asset.meta = { Name = "Neptune", - Version = "1.0", + Version = "1.1", Description = [[ Neptune globe, and main planet label.]], Author = "OpenSpace Team", URL = "http://openspaceproject.com", - License = "MIT license", - Identifiers = {"Neptune"} + License = "MIT license" } diff --git a/data/assets/scene/solarsystem/planets/neptune/neptune_textures.asset b/data/assets/scene/solarsystem/planets/neptune/neptune_textures.asset deleted file mode 100644 index 13adefb9a0..0000000000 --- a/data/assets/scene/solarsystem/planets/neptune/neptune_textures.asset +++ /dev/null @@ -1,7 +0,0 @@ -local TexturesPath = asset.syncedResource({ - Name = "Neptune textures", - Type = "HttpSynchronization", - Identifier = "neptune_textures", - Version = 1 -}) -asset.export("TexturesPath", TexturesPath) diff --git a/data/assets/scene/solarsystem/planets/neptune/trail.asset b/data/assets/scene/solarsystem/planets/neptune/trail.asset index a20febb561..dbf45d8b65 100644 --- a/data/assets/scene/solarsystem/planets/neptune/trail.asset +++ b/data/assets/scene/solarsystem/planets/neptune/trail.asset @@ -1,5 +1,4 @@ -local assetHelper = asset.require('util/asset_helper') -local transforms = asset.require('scene/solarsystem/sun/transforms') +local transforms = asset.require("scene/solarsystem/sun/transforms") asset.require("spice/base") @@ -37,15 +36,23 @@ local NeptuneTrail = { } } -assetHelper.registerSceneGraphNodesAndExport(asset, { NeptuneTrail }) +asset.onInitialize(function() + openspace.addSceneGraphNode(NeptuneTrail) +end) + +asset.onDeinitialize(function() + openspace.removeSceneGraphNode(NeptuneTrail) +end) + +asset.export(NeptuneTrail) + asset.meta = { Name = "Neptune Trail", - Version = "1.0", + Version = "1.1", Description = [[ Main trail of Neptune. Data from NASA Spice (see base spice asset)]], Author = "OpenSpace Team", URL = "http://openspaceproject.com", - License = "MIT license", - Identifiers = {"NeptuneTrail"} + License = "MIT license" } diff --git a/data/assets/scene/solarsystem/planets/neptune/trail_earth.asset b/data/assets/scene/solarsystem/planets/neptune/trail_earth.asset index 791e8f70dd..fdab646770 100644 --- a/data/assets/scene/solarsystem/planets/neptune/trail_earth.asset +++ b/data/assets/scene/solarsystem/planets/neptune/trail_earth.asset @@ -1,6 +1,5 @@ -local assetHelper = asset.require('util/asset_helper') -local transforms = asset.require('scene/solarsystem/sun/transforms') -local earthTransforms = asset.require('scene/solarsystem/planets/earth/transforms') +local transforms = asset.require("scene/solarsystem/sun/transforms") +local earthTransforms = asset.require("scene/solarsystem/planets/earth/transforms") asset.require("spice/base") @@ -29,16 +28,24 @@ local NeptuneTrailEarth = { } } -assetHelper.registerSceneGraphNodesAndExport(asset, { NeptuneTrailEarth }) +asset.onInitialize(function() + openspace.addSceneGraphNode(NeptuneTrailEarth) +end) + +asset.onDeinitialize(function() + openspace.removeSceneGraphNode(NeptuneTrailEarth) +end) + +asset.export(NeptuneTrailEarth) + asset.meta = { Name = "Neptune Trail from Earth", - Version = "1.0", + Version = "1.1", Description = [[ Alternate trail of Neptune, as observed by the Earth rather then the Sun.]], Author = "OpenSpace Team", URL = "http://openspaceproject.com", - License = "MIT license", - Identifiers = {"NeptuneTrailEarth"} + License = "MIT license" } diff --git a/data/assets/scene/solarsystem/planets/neptune/transforms.asset b/data/assets/scene/solarsystem/planets/neptune/transforms.asset index d5f0409737..2903a97f49 100644 --- a/data/assets/scene/solarsystem/planets/neptune/transforms.asset +++ b/data/assets/scene/solarsystem/planets/neptune/transforms.asset @@ -1,5 +1,4 @@ -local assetHelper = asset.require('util/asset_helper') -local sun_transforms_asset = asset.require('scene/solarsystem/sun/transforms') +local sun_transforms_asset = asset.require("scene/solarsystem/sun/transforms") asset.require("spice/base") local NeptuneBarycenter = { @@ -20,15 +19,23 @@ local NeptuneBarycenter = { } } -assetHelper.registerSceneGraphNodesAndExport(asset, { NeptuneBarycenter }) +asset.onInitialize(function() + openspace.addSceneGraphNode(NeptuneBarycenter) +end) + +asset.onDeinitialize(function() + openspace.removeSceneGraphNode(NeptuneBarycenter) +end) + +asset.export(NeptuneBarycenter) + asset.meta = { Name = "Neptune Transforms", - Version = "1.0", + Version = "1.1", Description = [[ Neptune Barycenter transform ]], Author = "OpenSpace Team", URL = "http://openspaceproject.com", - License = "MIT license", - Identifiers = {"NeptuneBarycenter"} + License = "MIT license" } diff --git a/data/assets/scene/solarsystem/planets/neptune/triton.asset b/data/assets/scene/solarsystem/planets/neptune/triton.asset index 8dec8708d0..de7145d24c 100644 --- a/data/assets/scene/solarsystem/planets/neptune/triton.asset +++ b/data/assets/scene/solarsystem/planets/neptune/triton.asset @@ -1,7 +1,6 @@ -local assetHelper = asset.require('util/asset_helper') -local proceduralGlobes = asset.require('util/procedural_globe') -local transforms = asset.require('./transforms') -local kernel = asset.require('./kernels').nep081 +local proceduralGlobes = asset.require("util/procedural_globe") +local transforms = asset.require("./transforms") +local kernel = asset.require("./kernels").nep081 @@ -23,19 +22,32 @@ local Triton = { Kernels = kernel } -assetHelper.registerSceneGraphNodesAndExport( - asset, - proceduralGlobes.createGlobes({ Triton }) -) +local nodes = proceduralGlobes.createGlobes({ Triton }) + +asset.onInitialize(function() + for _, node in ipairs(nodes) do + openspace.addSceneGraphNode(node) + end +end) + +asset.onDeinitialize(function() + for i = #nodes, 1, -1 do + openspace.removeSceneGraphNode(nodes[i]) + end +end) + +for _, node in ipairs(nodes) do + asset.export(node) +end + asset.meta = { Name = "Triton", - Version = "1.0", + Version = "1.1", Description = [[ Procedural Globe asset containing Neptune's moon: Triton. A blank globe and SPICE trail are generated for the moon.]], Author = "OpenSpace Team", URL = "http://openspaceproject.com", - License = "MIT license", - Identifiers = {"Triton"} + License = "MIT license" } diff --git a/data/assets/scene/solarsystem/planets/planets.asset b/data/assets/scene/solarsystem/planets/planets.asset index 1b6fac78fc..77fb625fc8 100644 --- a/data/assets/scene/solarsystem/planets/planets.asset +++ b/data/assets/scene/solarsystem/planets/planets.asset @@ -1,33 +1,33 @@ -asset.require('./mercury/mercury') +asset.require("./mercury/mercury") -asset.require('./venus/venus') -asset.require('./venus/trail') -asset.require('./venus/trail_earth') -asset.require('./venus/atmosphere') +asset.require("./venus/venus") +asset.require("./venus/trail") +asset.require("./venus/trail_earth") +asset.require("./venus/atmosphere") -asset.require('./earth/earth') -asset.require('./earth/trail') -asset.require('./earth/atmosphere') -asset.require('./earth/markers') -asset.require('./earth/moon/moon') -asset.require('./earth/moon/trail') +asset.require("./earth/earth") +asset.require("./earth/trail") +asset.require("./earth/atmosphere") +asset.require("./earth/markers") +asset.require("./earth/moon/moon") +asset.require("./earth/moon/trail") -asset.require('./mars/mars') -asset.require('./mars/atmosphere') -asset.require('./mars/moons/phobos') -asset.require('./mars/moons/deimos') +asset.require("./mars/mars") +asset.require("./mars/atmosphere") +asset.require("./mars/moons/phobos") +asset.require("./mars/moons/deimos") -asset.require('./jupiter/jupiter') -asset.require('./jupiter/major_moons') +asset.require("./jupiter/jupiter") +asset.require("./jupiter/major_moons") -asset.require('./saturn/saturn') -asset.require('./saturn/major_moons') +asset.require("./saturn/saturn") +asset.require("./saturn/major_moons") -asset.require('./uranus/uranus') -asset.require('./uranus/major_moons') +asset.require("./uranus/uranus") +asset.require("./uranus/major_moons") -asset.require('./neptune/neptune') -asset.require('./neptune/major_moons') +asset.require("./neptune/neptune") +asset.require("./neptune/major_moons") asset.meta = { diff --git a/data/assets/scene/solarsystem/planets/saturn/default_layers.asset b/data/assets/scene/solarsystem/planets/saturn/default_layers.asset index 897c4f114d..5e92d43950 100644 --- a/data/assets/scene/solarsystem/planets/saturn/default_layers.asset +++ b/data/assets/scene/solarsystem/planets/saturn/default_layers.asset @@ -1,6 +1,4 @@ -local colorLayersPath = "./layers/colorlayers" - -local colorLayer = asset.require(colorLayersPath .. "/saturn_texture") +local colorLayer = asset.require("./layers/colorlayers/saturn_texture") -- Set enabled layers (temporary solution) -- @TODO: do this using a boolean that's passed to the 'asset.require' instead diff --git a/data/assets/scene/solarsystem/planets/saturn/dione/default_layers.asset b/data/assets/scene/solarsystem/planets/saturn/dione/default_layers.asset index d68bb5c002..267d525cf9 100644 --- a/data/assets/scene/solarsystem/planets/saturn/dione/default_layers.asset +++ b/data/assets/scene/solarsystem/planets/saturn/dione/default_layers.asset @@ -1,6 +1,4 @@ -local colorLayersPath = "./layers/colorlayers" - -local colorLayer = asset.require(colorLayersPath .. "/dione_texture") +local colorLayer = asset.require("./layers/colorlayers/dione_texture") -- Set enabled layers (temporary solution) -- @TODO: do this using a boolean that's passed to the 'asset.require' instead diff --git a/data/assets/scene/solarsystem/planets/saturn/dione/dione.asset b/data/assets/scene/solarsystem/planets/saturn/dione/dione.asset index f91edea8ed..bafd58fbc1 100644 --- a/data/assets/scene/solarsystem/planets/saturn/dione/dione.asset +++ b/data/assets/scene/solarsystem/planets/saturn/dione/dione.asset @@ -1,8 +1,13 @@ -local transforms = asset.require('../transforms') -local assetHelper = asset.require('util/asset_helper') -local kernel = asset.require('../kernels').sat375 -asset.require('./trail') -local labelsPath = asset.require('../saturn_globelabels').LabelsPath +local transforms = asset.require("../transforms") +local kernel = asset.require("../kernels").sat375 +asset.require("./trail") + +local labelsPath = asset.syncedResource({ + Name = "Saturn Labels", + Type = "HttpSynchronization", + Identifier = "saturn_labels", + Version = 1 +}) local Dione = { Identifier = "Dione", @@ -27,7 +32,7 @@ local Dione = { Layers = {}, Labels = { Enabled = false, - FileName = labelsPath .. "/dione.labels", + FileName = labelsPath .. "dione.labels", AlignmentOption = "Horizontally", -- or Circularly FontSize = 20.0, Size = 8.7, @@ -44,7 +49,16 @@ local Dione = { } } -assetHelper.registerSceneGraphNodesAndExport(asset, { Dione }) +asset.onInitialize(function() + openspace.addSceneGraphNode(Dione) +end) + +asset.onDeinitialize(function() + openspace.removeSceneGraphNode(Dione) +end) + +asset.export(Dione) + asset.meta = { diff --git a/data/assets/scene/solarsystem/planets/saturn/dione/dione_textures.asset b/data/assets/scene/solarsystem/planets/saturn/dione/dione_textures.asset deleted file mode 100644 index d104446236..0000000000 --- a/data/assets/scene/solarsystem/planets/saturn/dione/dione_textures.asset +++ /dev/null @@ -1,7 +0,0 @@ -local TexturesPath = asset.syncedResource({ - Name = "Dione textures", - Type = "HttpSynchronization", - Identifier = "dione_textures", - Version = 1 -}) -asset.export("TexturesPath", TexturesPath) diff --git a/data/assets/scene/solarsystem/planets/saturn/dione/layers/colorlayers/dione_texture.asset b/data/assets/scene/solarsystem/planets/saturn/dione/layers/colorlayers/dione_texture.asset index 8f58e9f7d2..ac97ec449d 100644 --- a/data/assets/scene/solarsystem/planets/saturn/dione/layers/colorlayers/dione_texture.asset +++ b/data/assets/scene/solarsystem/planets/saturn/dione/layers/colorlayers/dione_texture.asset @@ -1,18 +1,29 @@ -local texturesPath = asset.require("./../../dione_textures").TexturesPath -local globeIdentifier = asset.require("./../../dione").Dione.Identifier +local globeIdentifier = asset.require("../../dione").Dione.Identifier + +local texturesPath = asset.syncedResource({ + Name = "Dione textures", + Type = "HttpSynchronization", + Identifier = "dione_textures", + Version = 1 +}) local layer = { Identifier = "Texture", - FilePath = texturesPath .. "/dione.jpg", + FilePath = texturesPath .. "dione.jpg", } -asset.onInitialize(function () +asset.onInitialize(function() openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer) end) +asset.onDeinitialize(function() + openspace.globebrowsing.deleteLayer(globeIdentifier, "ColorLayers", layer) +end) + asset.export("layer", layer) + asset.meta = { Name = "Dione Texutre", Version = "1.0", diff --git a/data/assets/scene/solarsystem/planets/saturn/dione/trail.asset b/data/assets/scene/solarsystem/planets/saturn/dione/trail.asset index 3b2f8a2d60..6540dcff54 100644 --- a/data/assets/scene/solarsystem/planets/saturn/dione/trail.asset +++ b/data/assets/scene/solarsystem/planets/saturn/dione/trail.asset @@ -1,6 +1,5 @@ -local transforms = asset.require('../transforms') -local assetHelper = asset.require('util/asset_helper') -local kernel = asset.require('../kernels').sat375 +local transforms = asset.require("../transforms") +local kernel = asset.require("../kernels").sat375 @@ -27,7 +26,16 @@ local DioneTrail = { } } -assetHelper.registerSceneGraphNodesAndExport(asset, { DioneTrail }) +asset.onInitialize(function() + openspace.addSceneGraphNode(DioneTrail) +end) + +asset.onDeinitialize(function() + openspace.removeSceneGraphNode(DioneTrail) +end) + +asset.export(DioneTrail) + asset.meta = { diff --git a/data/assets/scene/solarsystem/planets/saturn/enceladus/default_layers.asset b/data/assets/scene/solarsystem/planets/saturn/enceladus/default_layers.asset index f488cfd5b7..415a5f882d 100644 --- a/data/assets/scene/solarsystem/planets/saturn/enceladus/default_layers.asset +++ b/data/assets/scene/solarsystem/planets/saturn/enceladus/default_layers.asset @@ -1,7 +1,5 @@ -local colorLayersPath = "./layers/colorlayers" - -asset.require(colorLayersPath .. "/enceladus_texture") -local colorLayer = asset.require(colorLayersPath .. "/global_mosaic_100m_hpf") +asset.require("./layers/colorlayers/enceladus_texture") +local colorLayer = asset.require("./layers/colorlayers/global_mosaic_100m_hpf") -- Set enabled layers (temporary solution) -- @TODO: do this using a boolean that's passed to the 'asset.require' instead diff --git a/data/assets/scene/solarsystem/planets/saturn/enceladus/enceladus.asset b/data/assets/scene/solarsystem/planets/saturn/enceladus/enceladus.asset index 87d416faea..872b68b36d 100644 --- a/data/assets/scene/solarsystem/planets/saturn/enceladus/enceladus.asset +++ b/data/assets/scene/solarsystem/planets/saturn/enceladus/enceladus.asset @@ -1,8 +1,13 @@ -local transforms = asset.require('../transforms') -local assetHelper = asset.require('util/asset_helper') -local kernel = asset.require('../kernels').sat375 -asset.require('./trail') -local labelsPath = asset.require('../saturn_globelabels').LabelsPath +local transforms = asset.require("../transforms") +local kernel = asset.require("../kernels").sat375 +asset.require("./trail") + +local labelsPath = asset.syncedResource({ + Name = "Saturn Labels", + Type = "HttpSynchronization", + Identifier = "saturn_labels", + Version = 1 +}) local Enceladus = { Identifier = "Enceladus", @@ -27,7 +32,7 @@ local Enceladus = { Layers = {}, Labels = { Enabled = false, - FileName = labelsPath .. "/enceladus.labels", + FileName = labelsPath .. "enceladus.labels", AlignmentOption = "Horizontally", -- or Circularly FontSize = 20.0, Size = 8.1, @@ -46,15 +51,23 @@ local Enceladus = { } } -assetHelper.registerSceneGraphNodesAndExport(asset, { Enceladus }) +asset.onInitialize(function() + openspace.addSceneGraphNode(Enceladus) +end) + +asset.onDeinitialize(function() + openspace.removeSceneGraphNode(Enceladus) +end) + +asset.export(Enceladus) + asset.meta = { Name = "Enceladus", - Version = "1.0", + Version = "1.1", Description = [[ Enceladus globe with labels and map layers]], Author = "OpenSpace Team", URL = "http://openspaceproject.com", - License = "MIT license", - Identifiers = {"Enceladus"} + License = "MIT license" } diff --git a/data/assets/scene/solarsystem/planets/saturn/enceladus/enceladus_textures.asset b/data/assets/scene/solarsystem/planets/saturn/enceladus/enceladus_textures.asset deleted file mode 100644 index 39beb256b2..0000000000 --- a/data/assets/scene/solarsystem/planets/saturn/enceladus/enceladus_textures.asset +++ /dev/null @@ -1,7 +0,0 @@ -local TexturesPath = asset.syncedResource({ - Name = "Enceladus textures", - Type = "HttpSynchronization", - Identifier = "enceladus_textures", - Version = 1 -}) -asset.export("TexturesPath", TexturesPath) diff --git a/data/assets/scene/solarsystem/planets/saturn/enceladus/layers/colorlayers/enceladus_texture.asset b/data/assets/scene/solarsystem/planets/saturn/enceladus/layers/colorlayers/enceladus_texture.asset index cb60a5f6f4..6af48cb20d 100644 --- a/data/assets/scene/solarsystem/planets/saturn/enceladus/layers/colorlayers/enceladus_texture.asset +++ b/data/assets/scene/solarsystem/planets/saturn/enceladus/layers/colorlayers/enceladus_texture.asset @@ -1,18 +1,29 @@ -local texturesPath = asset.require("./../../enceladus_textures").TexturesPath -local globeIdentifier = asset.require("./../../enceladus").Enceladus.Identifier +local globeIdentifier = asset.require("../../enceladus").Enceladus.Identifier + +local texturesPath = asset.syncedResource({ + Name = "Enceladus textures", + Type = "HttpSynchronization", + Identifier = "enceladus_textures", + Version = 1 +}) local layer = { Identifier = "Texture", - FilePath = texturesPath .. "/enceladus.jpg", + FilePath = texturesPath .. "enceladus.jpg", } -asset.onInitialize(function () +asset.onInitialize(function() openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer) end) +asset.onDeinitialize(function() + openspace.globebrowsing.deleteLayer(globeIdentifier, "ColorLayers", layer) +end) + asset.export("layer", layer) + asset.meta = { Name = "Enceladus Texutre", Version = "1.0", diff --git a/data/assets/scene/solarsystem/planets/saturn/enceladus/layers/colorlayers/global_mosaic_100m_hpf.asset b/data/assets/scene/solarsystem/planets/saturn/enceladus/layers/colorlayers/global_mosaic_100m_hpf.asset index 861e113338..02eb75a9e5 100644 --- a/data/assets/scene/solarsystem/planets/saturn/enceladus/layers/colorlayers/global_mosaic_100m_hpf.asset +++ b/data/assets/scene/solarsystem/planets/saturn/enceladus/layers/colorlayers/global_mosaic_100m_hpf.asset @@ -1,10 +1,9 @@ -local mapServiceConfigs = asset.localResource("./../../map_service_configs") -local globeIdentifier = asset.require("./../../enceladus").Enceladus.Identifier +local globeIdentifier = asset.require("../../enceladus").Enceladus.Identifier local layer = { Identifier = "Global_Mosaic_100m_HPF", Name = "Cassini Global Mosaic 100m HPF", - FilePath = mapServiceConfigs .. "/Cassini_ISS_Global_Mosaic_100m_HPF.wms", + FilePath = asset.localResource("global_mosaic_100m_hpf.wms"), Description = [[ This mosaic represents the completion of a global control network of Enceladus containing Cassini Imaging Science Subsystem (ISS) images. A total of 586 images in CLR, GRN, UV3, and IR3 filters were selected for the control @@ -13,13 +12,18 @@ local layer = { than 120 degrees. (Description from URL).]] } -asset.onInitialize(function () +asset.onInitialize(function() openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer) end) +asset.onDeinitialize(function() + openspace.globebrowsing.deleteLayer(globeIdentifier, "ColorLayers", layer) +end) + asset.export("layer", layer) + asset.meta = { Name = "Cassini Global Mosaic 100m HPF", Version = "1.0", @@ -28,6 +32,5 @@ asset.meta = { Author = "USGS", URL = "https://astrogeology.usgs.gov/search/map/Enceladus/Cassini/" .. "Enceladus_Cassini_ISS_Global_Mosaic_100m_HPF", - License = "NASA/PDS", - Identifiers = {"Global_Mosaic_100m_HPF"} + License = "NASA/PDS" } diff --git a/data/assets/scene/solarsystem/planets/saturn/enceladus/map_service_configs/Cassini_ISS_Global_Mosaic_100m_HPF.wms b/data/assets/scene/solarsystem/planets/saturn/enceladus/layers/colorlayers/global_mosaic_100m_hpf.wms similarity index 100% rename from data/assets/scene/solarsystem/planets/saturn/enceladus/map_service_configs/Cassini_ISS_Global_Mosaic_100m_HPF.wms rename to data/assets/scene/solarsystem/planets/saturn/enceladus/layers/colorlayers/global_mosaic_100m_hpf.wms diff --git a/data/assets/scene/solarsystem/planets/saturn/enceladus/trail.asset b/data/assets/scene/solarsystem/planets/saturn/enceladus/trail.asset index df798fc9bb..e1887631b7 100644 --- a/data/assets/scene/solarsystem/planets/saturn/enceladus/trail.asset +++ b/data/assets/scene/solarsystem/planets/saturn/enceladus/trail.asset @@ -1,6 +1,5 @@ -local transforms = asset.require('../transforms') -local assetHelper = asset.require('util/asset_helper') -local kernel = asset.require('../kernels').sat375 +local transforms = asset.require("../transforms") +local kernel = asset.require("../kernels").sat375 @@ -27,15 +26,23 @@ local EnceladusTrail = { } } -assetHelper.registerSceneGraphNodesAndExport(asset, { EnceladusTrail }) +asset.onInitialize(function() + openspace.addSceneGraphNode(EnceladusTrail) +end) + +asset.onDeinitialize(function() + openspace.removeSceneGraphNode(EnceladusTrail) +end) + +asset.export(EnceladusTrail) + asset.meta = { Name = "Enceladus Trail", - Version = "1.0", + Version = "1.1", Description = [[ Trail for Enceladus. Data from NASA Spice (see base spice asset)]], Author = "OpenSpace Team", URL = "http://openspaceproject.com", - License = "MIT license", - Identifiers = {"EnceladusTrail"} + License = "MIT license" } diff --git a/data/assets/scene/solarsystem/planets/saturn/hyperion/default_layers.asset b/data/assets/scene/solarsystem/planets/saturn/hyperion/default_layers.asset index ad25754fce..d575176f1d 100644 --- a/data/assets/scene/solarsystem/planets/saturn/hyperion/default_layers.asset +++ b/data/assets/scene/solarsystem/planets/saturn/hyperion/default_layers.asset @@ -1,3 +1 @@ -local colorLayersPath = "./layers/colorlayers" - -- @TODO: when we have a working texture, add it here diff --git a/data/assets/scene/solarsystem/planets/saturn/hyperion/hyperion.asset b/data/assets/scene/solarsystem/planets/saturn/hyperion/hyperion.asset index 763123733a..9354cedd77 100644 --- a/data/assets/scene/solarsystem/planets/saturn/hyperion/hyperion.asset +++ b/data/assets/scene/solarsystem/planets/saturn/hyperion/hyperion.asset @@ -1,8 +1,13 @@ -local transforms = asset.require('../transforms') -local assetHelper = asset.require('util/asset_helper') -local kernel = asset.require('../kernels').sat375 -asset.require('./trail') -local labelsPath = asset.require('../saturn_globelabels').LabelsPath +local transforms = asset.require("../transforms") +local kernel = asset.require("../kernels").sat375 +asset.require("./trail") + +local labelsPath = asset.syncedResource({ + Name = "Saturn Labels", + Type = "HttpSynchronization", + Identifier = "saturn_labels", + Version = 1 +}) local Hyperion = { Identifier = "Hyperion", @@ -28,7 +33,7 @@ local Hyperion = { Labels = { -- @TODO (2021-05-21, emmbr26) These labels do not seem to be visible Enabled = false, - FileName = labelsPath .. "/hyperion.labels", + FileName = labelsPath .. "hyperion.labels", AlignmentOption = "Horizontally", -- or Circularly FontSize = 20.0, Size = 8.6, @@ -45,15 +50,23 @@ local Hyperion = { } } -assetHelper.registerSceneGraphNodesAndExport(asset, { Hyperion }) +asset.onInitialize(function() + openspace.addSceneGraphNode(Hyperion) +end) + +asset.onDeinitialize(function() + openspace.removeSceneGraphNode(Hyperion) +end) + +asset.export(Hyperion) + asset.meta = { Name = "Hyperion", - Version = "1.0", + Version = "1.1", Description = [[ Hyperion globe with labels]], Author = "OpenSpace Team", URL = "http://openspaceproject.com", - License = "MIT license", - Identifiers = {"Hyperion"} + License = "MIT license" } diff --git a/data/assets/scene/solarsystem/planets/saturn/hyperion/trail.asset b/data/assets/scene/solarsystem/planets/saturn/hyperion/trail.asset index a250809874..2043b08757 100644 --- a/data/assets/scene/solarsystem/planets/saturn/hyperion/trail.asset +++ b/data/assets/scene/solarsystem/planets/saturn/hyperion/trail.asset @@ -1,6 +1,5 @@ -local transforms = asset.require('../transforms') -local assetHelper = asset.require('util/asset_helper') -local kernel = asset.require('../kernels').sat375 +local transforms = asset.require("../transforms") +local kernel = asset.require("../kernels").sat375 @@ -26,16 +25,24 @@ local HyperionTrail = { } } -assetHelper.registerSceneGraphNodesAndExport(asset, { HyperionTrail }) +asset.onInitialize(function() + openspace.addSceneGraphNode(HyperionTrail) +end) + +asset.onDeinitialize(function() + openspace.removeSceneGraphNode(HyperionTrail) +end) + +asset.export(HyperionTrail) + asset.meta = { Name = "Hyperion Trail", - Version = "1.0", + Version = "1.1", Description = [[ Trail of Saturn's moon Hyperion as observed by Saturn. Data from NASA Spice (see base spice asset)]], Author = "OpenSpace Team", URL = "http://openspaceproject.com", - License = "MIT license", - Identifiers = {"HyperionTrail"} + License = "MIT license" } diff --git a/data/assets/scene/solarsystem/planets/saturn/iapetus/default_layers.asset b/data/assets/scene/solarsystem/planets/saturn/iapetus/default_layers.asset index 9371e07f55..b2ae09d769 100644 --- a/data/assets/scene/solarsystem/planets/saturn/iapetus/default_layers.asset +++ b/data/assets/scene/solarsystem/planets/saturn/iapetus/default_layers.asset @@ -1,6 +1,4 @@ -local colorLayersPath = "./layers/colorlayers" - -local colorLayer = asset.require(colorLayersPath .. "/iapetus_texture") +local colorLayer = asset.require("./layers/colorlayers/iapetus_texture") -- Set enabled layers (temporary solution) -- @TODO: do this using a boolean that's passed to the 'asset.require' instead diff --git a/data/assets/scene/solarsystem/planets/saturn/iapetus/iapetus.asset b/data/assets/scene/solarsystem/planets/saturn/iapetus/iapetus.asset index 17c3c89c4b..801995f9d3 100644 --- a/data/assets/scene/solarsystem/planets/saturn/iapetus/iapetus.asset +++ b/data/assets/scene/solarsystem/planets/saturn/iapetus/iapetus.asset @@ -1,8 +1,13 @@ -local transforms = asset.require('../transforms') -local assetHelper = asset.require('util/asset_helper') -local kernel = asset.require('../kernels').sat375 -asset.require('./trail') -local labelsPath = asset.require('../saturn_globelabels').LabelsPath +local transforms = asset.require("../transforms") +local kernel = asset.require("../kernels").sat375 +asset.require("./trail") + +local labelsPath = asset.syncedResource({ + Name = "Saturn Labels", + Type = "HttpSynchronization", + Identifier = "saturn_labels", + Version = 1 +}) local Iapetus = { Identifier = "Iapetus", @@ -27,7 +32,7 @@ local Iapetus = { Layers = {}, Labels = { Enabled = false, - FileName = labelsPath .. "/iapetus.labels", + FileName = labelsPath .. "iapetus.labels", AlignmentOption = "Horizontally", -- or Circularly FontSize = 20.0, Size = 8.7, @@ -46,7 +51,16 @@ local Iapetus = { } } -assetHelper.registerSceneGraphNodesAndExport(asset, { Iapetus }) +asset.onInitialize(function() + openspace.addSceneGraphNode(Iapetus) +end) + +asset.onDeinitialize(function() + openspace.removeSceneGraphNode(Iapetus) +end) + +asset.export(Iapetus) + asset.meta = { diff --git a/data/assets/scene/solarsystem/planets/saturn/iapetus/iapetus_textures.asset b/data/assets/scene/solarsystem/planets/saturn/iapetus/iapetus_textures.asset deleted file mode 100644 index f1446cdb56..0000000000 --- a/data/assets/scene/solarsystem/planets/saturn/iapetus/iapetus_textures.asset +++ /dev/null @@ -1,7 +0,0 @@ -local TexturesPath = asset.syncedResource({ - Name = "Iapetus textures", - Type = "HttpSynchronization", - Identifier = "iapetus_textures", - Version = 1 -}) -asset.export("TexturesPath", TexturesPath) diff --git a/data/assets/scene/solarsystem/planets/saturn/iapetus/layers/colorlayers/iapetus_texture.asset b/data/assets/scene/solarsystem/planets/saturn/iapetus/layers/colorlayers/iapetus_texture.asset index d90c500f5f..0324a02da2 100644 --- a/data/assets/scene/solarsystem/planets/saturn/iapetus/layers/colorlayers/iapetus_texture.asset +++ b/data/assets/scene/solarsystem/planets/saturn/iapetus/layers/colorlayers/iapetus_texture.asset @@ -1,18 +1,29 @@ -local texturesPath = asset.require("./../../iapetus_textures").TexturesPath -local globeIdentifier = asset.require("./../../iapetus").Iapetus.Identifier +local globeIdentifier = asset.require("../../iapetus").Iapetus.Identifier + +local texturesPath = asset.syncedResource({ + Name = "Iapetus textures", + Type = "HttpSynchronization", + Identifier = "iapetus_textures", + Version = 1 +}) local layer = { Identifier = "Texture", - FilePath = texturesPath .. "/iapetus.jpg", + FilePath = texturesPath .. "iapetus.jpg", } -asset.onInitialize(function () +asset.onInitialize(function() openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer) end) +asset.onDeinitialize(function() + openspace.globebrowsing.deleteLayer(globeIdentifier, "ColorLayers", layer) +end) + asset.export("layer", layer) + asset.meta = { Name = "Iapetus Texutre", Version = "1.0", diff --git a/data/assets/scene/solarsystem/planets/saturn/iapetus/trail.asset b/data/assets/scene/solarsystem/planets/saturn/iapetus/trail.asset index d1c2c2218c..0d7e77df39 100644 --- a/data/assets/scene/solarsystem/planets/saturn/iapetus/trail.asset +++ b/data/assets/scene/solarsystem/planets/saturn/iapetus/trail.asset @@ -1,6 +1,5 @@ -local transforms = asset.require('../transforms') -local assetHelper = asset.require('util/asset_helper') -local kernel = asset.require('../kernels').sat375 +local transforms = asset.require("../transforms") +local kernel = asset.require("../kernels").sat375 @@ -27,15 +26,23 @@ local IapetusTrail = { } } -assetHelper.registerSceneGraphNodesAndExport(asset, { IapetusTrail }) +asset.onInitialize(function() + openspace.addSceneGraphNode(IapetusTrail) +end) + +asset.onDeinitialize(function() + openspace.removeSceneGraphNode(IapetusTrail) +end) + +asset.export(IapetusTrail) + asset.meta = { Name = "Iapetus Trail", - Version = "1.0", + Version = "1.1", Description = [[Main trail for Iapetus. Data from NASA Spice (see base spice asset)]], Author = "OpenSpace Team", URL = "http://openspaceproject.com", - License = "MIT license", - Identifiers = {"IapetusTrail"} + License = "MIT license" } diff --git a/data/assets/scene/solarsystem/planets/saturn/kernels.asset b/data/assets/scene/solarsystem/planets/saturn/kernels.asset index 3c4c25eca2..f709f8f8b0 100644 --- a/data/assets/scene/solarsystem/planets/saturn/kernels.asset +++ b/data/assets/scene/solarsystem/planets/saturn/kernels.asset @@ -5,10 +5,10 @@ local Kernels = asset.syncedResource({ Version = 1 }) -asset.export("sat319", Kernels .. '/sat319.bsp') -asset.export("sat368", Kernels .. '/sat368.bsp') -asset.export("sat375", Kernels .. '/sat375.bsp') -asset.export("sat393", Kernels .. '/sat393.bsp') +asset.export("sat319", Kernels .. "sat319.bsp") +asset.export("sat368", Kernels .. "sat368.bsp") +asset.export("sat375", Kernels .. "sat375.bsp") +asset.export("sat393", Kernels .. "sat393.bsp") asset.meta = { diff --git a/data/assets/scene/solarsystem/planets/saturn/layers/colorlayers/saturn_texture.asset b/data/assets/scene/solarsystem/planets/saturn/layers/colorlayers/saturn_texture.asset index 8f69e96224..e4957ce2a5 100644 --- a/data/assets/scene/solarsystem/planets/saturn/layers/colorlayers/saturn_texture.asset +++ b/data/assets/scene/solarsystem/planets/saturn/layers/colorlayers/saturn_texture.asset @@ -1,18 +1,29 @@ -local texturesPath = asset.require("./../../saturn_textures").TexturesPath -local globeIdentifier = asset.require("./../../saturn").Saturn.Identifier +local globeIdentifier = asset.require("../../saturn").Saturn.Identifier + +local texturesPath = asset.syncedResource({ + Type = "HttpSynchronization", + Name = "Saturn textures", + Identifier = "saturn_textures", + Version = 4 +}) local layer = { Identifier = "Texture", - FilePath = texturesPath .. "/saturn.jpg", + FilePath = texturesPath .. "saturn.jpg", } -asset.onInitialize(function () +asset.onInitialize(function() openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer) end) +asset.onDeinitialize(function() + openspace.globebrowsing.deleteLayer(globeIdentifier, "ColorLayers", layer) +end) + asset.export("layer", layer) + asset.meta = { Name = "Saturn Texutre", Version = "1.0", diff --git a/data/assets/scene/solarsystem/planets/saturn/major_moons.asset b/data/assets/scene/solarsystem/planets/saturn/major_moons.asset index 96b524dfe6..a17bdf389e 100644 --- a/data/assets/scene/solarsystem/planets/saturn/major_moons.asset +++ b/data/assets/scene/solarsystem/planets/saturn/major_moons.asset @@ -1,12 +1,12 @@ -asset.require('./dione/dione') -asset.require('./enceladus/enceladus') -asset.require('./hyperion/hyperion') -asset.require('./iapetus/iapetus') -asset.require('./mimas/mimas') -asset.require('./rhea/rhea') -asset.require('./tethys/tethys') -asset.require('./titan/titan') -asset.require('./titan/atmosphere') +asset.require("./dione/dione") +asset.require("./enceladus/enceladus") +asset.require("./hyperion/hyperion") +asset.require("./iapetus/iapetus") +asset.require("./mimas/mimas") +asset.require("./rhea/rhea") +asset.require("./tethys/tethys") +asset.require("./titan/titan") +asset.require("./titan/atmosphere") asset.meta = { diff --git a/data/assets/scene/solarsystem/planets/saturn/mimas/default_layers.asset b/data/assets/scene/solarsystem/planets/saturn/mimas/default_layers.asset index 8e4aca890e..67a2d8b367 100644 --- a/data/assets/scene/solarsystem/planets/saturn/mimas/default_layers.asset +++ b/data/assets/scene/solarsystem/planets/saturn/mimas/default_layers.asset @@ -1,6 +1,4 @@ -local colorLayersPath = "./layers/colorlayers" - -local colorLayer = asset.require(colorLayersPath .. "/mimas_texture") +local colorLayer = asset.require("./layers/colorlayers/mimas_texture") -- Set enabled layers (temporary solution) -- @TODO: do this using a boolean that's passed to the 'asset.require' instead diff --git a/data/assets/scene/solarsystem/planets/saturn/mimas/layers/colorlayers/mimas_texture.asset b/data/assets/scene/solarsystem/planets/saturn/mimas/layers/colorlayers/mimas_texture.asset index d16f67c799..0392990bff 100644 --- a/data/assets/scene/solarsystem/planets/saturn/mimas/layers/colorlayers/mimas_texture.asset +++ b/data/assets/scene/solarsystem/planets/saturn/mimas/layers/colorlayers/mimas_texture.asset @@ -1,18 +1,29 @@ -local texturesPath = asset.require("./../../mimas_textures").TexturesPath -local globeIdentifier = asset.require("./../../mimas").Mimas.Identifier +local globeIdentifier = asset.require("../../mimas").Mimas.Identifier + +local texturesPath = asset.syncedResource({ + Name = "Mimas textures", + Type = "HttpSynchronization", + Identifier = "mimas_textures", + Version = 1 +}) local layer = { Identifier = "Texture", - FilePath = texturesPath .. "/mimas.jpg", + FilePath = texturesPath .. "mimas.jpg", } -asset.onInitialize(function () +asset.onInitialize(function() openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer) end) +asset.onDeinitialize(function() + openspace.globebrowsing.deleteLayer(globeIdentifier, "ColorLayers", layer) +end) + asset.export("layer", layer) + asset.meta = { Name = "Mimas Texutre", Version = "1.0", diff --git a/data/assets/scene/solarsystem/planets/saturn/mimas/mimas.asset b/data/assets/scene/solarsystem/planets/saturn/mimas/mimas.asset index a54c8bc981..1a950717a6 100644 --- a/data/assets/scene/solarsystem/planets/saturn/mimas/mimas.asset +++ b/data/assets/scene/solarsystem/planets/saturn/mimas/mimas.asset @@ -1,8 +1,13 @@ -local transforms = asset.require('../transforms') -local assetHelper = asset.require('util/asset_helper') -local kernel = asset.require('../kernels').sat375 -asset.require('./trail') -local labelsPath = asset.require('../saturn_globelabels').LabelsPath +local transforms = asset.require("../transforms") +local kernel = asset.require("../kernels").sat375 +asset.require("./trail") + +local labelsPath = asset.syncedResource({ + Name = "Saturn Labels", + Type = "HttpSynchronization", + Identifier = "saturn_labels", + Version = 1 +}) local Mimas = { Identifier = "Mimas", @@ -27,7 +32,7 @@ local Mimas = { Layers = { }, Labels = { Enabled = false, - FileName = labelsPath .. "/mimas.labels", + FileName = labelsPath .. "mimas.labels", AlignmentOption = "Horizontally", -- or Circularly FontSize = 20.0, Size = 7.7, @@ -46,15 +51,23 @@ local Mimas = { } } -assetHelper.registerSceneGraphNodesAndExport(asset, { Mimas }) +asset.onInitialize(function() + openspace.addSceneGraphNode(Mimas) +end) + +asset.onDeinitialize(function() + openspace.removeSceneGraphNode(Mimas) +end) + +asset.export(Mimas) + asset.meta = { Name = "Mimas", - Version = "1.0", + Version = "1.1", Description = [[ Mimas globe with labels.]], Author = "OpenSpace Team", URL = "http://openspaceproject.com", - License = "MIT license", - Identifiers = {"Mimas"} + License = "MIT license" } diff --git a/data/assets/scene/solarsystem/planets/saturn/mimas/mimas_textures.asset b/data/assets/scene/solarsystem/planets/saturn/mimas/mimas_textures.asset deleted file mode 100644 index 9f38f20984..0000000000 --- a/data/assets/scene/solarsystem/planets/saturn/mimas/mimas_textures.asset +++ /dev/null @@ -1,7 +0,0 @@ -local TexturesPath = asset.syncedResource({ - Name = "Mimas textures", - Type = "HttpSynchronization", - Identifier = "mimas_textures", - Version = 1 -}) -asset.export("TexturesPath", TexturesPath) diff --git a/data/assets/scene/solarsystem/planets/saturn/mimas/trail.asset b/data/assets/scene/solarsystem/planets/saturn/mimas/trail.asset index 0322f99b11..0a7703d341 100644 --- a/data/assets/scene/solarsystem/planets/saturn/mimas/trail.asset +++ b/data/assets/scene/solarsystem/planets/saturn/mimas/trail.asset @@ -1,6 +1,5 @@ -local transforms = asset.require('../transforms') -local assetHelper = asset.require('util/asset_helper') -local kernel = asset.require('../kernels').sat375 +local transforms = asset.require("../transforms") +local kernel = asset.require("../kernels").sat375 @@ -27,15 +26,23 @@ local MimasTrail = { } } -assetHelper.registerSceneGraphNodesAndExport(asset, { MimasTrail }) +asset.onInitialize(function() + openspace.addSceneGraphNode(MimasTrail) +end) + +asset.onDeinitialize(function() + openspace.removeSceneGraphNode(MimasTrail) +end) + +asset.export(MimasTrail) + asset.meta = { Name = "Mimas Trail", - Version = "1.0", + Version = "1.1", Description = [[ Main trail for Mimas. Data from NASA Spice (see base spice asset)]], Author = "OpenSpace Team", URL = "http://openspaceproject.com", - License = "MIT license", - Identifiers = {"MimasTrail"} + License = "MIT license" } diff --git a/data/assets/scene/solarsystem/planets/saturn/minor/gallic_group.asset b/data/assets/scene/solarsystem/planets/saturn/minor/gallic_group.asset index f67d555de2..83d1c1a664 100644 --- a/data/assets/scene/solarsystem/planets/saturn/minor/gallic_group.asset +++ b/data/assets/scene/solarsystem/planets/saturn/minor/gallic_group.asset @@ -1,7 +1,6 @@ -local assetHelper = asset.require('util/asset_helper') -local proceduralGlobes = asset.require('util/procedural_globe') -local transforms = asset.require('../transforms') -local kernel = asset.require('../kernels').sat368 +local proceduralGlobes = asset.require("util/procedural_globe") +local transforms = asset.require("../transforms") +local kernel = asset.require("../kernels").sat368 @@ -87,10 +86,23 @@ local gallicGroup = { } } -assetHelper.registerSceneGraphNodesAndExport( - asset, - proceduralGlobes.createGlobes(gallicGroup) -) +local nodes = proceduralGlobes.createGlobes(gallicGroup) + +asset.onInitialize(function() + for _, node in ipairs(nodes) do + openspace.addSceneGraphNode(node) + end +end) + +asset.onDeinitialize(function() + for i = #nodes, 1, -1 do + openspace.removeSceneGraphNode(nodes[i]) + end +end) + +for _, node in ipairs(nodes) do + asset.export(node) +end asset.meta = { diff --git a/data/assets/scene/solarsystem/planets/saturn/minor/inuit_group.asset b/data/assets/scene/solarsystem/planets/saturn/minor/inuit_group.asset index ecdf1b457a..ac2b239055 100644 --- a/data/assets/scene/solarsystem/planets/saturn/minor/inuit_group.asset +++ b/data/assets/scene/solarsystem/planets/saturn/minor/inuit_group.asset @@ -1,7 +1,6 @@ -local assetHelper = asset.require('util/asset_helper') -local proceduralGlobes = asset.require('util/procedural_globe') -local transforms = asset.require('../transforms') -local kernel = asset.require('../kernels').sat368 +local proceduralGlobes = asset.require("util/procedural_globe") +local transforms = asset.require("../transforms") +local kernel = asset.require("../kernels").sat368 @@ -104,10 +103,23 @@ local inuitGroup = { } } -assetHelper.registerSceneGraphNodesAndExport( - asset, - proceduralGlobes.createGlobes(inuitGroup) -) +local nodes = proceduralGlobes.createGlobes(inuitGroup) + +asset.onInitialize(function() + for _, node in ipairs(nodes) do + openspace.addSceneGraphNode(node) + end +end) + +asset.onDeinitialize(function() + for i = #nodes, 1, -1 do + openspace.removeSceneGraphNode(nodes[i]) + end +end) + +for _, node in ipairs(nodes) do + asset.export(node) +end asset.meta = { diff --git a/data/assets/scene/solarsystem/planets/saturn/minor/norse_group.asset b/data/assets/scene/solarsystem/planets/saturn/minor/norse_group.asset index 4eb04bb6cc..c0fa61b17e 100644 --- a/data/assets/scene/solarsystem/planets/saturn/minor/norse_group.asset +++ b/data/assets/scene/solarsystem/planets/saturn/minor/norse_group.asset @@ -1,7 +1,6 @@ -local assetHelper = asset.require('util/asset_helper') -local proceduralGlobes = asset.require('util/procedural_globe') -local transforms = asset.require('../transforms') -local kernels = asset.require('../kernels') +local proceduralGlobes = asset.require("util/procedural_globe") +local transforms = asset.require("../transforms") +local kernels = asset.require("../kernels") local kernel368 = kernels.sat368 local kernel375 = kernels.sat375 @@ -522,10 +521,23 @@ local norseGroup = { } } -assetHelper.registerSceneGraphNodesAndExport( - asset, - proceduralGlobes.createGlobes(norseGroup) -) +local nodes = proceduralGlobes.createGlobes(norseGroup) + +asset.onInitialize(function() + for _, node in ipairs(nodes) do + openspace.addSceneGraphNode(node) + end +end) + +asset.onDeinitialize(function() + for i = #nodes, 1, -1 do + openspace.removeSceneGraphNode(nodes[i]) + end +end) + +for _, node in ipairs(nodes) do + asset.export(node) +end asset.meta = { diff --git a/data/assets/scene/solarsystem/planets/saturn/minor/other_group.asset b/data/assets/scene/solarsystem/planets/saturn/minor/other_group.asset index 1f7654e236..e1806845d9 100644 --- a/data/assets/scene/solarsystem/planets/saturn/minor/other_group.asset +++ b/data/assets/scene/solarsystem/planets/saturn/minor/other_group.asset @@ -1,7 +1,6 @@ -local assetHelper = asset.require('util/asset_helper') -local proceduralGlobes = asset.require('util/procedural_globe') -local transforms = asset.require('../transforms') -local kernels = asset.require('../kernels') +local proceduralGlobes = asset.require("util/procedural_globe") +local transforms = asset.require("../transforms") +local kernels = asset.require("../kernels") local kernel375 = kernels.sat375 local kernel393 = kernels.sat393 @@ -242,10 +241,23 @@ local otherGroup = { } } -assetHelper.registerSceneGraphNodesAndExport( - asset, - proceduralGlobes.createGlobes(otherGroup) -) +local nodes = proceduralGlobes.createGlobes(otherGroup) + +asset.onInitialize(function() + for _, node in ipairs(nodes) do + openspace.addSceneGraphNode(node) + end +end) + +asset.onDeinitialize(function() + for i = #nodes, 1, -1 do + openspace.removeSceneGraphNode(nodes[i]) + end +end) + +for _, node in ipairs(nodes) do + asset.export(node) +end asset.meta = { diff --git a/data/assets/scene/solarsystem/planets/saturn/minor_moons.asset b/data/assets/scene/solarsystem/planets/saturn/minor_moons.asset index d3a7048f7f..6fdc8071f4 100644 --- a/data/assets/scene/solarsystem/planets/saturn/minor_moons.asset +++ b/data/assets/scene/solarsystem/planets/saturn/minor_moons.asset @@ -1,7 +1,7 @@ -asset.require('./minor/gallic_group') -asset.require('./minor/inuit_group') -asset.require('./minor/norse_group') -asset.require('./minor/other_group') +asset.require("./minor/gallic_group") +asset.require("./minor/inuit_group") +asset.require("./minor/norse_group") +asset.require("./minor/other_group") asset.meta = { diff --git a/data/assets/scene/solarsystem/planets/saturn/rhea/default_layers.asset b/data/assets/scene/solarsystem/planets/saturn/rhea/default_layers.asset index 3c169d1383..8d99012f73 100644 --- a/data/assets/scene/solarsystem/planets/saturn/rhea/default_layers.asset +++ b/data/assets/scene/solarsystem/planets/saturn/rhea/default_layers.asset @@ -1,6 +1,4 @@ -local colorLayersPath = "./layers/colorlayers" - -local colorLayer = asset.require(colorLayersPath .. "/rhea_texture") +local colorLayer = asset.require("./layers/colorlayers/rhea_texture") -- Set enabled layers (temporary solution) -- @TODO: do this using a boolean that's passed to the 'asset.require' instead diff --git a/data/assets/scene/solarsystem/planets/saturn/rhea/layers/colorlayers/rhea_texture.asset b/data/assets/scene/solarsystem/planets/saturn/rhea/layers/colorlayers/rhea_texture.asset index dd36ba9160..aa803aa26d 100644 --- a/data/assets/scene/solarsystem/planets/saturn/rhea/layers/colorlayers/rhea_texture.asset +++ b/data/assets/scene/solarsystem/planets/saturn/rhea/layers/colorlayers/rhea_texture.asset @@ -1,18 +1,29 @@ -local texturesPath = asset.require("./../../rhea_textures").TexturesPath -local globeIdentifier = asset.require("./../../rhea").Rhea.Identifier +local globeIdentifier = asset.require("../../rhea").Rhea.Identifier + +local texturesPath = asset.syncedResource({ + Name = "Rhea textures", + Type = "HttpSynchronization", + Identifier = "rhea_textures", + Version = 1 +}) local layer = { Identifier = "Texture", - FilePath = texturesPath .. "/rhea.jpg", + FilePath = texturesPath .. "rhea.jpg", } -asset.onInitialize(function () +asset.onInitialize(function() openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer) end) +asset.onDeinitialize(function() + openspace.globebrowsing.deleteLayer(globeIdentifier, "ColorLayers", layer) +end) + asset.export("layer", layer) + asset.meta = { Name = "Rhea Texutre", Version = "1.0", diff --git a/data/assets/scene/solarsystem/planets/saturn/rhea/rhea.asset b/data/assets/scene/solarsystem/planets/saturn/rhea/rhea.asset index 48926b0140..322538b39f 100644 --- a/data/assets/scene/solarsystem/planets/saturn/rhea/rhea.asset +++ b/data/assets/scene/solarsystem/planets/saturn/rhea/rhea.asset @@ -1,8 +1,13 @@ -local transforms = asset.require('../transforms') -local assetHelper = asset.require('util/asset_helper') -local kernel = asset.require('../kernels').sat375 -asset.require('./trail') -local labelsPath = asset.require('../saturn_globelabels').LabelsPath +local transforms = asset.require("../transforms") +local kernel = asset.require("../kernels").sat375 +asset.require("./trail") + +local labelsPath = asset.syncedResource({ + Name = "Saturn Labels", + Type = "HttpSynchronization", + Identifier = "saturn_labels", + Version = 1 +}) local Rhea = { Identifier = "Rhea", @@ -27,7 +32,7 @@ local Rhea = { Layers = {}, Labels = { Enabled = false, - FileName = labelsPath .. "/rhea.labels", + FileName = labelsPath .. "rhea.labels", AlignmentOption = "Horizontally", -- or Circularly FontSize = 20.0, Size = 9.0, @@ -46,7 +51,16 @@ local Rhea = { } } -assetHelper.registerSceneGraphNodesAndExport(asset, { Rhea }) +asset.onInitialize(function() + openspace.addSceneGraphNode(Rhea) +end) + +asset.onDeinitialize(function() + openspace.removeSceneGraphNode(Rhea) +end) + +asset.export(Rhea) + asset.meta = { diff --git a/data/assets/scene/solarsystem/planets/saturn/rhea/rhea_textures.asset b/data/assets/scene/solarsystem/planets/saturn/rhea/rhea_textures.asset deleted file mode 100644 index 659a127fdc..0000000000 --- a/data/assets/scene/solarsystem/planets/saturn/rhea/rhea_textures.asset +++ /dev/null @@ -1,7 +0,0 @@ -local TexturesPath = asset.syncedResource({ - Name = "Rhea textures", - Type = "HttpSynchronization", - Identifier = "rhea_textures", - Version = 1 -}) -asset.export("TexturesPath", TexturesPath) diff --git a/data/assets/scene/solarsystem/planets/saturn/rhea/trail.asset b/data/assets/scene/solarsystem/planets/saturn/rhea/trail.asset index e26cc0d02b..228d664547 100644 --- a/data/assets/scene/solarsystem/planets/saturn/rhea/trail.asset +++ b/data/assets/scene/solarsystem/planets/saturn/rhea/trail.asset @@ -1,6 +1,5 @@ -local transforms = asset.require('../transforms') -local assetHelper = asset.require('util/asset_helper') -local kernel = asset.require('../kernels').sat375 +local transforms = asset.require("../transforms") +local kernel = asset.require("../kernels").sat375 @@ -27,7 +26,16 @@ local RheaTrail = { } } -assetHelper.registerSceneGraphNodesAndExport(asset, { RheaTrail }) +asset.onInitialize(function() + openspace.addSceneGraphNode(RheaTrail) +end) + +asset.onDeinitialize(function() + openspace.removeSceneGraphNode(RheaTrail) +end) + +asset.export(RheaTrail) + asset.meta = { diff --git a/data/assets/scene/solarsystem/planets/saturn/saturn.asset b/data/assets/scene/solarsystem/planets/saturn/saturn.asset index 77d44acf2a..57d98cf611 100644 --- a/data/assets/scene/solarsystem/planets/saturn/saturn.asset +++ b/data/assets/scene/solarsystem/planets/saturn/saturn.asset @@ -1,9 +1,13 @@ -local transforms = asset.require('./transforms') -local assetHelper = asset.require('util/asset_helper') +local transforms = asset.require("./transforms") asset.require("spice/base") -asset.require('./trail') +asset.require("./trail") -local texturesPath = asset.require("./saturn_textures").TexturesPath +local texturesPath = asset.syncedResource({ + Type = "HttpSynchronization", + Name = "Saturn textures", + Identifier = "saturn_textures", + Version = 4 +}) local Saturn = { Identifier = "Saturn", @@ -31,11 +35,11 @@ local Saturn = { --ColorFilter = 0.15, -- MultiTexture Valeus: - TextureFwrd = texturesPath .. "/forward_original_single.png", - TextureBckwrd = texturesPath .. "/back_original_single.png", - TextureUnlit = texturesPath .. "/unlit_original_single.png", - TextureColor = texturesPath .. "/color_original_single.png", - TextureTransparency = texturesPath .. "/trans_original_single.png", + TextureFwrd = texturesPath .. "forward_original_single.png", + TextureBckwrd = texturesPath .. "back_original_single.png", + TextureUnlit = texturesPath .. "unlit_original_single.png", + TextureColor = texturesPath .. "color_original_single.png", + TextureTransparency = texturesPath .. "trans_original_single.png", ColorFilter = 0.8, NightFactor = 1.0, @@ -76,15 +80,26 @@ local SaturnLabel = { } } -assetHelper.registerSceneGraphNodesAndExport(asset, { Saturn, SaturnLabel }) +asset.onInitialize(function() + openspace.addSceneGraphNode(Saturn) + openspace.addSceneGraphNode(SaturnLabel) +end) + +asset.onDeinitialize(function() + openspace.removeSceneGraphNode(SaturnLabel) + openspace.removeSceneGraphNode(Saturn) +end) + +asset.export(Saturn) +asset.export(SaturnLabel) + asset.meta = { Name = "Saturn", - Version = "1.0", + Version = "1.1", Description = [[ Saturn globe, and main planet label.]], Author = "OpenSpace Team", URL = "http://openspaceproject.com", - License = "MIT license", - Identifiers = {"Saturn", "SaturnLabel"} + License = "MIT license" } diff --git a/data/assets/scene/solarsystem/planets/saturn/saturn_globelabels.asset b/data/assets/scene/solarsystem/planets/saturn/saturn_globelabels.asset deleted file mode 100644 index be23aa78c1..0000000000 --- a/data/assets/scene/solarsystem/planets/saturn/saturn_globelabels.asset +++ /dev/null @@ -1,7 +0,0 @@ -local LabelsPath = asset.syncedResource({ - Name = "Saturn Labels", - Type = "HttpSynchronization", - Identifier = "saturn_labels", - Version = 1 -}) -asset.export("LabelsPath", LabelsPath) diff --git a/data/assets/scene/solarsystem/planets/saturn/saturn_textures.asset b/data/assets/scene/solarsystem/planets/saturn/saturn_textures.asset deleted file mode 100644 index 3f29c75b07..0000000000 --- a/data/assets/scene/solarsystem/planets/saturn/saturn_textures.asset +++ /dev/null @@ -1,7 +0,0 @@ -local TexturesPath = asset.syncedResource({ - Type = "HttpSynchronization", - Name = "Saturn textures", - Identifier = "saturn_textures", - Version = 4 -}) -asset.export("TexturesPath", TexturesPath) diff --git a/data/assets/scene/solarsystem/planets/saturn/tethys/default_layers.asset b/data/assets/scene/solarsystem/planets/saturn/tethys/default_layers.asset index 18d406031c..8098061f28 100644 --- a/data/assets/scene/solarsystem/planets/saturn/tethys/default_layers.asset +++ b/data/assets/scene/solarsystem/planets/saturn/tethys/default_layers.asset @@ -1,6 +1,4 @@ -local colorLayersPath = "./layers/colorlayers" - -local colorLayer = asset.require(colorLayersPath .. "/tethys_texture") +local colorLayer = asset.require("./layers/colorlayers/tethys_texture") -- Set enabled layers (temporary solution) -- @TODO: do this using a boolean that's passed to the 'asset.require' instead diff --git a/data/assets/scene/solarsystem/planets/saturn/tethys/layers/colorlayers/tethys_texture.asset b/data/assets/scene/solarsystem/planets/saturn/tethys/layers/colorlayers/tethys_texture.asset index c8a546bc6c..199047b1d2 100644 --- a/data/assets/scene/solarsystem/planets/saturn/tethys/layers/colorlayers/tethys_texture.asset +++ b/data/assets/scene/solarsystem/planets/saturn/tethys/layers/colorlayers/tethys_texture.asset @@ -1,18 +1,29 @@ -local texturesPath = asset.require("./../../tethys_textures").TexturesPath -local globeIdentifier = asset.require("./../../tethys").Tethys.Identifier +local globeIdentifier = asset.require("../../tethys").Tethys.Identifier + +local texturesPath = asset.syncedResource({ + Name = "Tethys textures", + Type = "HttpSynchronization", + Identifier = "tethys_textures", + Version = 1 +}) local layer = { Identifier = "Texture", - FilePath = texturesPath .. "/tethys.jpg", + FilePath = texturesPath .. "tethys.jpg", } -asset.onInitialize(function () +asset.onInitialize(function() openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer) end) +asset.onDeinitialize(function() + openspace.globebrowsing.deleteLayer(globeIdentifier, "ColorLayers", layer) +end) + asset.export("layer", layer) + asset.meta = { Name = "Tethys Texutre", Version = "1.0", diff --git a/data/assets/scene/solarsystem/planets/saturn/tethys/tethys.asset b/data/assets/scene/solarsystem/planets/saturn/tethys/tethys.asset index a87015d37d..1a0ca291e4 100644 --- a/data/assets/scene/solarsystem/planets/saturn/tethys/tethys.asset +++ b/data/assets/scene/solarsystem/planets/saturn/tethys/tethys.asset @@ -1,8 +1,13 @@ -local transforms = asset.require('../transforms') -local assetHelper = asset.require('util/asset_helper') -local kernel = asset.require('../kernels').sat375 -asset.require('./trail') -local labelsPath = asset.require('../saturn_globelabels').LabelsPath +local transforms = asset.require("../transforms") +local kernel = asset.require("../kernels").sat375 +asset.require("./trail") + +local labelsPath = asset.syncedResource({ + Name = "Saturn Labels", + Type = "HttpSynchronization", + Identifier = "saturn_labels", + Version = 1 +}) local Tethys = { Identifier = "Tethys", @@ -27,7 +32,7 @@ local Tethys = { Layers = {}, Labels = { Enabled = false, - FileName = labelsPath .. "/tethys.labels", + FileName = labelsPath .. "tethys.labels", AlignmentOption = "Horizontally", -- or Circularly FontSize = 20.0, Size = 8.3, @@ -44,7 +49,16 @@ local Tethys = { } } -assetHelper.registerSceneGraphNodesAndExport(asset, { Tethys }) +asset.onInitialize(function() + openspace.addSceneGraphNode(Tethys) +end) + +asset.onDeinitialize(function() + openspace.removeSceneGraphNode(Tethys) +end) + +asset.export(Tethys) + asset.meta = { diff --git a/data/assets/scene/solarsystem/planets/saturn/tethys/tethys_textures.asset b/data/assets/scene/solarsystem/planets/saturn/tethys/tethys_textures.asset deleted file mode 100644 index 804f577921..0000000000 --- a/data/assets/scene/solarsystem/planets/saturn/tethys/tethys_textures.asset +++ /dev/null @@ -1,7 +0,0 @@ -local TexturesPath = asset.syncedResource({ - Name = "Tethys textures", - Type = "HttpSynchronization", - Identifier = "tethys_textures", - Version = 1 -}) -asset.export("TexturesPath", TexturesPath) diff --git a/data/assets/scene/solarsystem/planets/saturn/tethys/trail.asset b/data/assets/scene/solarsystem/planets/saturn/tethys/trail.asset index 6a82617fae..0e92d3eaf0 100644 --- a/data/assets/scene/solarsystem/planets/saturn/tethys/trail.asset +++ b/data/assets/scene/solarsystem/planets/saturn/tethys/trail.asset @@ -1,6 +1,5 @@ -local transforms = asset.require('../transforms') -local assetHelper = asset.require('util/asset_helper') -local kernel = asset.require('../kernels').sat375 +local transforms = asset.require("../transforms") +local kernel = asset.require("../kernels").sat375 @@ -27,7 +26,16 @@ local TethysTrail = { } } -assetHelper.registerSceneGraphNodesAndExport(asset, { TethysTrail }) +asset.onInitialize(function() + openspace.addSceneGraphNode(TethysTrail) +end) + +asset.onDeinitialize(function() + openspace.removeSceneGraphNode(TethysTrail) +end) + +asset.export(TethysTrail) + asset.meta = { diff --git a/data/assets/scene/solarsystem/planets/saturn/titan/atmosphere.asset b/data/assets/scene/solarsystem/planets/saturn/titan/atmosphere.asset index c6387d927d..50b470d304 100644 --- a/data/assets/scene/solarsystem/planets/saturn/titan/atmosphere.asset +++ b/data/assets/scene/solarsystem/planets/saturn/titan/atmosphere.asset @@ -1,5 +1,4 @@ -local transforms = asset.require('./titan') -local assetHelper = asset.require('util/asset_helper') +local transforms = asset.require("./titan") local Atmosphere = { Identifier = "TitanAtmosphere", @@ -45,14 +44,22 @@ local Atmosphere = { } } -assetHelper.registerSceneGraphNodesAndExport(asset, { Atmosphere }) +asset.onInitialize(function() + openspace.addSceneGraphNode(Atmosphere) +end) + +asset.onDeinitialize(function() + openspace.removeSceneGraphNode(Atmosphere) +end) + +asset.export(Atmosphere) + asset.meta = { Name = "Titan Atmosphere", - Version = "1.0", + Version = "1.1", Description = [[ RenderableAtmosphere for Titan.]], Author = "OpenSpace Team", URL = "http://openspaceproject.com", - License = "MIT license", - Identifiers = { "TitanAtmosphere" } + License = "MIT license" } diff --git a/data/assets/scene/solarsystem/planets/saturn/titan/default_layers.asset b/data/assets/scene/solarsystem/planets/saturn/titan/default_layers.asset index faae518b07..ac35370d9d 100644 --- a/data/assets/scene/solarsystem/planets/saturn/titan/default_layers.asset +++ b/data/assets/scene/solarsystem/planets/saturn/titan/default_layers.asset @@ -1,6 +1,4 @@ -local colorLayersPath = "./layers/colorlayers" - -local colorLayer = asset.require(colorLayersPath .. "/cassini_iss_global_mosaic_4km_local") +local colorLayer = asset.require("./layers/colorlayers/cassini_iss_global_mosaic_4km_local") -- Set enabled layers (temporary solution) -- @TODO: do this using a boolean that's passed to the 'asset.require' instead diff --git a/data/assets/scene/solarsystem/planets/saturn/titan/layers/colorlayers/cassini_iss_global_mosaic_4km_local.asset b/data/assets/scene/solarsystem/planets/saturn/titan/layers/colorlayers/cassini_iss_global_mosaic_4km_local.asset index 0356317b58..c54a9432b6 100644 --- a/data/assets/scene/solarsystem/planets/saturn/titan/layers/colorlayers/cassini_iss_global_mosaic_4km_local.asset +++ b/data/assets/scene/solarsystem/planets/saturn/titan/layers/colorlayers/cassini_iss_global_mosaic_4km_local.asset @@ -1,10 +1,16 @@ -local texturesPath = asset.require("./../../titan_textures").TexturesPath -local globeIdentifier = asset.require("./../../titan").Titan.Identifier +local globeIdentifier = asset.require("../../titan").Titan.Identifier + +local texturesPath = asset.syncedResource({ + Type = "HttpSynchronization", + Name = "Titan textures", + Identifier = "titan_textures", + Version = 2 +}) local layer = { Identifier = "Cassini_ISS_Global_Mosaic_4km_Local", Name = "Cassini ISS Global Mosaic 4km", - FilePath = texturesPath .. "/Titan_ISS_P19658_Mosaic_Global_4km_os.tif", + FilePath = texturesPath .. "Titan_ISS_P19658_Mosaic_Global_4km_os.tif", Description = [[ This global digital map of Saturn's moon Titan was created using images taken by the Cassini spacecraft's Imaging Science Subsystem (ISS). The map was produced in June 2015 using data collected through Cassini's flyby on April 7, @@ -15,20 +21,24 @@ local layer = { is created at some point in the future. (Description from URL)]] } -asset.onInitialize(function () +asset.onInitialize(function() openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer) end) +asset.onDeinitialize(function() + openspace.globebrowsing.deleteLayer(globeIdentifier, "ColorLayers", layer) +end) + asset.export("layer", layer) + asset.meta = { Name = "Cassini ISS Global Mosaic", - Version = "1.0", + Version = "1.1", Description = [[ Cassini global image layer for Titan]], Author = "USGS", URL = "https://astrogeology.usgs.gov/search/map/Titan/Cassini/Global-Mosaic/" .. "Titan_ISS_P19658_Mosaic_Global_4km", - License = "NASA/PDS", - Identifiers = {"Cassini_ISS_Global_Mosaic_4km_Local"} + License = "NASA/PDS" } diff --git a/data/assets/scene/solarsystem/planets/saturn/titan/layers/colorlayers/cassini_iss_global_mosaic_4km_liu.asset b/data/assets/scene/solarsystem/planets/saturn/titan/layers/colorlayers/cassini_iss_global_mosaic_4km_sweden.asset similarity index 77% rename from data/assets/scene/solarsystem/planets/saturn/titan/layers/colorlayers/cassini_iss_global_mosaic_4km_liu.asset rename to data/assets/scene/solarsystem/planets/saturn/titan/layers/colorlayers/cassini_iss_global_mosaic_4km_sweden.asset index 759b74073f..31a6190c70 100644 --- a/data/assets/scene/solarsystem/planets/saturn/titan/layers/colorlayers/cassini_iss_global_mosaic_4km_liu.asset +++ b/data/assets/scene/solarsystem/planets/saturn/titan/layers/colorlayers/cassini_iss_global_mosaic_4km_sweden.asset @@ -1,10 +1,9 @@ -local mapServiceConfigs = asset.localResource("./../../map_service_configs") -local globeIdentifier = asset.require("./../../titan").Titan.Identifier +local globeIdentifier = asset.require("../../titan").Titan.Identifier local layer = { Identifier = "Cassini_ISS_Global_Mosaic_4km_LiU", Name = "Cassini ISS Global Mosaic [Sweden]", - FilePath = mapServiceConfigs .. "/LiU/ISS_P19658_Mosaic_Global_4km.wms", + FilePath = asset.localResource("cassini_iss_global_mosaic_4km_liu.wms"), Description = [[ This global digital map of Saturn's moon Titan was created using images taken by the Cassini spacecraft's Imaging Science Subsystem (ISS). The map was produced in June 2015 using data collected through Cassini's flyby on April 7, @@ -15,21 +14,25 @@ local layer = { is created at some point in the future. (Description from URL)]], } -asset.onInitialize(function () +asset.onInitialize(function() openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer) end) +asset.onDeinitialize(function() + openspace.globebrowsing.deleteLayer(globeIdentifier, "ColorLayers", layer) +end) + asset.export("layer", layer) + asset.meta = { Name = "Cassini ISS Global Mosaic", - Version = "1.0", + Version = "1.1", Description = [[ Cassini global image layer for Titan. This layer is hosted on the OpenSpace server in Sweden]], Author = "USGS", URL = "https://astrogeology.usgs.gov/search/map/Titan/Cassini/Global-Mosaic/" .. "Titan_ISS_P19658_Mosaic_Global_4km", - License = "NASA/PDS", - Identifiers = {"Cassini_ISS_Global_Mosaic_4km_LiU"} + License = "NASA/PDS" } diff --git a/data/assets/scene/solarsystem/planets/saturn/titan/map_service_configs/LiU/ISS_P19658_Mosaic_Global_4km.wms b/data/assets/scene/solarsystem/planets/saturn/titan/layers/colorlayers/cassini_iss_global_mosaic_4km_sweden.wms similarity index 100% rename from data/assets/scene/solarsystem/planets/saturn/titan/map_service_configs/LiU/ISS_P19658_Mosaic_Global_4km.wms rename to data/assets/scene/solarsystem/planets/saturn/titan/layers/colorlayers/cassini_iss_global_mosaic_4km_sweden.wms diff --git a/data/assets/scene/solarsystem/planets/saturn/titan/titan.asset b/data/assets/scene/solarsystem/planets/saturn/titan/titan.asset index 25e701052e..0ae3ee4a65 100644 --- a/data/assets/scene/solarsystem/planets/saturn/titan/titan.asset +++ b/data/assets/scene/solarsystem/planets/saturn/titan/titan.asset @@ -1,8 +1,13 @@ -local transforms = asset.require('../transforms') -local assetHelper = asset.require('util/asset_helper') -local kernel = asset.require('../kernels').sat375 -asset.require('./trail') -local labelsPath = asset.require('../saturn_globelabels').LabelsPath +local transforms = asset.require("../transforms") +local kernel = asset.require("../kernels").sat375 +asset.require("./trail") + +local labelsPath = asset.syncedResource({ + Name = "Saturn Labels", + Type = "HttpSynchronization", + Identifier = "saturn_labels", + Version = 1 +}) local Titan = { Identifier = "Titan", @@ -27,7 +32,7 @@ local Titan = { Layers = {}, Labels = { Enabled = false, - FileName = labelsPath .. "/titan.labels", + FileName = labelsPath .. "titan.labels", AlignmentOption = "Horizontally", -- or Circularly FontSize = 20.0, Size = 9.6, @@ -41,20 +46,28 @@ local Titan = { Tag = { "moon_solarSystem", "moon_giants", "moon_saturn" }, GUI = { Name = "Titan", - Path = "/Solar System/Planets/Saturn/Moons", + Path = "/Solar System/Planets/Saturn/Moons/Titan", Description = [[Largest moon of Saturn.]] } } -assetHelper.registerSceneGraphNodesAndExport(asset, { Titan }) +asset.onInitialize(function() + openspace.addSceneGraphNode(Titan) +end) + +asset.onDeinitialize(function() + openspace.removeSceneGraphNode(Titan) +end) + +asset.export(Titan) + asset.meta = { Name = "Titan", - Version = "1.0", + Version = "1.2", Description = [[ Titan globe with labels.]], Author = "OpenSpace Team", URL = "http://openspaceproject.com", - License = "MIT license", - Identifiers = {"Titan"} + License = "MIT license" } diff --git a/data/assets/scene/solarsystem/planets/saturn/titan/titan_textures.asset b/data/assets/scene/solarsystem/planets/saturn/titan/titan_textures.asset deleted file mode 100644 index d64bdd04f3..0000000000 --- a/data/assets/scene/solarsystem/planets/saturn/titan/titan_textures.asset +++ /dev/null @@ -1,7 +0,0 @@ -local TexturesPath = asset.syncedResource({ - Type = "HttpSynchronization", - Name = "Titan textures", - Identifier = "titan_textures", - Version = 2 -}) -asset.export("TexturesPath", TexturesPath) diff --git a/data/assets/scene/solarsystem/planets/saturn/titan/trail.asset b/data/assets/scene/solarsystem/planets/saturn/titan/trail.asset index a05d56cd22..1ba1e08fe9 100644 --- a/data/assets/scene/solarsystem/planets/saturn/titan/trail.asset +++ b/data/assets/scene/solarsystem/planets/saturn/titan/trail.asset @@ -1,6 +1,5 @@ -local transforms = asset.require('../transforms') -local assetHelper = asset.require('util/asset_helper') -local kernel = asset.require('../kernels').sat375 +local transforms = asset.require("../transforms") +local kernel = asset.require("../kernels").sat375 @@ -22,20 +21,28 @@ local TitanTrail = { Tag = { "moonTrail_solarSystem", "moonTrail_giants", "moonTrail_saturn" }, GUI = { Name = "Titan Trail", - Path = "/Solar System/Planets/Saturn/Moons", + Path = "/Solar System/Planets/Saturn/Moons/Titan", Description = [[ Trail of Saturn's moon Titan as observed by Saturn.]], } } -assetHelper.registerSceneGraphNodesAndExport(asset, { TitanTrail }) +asset.onInitialize(function() + openspace.addSceneGraphNode(TitanTrail) +end) + +asset.onDeinitialize(function() + openspace.removeSceneGraphNode(TitanTrail) +end) + +asset.export(TitanTrail) + asset.meta = { Name = "Titan Trail", - Version = "1.0", + Version = "1.2", Description = [[ Main trail for Titan. Data from NASA Spice (see base spice asset)]], Author = "OpenSpace Team", URL = "http://openspaceproject.com", - License = "MIT license", - Identifiers = {"TitanTrail"} + License = "MIT license" } diff --git a/data/assets/scene/solarsystem/planets/saturn/trail.asset b/data/assets/scene/solarsystem/planets/saturn/trail.asset index d2f09c1362..609414cbcf 100644 --- a/data/assets/scene/solarsystem/planets/saturn/trail.asset +++ b/data/assets/scene/solarsystem/planets/saturn/trail.asset @@ -1,5 +1,4 @@ -local assetHelper = asset.require('util/asset_helper') -local transforms = asset.require('scene/solarsystem/sun/transforms') +local transforms = asset.require("scene/solarsystem/sun/transforms") @@ -25,15 +24,23 @@ local SaturnTrail = { } } -assetHelper.registerSceneGraphNodesAndExport(asset, { SaturnTrail }) +asset.onInitialize(function() + openspace.addSceneGraphNode(SaturnTrail) +end) + +asset.onDeinitialize(function() + openspace.removeSceneGraphNode(SaturnTrail) +end) + +asset.export(SaturnTrail) + asset.meta = { Name = "Saturn Trail", - Version = "1.0", + Version = "1.1", Description = [[ Main trail of Saturn. Data from NASA Spice (see base spice asset)]], Author = "OpenSpace Team", URL = "http://openspaceproject.com", - License = "MIT license", - Identifiers = {"SaturnTrail"} + License = "MIT license" } diff --git a/data/assets/scene/solarsystem/planets/saturn/trail_earth.asset b/data/assets/scene/solarsystem/planets/saturn/trail_earth.asset index 545e2e277b..2b637ff0a9 100644 --- a/data/assets/scene/solarsystem/planets/saturn/trail_earth.asset +++ b/data/assets/scene/solarsystem/planets/saturn/trail_earth.asset @@ -1,6 +1,5 @@ -local assetHelper = asset.require('util/asset_helper') -local transforms = asset.require('scene/solarsystem/sun/transforms') -local earthTransforms = asset.require('scene/solarsystem/planets/earth/transforms') +local transforms = asset.require("scene/solarsystem/sun/transforms") +local earthTransforms = asset.require("scene/solarsystem/planets/earth/transforms") asset.require("spice/base") @@ -29,16 +28,23 @@ local SaturnTrailEarth = { } } +asset.onInitialize(function() + openspace.addSceneGraphNode(SaturnTrailEarth) +end) + +asset.onDeinitialize(function() + openspace.removeSceneGraphNode(SaturnTrailEarth) +end) + +asset.export(SaturnTrailEarth) + + asset.meta = { Name = "Saturn Trail from Earth", - Version = "1.0", + Version = "1.1", Description = [[ Alternate trail of Saturn, as observed by the Earth rather then the Sun. Data from NASA SPICE (see base spice asset)]], Author = "OpenSpace Team", URL = "http://openspaceproject.com", - License = "MIT license", - Identifiers = {"SaturnTrailEarth"} + License = "MIT license" } - - -assetHelper.registerSceneGraphNodesAndExport(asset, { SaturnTrailEarth }) diff --git a/data/assets/scene/solarsystem/planets/saturn/transforms.asset b/data/assets/scene/solarsystem/planets/saturn/transforms.asset index 066c700e44..ca0d4df871 100644 --- a/data/assets/scene/solarsystem/planets/saturn/transforms.asset +++ b/data/assets/scene/solarsystem/planets/saturn/transforms.asset @@ -1,5 +1,4 @@ -local assetHelper = asset.require('util/asset_helper') -local transforms = asset.require('scene/solarsystem/sun/transforms') +local transforms = asset.require("scene/solarsystem/sun/transforms") asset.require("spice/base") local SaturnBarycenter = { @@ -20,15 +19,23 @@ local SaturnBarycenter = { } } -assetHelper.registerSceneGraphNodesAndExport(asset, { SaturnBarycenter }) +asset.onInitialize(function() + openspace.addSceneGraphNode(SaturnBarycenter) +end) + +asset.onDeinitialize(function() + openspace.removeSceneGraphNode(SaturnBarycenter) +end) + +asset.export(SaturnBarycenter) + asset.meta = { Name = "Saturn Transforms", - Version = "1.0", + Version = "1.1", Description = [[ Saturn Barycenter transform]], Author = "OpenSpace Team", URL = "http://openspaceproject.com", - License = "MIT license", - Identifiers = {"SaturnBarycenter"} + License = "MIT license" } diff --git a/data/assets/scene/solarsystem/planets/uranus/default_layers.asset b/data/assets/scene/solarsystem/planets/uranus/default_layers.asset index 54ebcc8a44..3c5ccd63cc 100644 --- a/data/assets/scene/solarsystem/planets/uranus/default_layers.asset +++ b/data/assets/scene/solarsystem/planets/uranus/default_layers.asset @@ -1,6 +1,4 @@ -local colorLayersPath = "./layers/colorlayers" - -local colorLayer = asset.require(colorLayersPath .. "/uranus_texture") +local colorLayer = asset.require("./layers/colorlayers/uranus_texture") -- Set enabled layers (temporary solution) -- @TODO: do this using a boolean that's passed to the 'asset.require' instead diff --git a/data/assets/scene/solarsystem/planets/uranus/inner_moons.asset b/data/assets/scene/solarsystem/planets/uranus/inner_moons.asset index 54ff39f0cb..cfbc96be7f 100644 --- a/data/assets/scene/solarsystem/planets/uranus/inner_moons.asset +++ b/data/assets/scene/solarsystem/planets/uranus/inner_moons.asset @@ -1,7 +1,6 @@ -local assetHelper = asset.require('util/asset_helper') -local proceduralGlobes = asset.require('util/procedural_globe') -local transforms = asset.require('./transforms') -local kernel = asset.require('./kernels').ura091 +local proceduralGlobes = asset.require("util/procedural_globe") +local transforms = asset.require("./transforms") +local kernel = asset.require("./kernels").ura091 @@ -242,10 +241,23 @@ local innerMoons = { } } -assetHelper.registerSceneGraphNodesAndExport( - asset, - proceduralGlobes.createGlobes(innerMoons) -) +local nodes = proceduralGlobes.createGlobes(innerMoons) + +asset.onInitialize(function() + for _, node in ipairs(nodes) do + openspace.addSceneGraphNode(node) + end +end) + +asset.onDeinitialize(function() + for i = #nodes, 1, -1 do + openspace.removeSceneGraphNode(nodes[i]) + end +end) + +for _, node in ipairs(nodes) do + asset.export(node) +end asset.meta = { diff --git a/data/assets/scene/solarsystem/planets/uranus/irregular_prograde_moons.asset b/data/assets/scene/solarsystem/planets/uranus/irregular_prograde_moons.asset index 97b359c59a..6e99028f0d 100644 --- a/data/assets/scene/solarsystem/planets/uranus/irregular_prograde_moons.asset +++ b/data/assets/scene/solarsystem/planets/uranus/irregular_prograde_moons.asset @@ -1,7 +1,6 @@ -local assetHelper = asset.require('util/asset_helper') -local proceduralGlobes = asset.require('util/procedural_globe') -local transforms = asset.require('./transforms') -local kernel = asset.require('./kernels').ura112 +local proceduralGlobes = asset.require("util/procedural_globe") +local transforms = asset.require("./transforms") +local kernel = asset.require("./kernels").ura112 @@ -36,10 +35,23 @@ local irregularMoons = { } } -assetHelper.registerSceneGraphNodesAndExport( - asset, - proceduralGlobes.createGlobes(irregularMoons) -) +local nodes = proceduralGlobes.createGlobes(irregularMoons) + +asset.onInitialize(function() + for _, node in ipairs(nodes) do + openspace.addSceneGraphNode(node) + end +end) + +asset.onDeinitialize(function() + for i = #nodes, 1, -1 do + openspace.removeSceneGraphNode(nodes[i]) + end +end) + +for _, node in ipairs(nodes) do + asset.export(node) +end asset.meta = { diff --git a/data/assets/scene/solarsystem/planets/uranus/irregular_retrograde_moons.asset b/data/assets/scene/solarsystem/planets/uranus/irregular_retrograde_moons.asset index c0d7b8efd9..75aa8e70d2 100644 --- a/data/assets/scene/solarsystem/planets/uranus/irregular_retrograde_moons.asset +++ b/data/assets/scene/solarsystem/planets/uranus/irregular_retrograde_moons.asset @@ -1,7 +1,6 @@ -local assetHelper = asset.require('util/asset_helper') -local proceduralGlobes = asset.require('util/procedural_globe') -local transforms = asset.require('./transforms') -local kernel = asset.require('./kernels').ura112 +local proceduralGlobes = asset.require("util/procedural_globe") +local transforms = asset.require("./transforms") +local kernel = asset.require("./kernels").ura112 @@ -155,10 +154,23 @@ local irregularMoons = { } } -assetHelper.registerSceneGraphNodesAndExport( - asset, - proceduralGlobes.createGlobes(irregularMoons) -) +local nodes = proceduralGlobes.createGlobes(irregularMoons) + +asset.onInitialize(function() + for _, node in ipairs(nodes) do + openspace.addSceneGraphNode(node) + end +end) + +asset.onDeinitialize(function() + for i = #nodes, 1, -1 do + openspace.removeSceneGraphNode(nodes[i]) + end +end) + +for _, node in ipairs(nodes) do + asset.export(node) +end asset.meta = { diff --git a/data/assets/scene/solarsystem/planets/uranus/kernels.asset b/data/assets/scene/solarsystem/planets/uranus/kernels.asset index 3e8ba66685..fed1e70e14 100644 --- a/data/assets/scene/solarsystem/planets/uranus/kernels.asset +++ b/data/assets/scene/solarsystem/planets/uranus/kernels.asset @@ -5,9 +5,9 @@ local Kernels = asset.syncedResource({ Version = 1 }) -asset.export("ura091", Kernels .. "/ura091-rocks-merge.bsp") -asset.export("ura111", Kernels .. "/ura111.bsp") -asset.export("ura112", Kernels .. "/ura112.bsp") +asset.export("ura091", Kernels .. "ura091-rocks-merge.bsp") +asset.export("ura111", Kernels .. "ura111.bsp") +asset.export("ura112", Kernels .. "ura112.bsp") asset.meta = { diff --git a/data/assets/scene/solarsystem/planets/uranus/layers/colorlayers/uranus_texture.asset b/data/assets/scene/solarsystem/planets/uranus/layers/colorlayers/uranus_texture.asset index bafffffe9c..484a3388d2 100644 --- a/data/assets/scene/solarsystem/planets/uranus/layers/colorlayers/uranus_texture.asset +++ b/data/assets/scene/solarsystem/planets/uranus/layers/colorlayers/uranus_texture.asset @@ -1,18 +1,29 @@ -local texturesPath = asset.require("./../../uranus_textures").TexturesPath -local globeIdentifier = asset.require("./../../uranus").Uranus.Identifier +local globeIdentifier = asset.require("../../uranus").Uranus.Identifier + +local texturesPath = asset.syncedResource({ + Name = "Uranus Textures", + Type = "HttpSynchronization", + Identifier = "uranus_textures", + Version = 1 +}) local layer = { Identifier = "Texture", - FilePath = texturesPath .. "/uranus.jpg", + FilePath = texturesPath .. "uranus.jpg", } -asset.onInitialize(function () +asset.onInitialize(function() openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer) end) +asset.onDeinitialize(function() + openspace.globebrowsing.deleteLayer(globeIdentifier, "ColorLayers", layer) +end) + asset.export("layer", layer) + asset.meta = { Name = "Uranus texture", Version = "1.0", diff --git a/data/assets/scene/solarsystem/planets/uranus/major_moons.asset b/data/assets/scene/solarsystem/planets/uranus/major_moons.asset index a854ebb27a..e9edef3cef 100644 --- a/data/assets/scene/solarsystem/planets/uranus/major_moons.asset +++ b/data/assets/scene/solarsystem/planets/uranus/major_moons.asset @@ -1,7 +1,6 @@ -local assetHelper = asset.require('util/asset_helper') -local proceduralGlobes = asset.require('util/procedural_globe') -local transforms = asset.require('./transforms') -local kernel = asset.require('./kernels').ura111 +local proceduralGlobes = asset.require("util/procedural_globe") +local transforms = asset.require("./transforms") +local kernel = asset.require("./kernels").ura111 @@ -100,10 +99,23 @@ local majorMoons = { } } -assetHelper.registerSceneGraphNodesAndExport( - asset, - proceduralGlobes.createGlobes(majorMoons) -) +local nodes = proceduralGlobes.createGlobes(majorMoons) + +asset.onInitialize(function() + for _, node in ipairs(nodes) do + openspace.addSceneGraphNode(node) + end +end) + +asset.onDeinitialize(function() + for i = #nodes, 1, -1 do + openspace.removeSceneGraphNode(nodes[i]) + end +end) + +for _, node in ipairs(nodes) do + asset.export(node) +end asset.meta = { diff --git a/data/assets/scene/solarsystem/planets/uranus/minor_moons.asset b/data/assets/scene/solarsystem/planets/uranus/minor_moons.asset index cc69445a21..040c318cdb 100644 --- a/data/assets/scene/solarsystem/planets/uranus/minor_moons.asset +++ b/data/assets/scene/solarsystem/planets/uranus/minor_moons.asset @@ -1,6 +1,6 @@ -asset.require('./inner_moons') -asset.require('./irregular_prograde_moons') -asset.require('./irregular_retrograde_moons') +asset.require("./inner_moons") +asset.require("./irregular_prograde_moons") +asset.require("./irregular_retrograde_moons") asset.meta = { diff --git a/data/assets/scene/solarsystem/planets/uranus/trail.asset b/data/assets/scene/solarsystem/planets/uranus/trail.asset index ad24d25221..0ba057bb65 100644 --- a/data/assets/scene/solarsystem/planets/uranus/trail.asset +++ b/data/assets/scene/solarsystem/planets/uranus/trail.asset @@ -1,5 +1,4 @@ -local assetHelper = asset.require('util/asset_helper') -local transforms = asset.require('scene/solarsystem/sun/transforms') +local transforms = asset.require("scene/solarsystem/sun/transforms") @@ -25,15 +24,23 @@ local UranusTrail = { } } -assetHelper.registerSceneGraphNodesAndExport(asset, { UranusTrail }) +asset.onInitialize(function() + openspace.addSceneGraphNode(UranusTrail) +end) + +asset.onDeinitialize(function() + openspace.removeSceneGraphNode(UranusTrail) +end) + +asset.export(UranusTrail) + asset.meta = { Name = "Uranus Trail", - Version = "1.0", + Version = "1.1", Description = [[ Main trail of Uranus. Data from NASA Spice (see base spice asset)]], Author = "OpenSpace Team", URL = "http://openspaceproject.com", - License = "MIT license", - Identifiers = {"UranusTrail"} + License = "MIT license" } diff --git a/data/assets/scene/solarsystem/planets/uranus/trail_earth.asset b/data/assets/scene/solarsystem/planets/uranus/trail_earth.asset index a680c5e429..3858ed10bc 100644 --- a/data/assets/scene/solarsystem/planets/uranus/trail_earth.asset +++ b/data/assets/scene/solarsystem/planets/uranus/trail_earth.asset @@ -1,6 +1,5 @@ -local assetHelper = asset.require('util/asset_helper') -local transforms = asset.require('scene/solarsystem/sun/transforms') -local earthTransforms = asset.require('scene/solarsystem/planets/earth/transforms') +local transforms = asset.require("scene/solarsystem/sun/transforms") +local earthTransforms = asset.require("scene/solarsystem/planets/earth/transforms") asset.require("spice/base") @@ -29,16 +28,24 @@ local UranusTrailEarth = { } } -assetHelper.registerSceneGraphNodesAndExport(asset, { UranusTrailEarth }) +asset.onInitialize(function() + openspace.addSceneGraphNode(UranusTrailEarth) +end) + +asset.onDeinitialize(function() + openspace.removeSceneGraphNode(UranusTrailEarth) +end) + +asset.export(UranusTrailEarth) + asset.meta = { Name = "Uranus Trail from Earth", - Version = "1.0", + Version = "1.1", Description = [[ Alternate trail of Uranus, as observed by the Earth rather then the Sun. Data from NASA SPICE (see base spice asset)]], Author = "OpenSpace Team", URL = "http://openspaceproject.com", - License = "MIT license", - Identifiers = {"UranusTrailEarth"} + License = "MIT license" } diff --git a/data/assets/scene/solarsystem/planets/uranus/transforms.asset b/data/assets/scene/solarsystem/planets/uranus/transforms.asset index a377192913..0cbc8cb828 100644 --- a/data/assets/scene/solarsystem/planets/uranus/transforms.asset +++ b/data/assets/scene/solarsystem/planets/uranus/transforms.asset @@ -1,5 +1,4 @@ -local assetHelper = asset.require('util/asset_helper') -local transforms = asset.require('scene/solarsystem/sun/transforms') +local transforms = asset.require("scene/solarsystem/sun/transforms") asset.require("spice/base") @@ -22,15 +21,23 @@ local UranusBarycenter = { } } -assetHelper.registerSceneGraphNodesAndExport(asset, { UranusBarycenter }) +asset.onInitialize(function() + openspace.addSceneGraphNode(UranusBarycenter) +end) + +asset.onDeinitialize(function() + openspace.removeSceneGraphNode(UranusBarycenter) +end) + +asset.export(UranusBarycenter) + asset.meta = { Name = "Uranus Transforms", - Version = "1.0", + Version = "1.1", Description = [[ Uranus Barycenter transform]], Author = "OpenSpace Team", URL = "http://openspaceproject.com", - License = "MIT license", - Identifiers = {"UranusBarycenter"} + License = "MIT license" } diff --git a/data/assets/scene/solarsystem/planets/uranus/uranus.asset b/data/assets/scene/solarsystem/planets/uranus/uranus.asset index e8dadd8be4..9a36778a34 100644 --- a/data/assets/scene/solarsystem/planets/uranus/uranus.asset +++ b/data/assets/scene/solarsystem/planets/uranus/uranus.asset @@ -1,7 +1,6 @@ -local assetHelper = asset.require('util/asset_helper') -local transforms = asset.require('./transforms') +local transforms = asset.require("./transforms") asset.require("spice/base") -asset.require('./trail') +asset.require("./trail") local Uranus = { Identifier = "Uranus", @@ -53,15 +52,26 @@ local UranusLabel = { } } -assetHelper.registerSceneGraphNodesAndExport(asset, { Uranus, UranusLabel }) +asset.onInitialize(function() + openspace.addSceneGraphNode(Uranus) + openspace.addSceneGraphNode(UranusLabel) +end) + +asset.onDeinitialize(function() + openspace.removeSceneGraphNode(UranusLabel) + openspace.removeSceneGraphNode(Uranus) +end) + +asset.export(Uranus) +asset.export(UranusLabel) + asset.meta = { Name = "Uranus", - Version = "1.0", + Version = "1.1", Description = [[ Uranus globe, and main planet label.]], Author = "OpenSpace Team", URL = "http://openspaceproject.com", - License = "MIT license", - Identifiers = {"Uranus" , "UranusLabel"} + License = "MIT license" } diff --git a/data/assets/scene/solarsystem/planets/uranus/uranus_textures.asset b/data/assets/scene/solarsystem/planets/uranus/uranus_textures.asset deleted file mode 100644 index d7200697b6..0000000000 --- a/data/assets/scene/solarsystem/planets/uranus/uranus_textures.asset +++ /dev/null @@ -1,7 +0,0 @@ -local TexturesPath = asset.syncedResource({ - Name = "Uranus Textures", - Type = "HttpSynchronization", - Identifier = "uranus_textures", - Version = 1 -}) -asset.export("TexturesPath", TexturesPath) diff --git a/data/assets/scene/solarsystem/planets/venus/atmosphere.asset b/data/assets/scene/solarsystem/planets/venus/atmosphere.asset index 7e39382692..91c1d24e50 100644 --- a/data/assets/scene/solarsystem/planets/venus/atmosphere.asset +++ b/data/assets/scene/solarsystem/planets/venus/atmosphere.asset @@ -1,5 +1,4 @@ -local transforms = asset.require('./venus') -local assetHelper = asset.require('util/asset_helper') +local transforms = asset.require("./venus") @@ -52,15 +51,24 @@ local Atmosphere = { Description = "Simulation of Venus' Atmosphere" } } -assetHelper.registerSceneGraphNodesAndExport(asset, { Atmosphere }) + +asset.onInitialize(function() + openspace.addSceneGraphNode(Atmosphere) +end) + +asset.onDeinitialize(function() + openspace.removeSceneGraphNode(Atmosphere) +end) + +asset.export(Atmosphere) + asset.meta = { Name = "Venus Atmosphere", - Version = "1.0", + Version = "1.1", Description = [[ Atmosphere of Venus.]], Author = "OpenSpace Team", URL = "http://openspaceproject.com", - License = "MIT license", - Identifiers = {"VenusAtmosphere"} + License = "MIT license" } diff --git a/data/assets/scene/solarsystem/planets/venus/default_layers.asset b/data/assets/scene/solarsystem/planets/venus/default_layers.asset index ba24b5e01b..26f07e266c 100644 --- a/data/assets/scene/solarsystem/planets/venus/default_layers.asset +++ b/data/assets/scene/solarsystem/planets/venus/default_layers.asset @@ -1,12 +1,9 @@ -local colorLayersPath = "./layers/colorlayers" -local heightLayersPath = "./layers/heightlayers" - -- Color layers -asset.require(colorLayersPath .. "/venus_texture") -local colorLayer = asset.require(colorLayersPath .. "/magellan_mosaic_utah") +asset.require("./layers/colorlayers/venus_texture") +local colorLayer = asset.require("./layers/colorlayers/magellan_mosaic_utah") -- Height layers -local heightLayer = asset.require(heightLayersPath .. "/magellan") +local heightLayer = asset.require("./layers/heightlayers/magellan_utah") -- Set enabled layers (temporary solution) -- @TODO: do this using a boolean that's passed to the 'asset.require' instead @@ -18,7 +15,7 @@ end) asset.meta = { Name = "Default Venus Layers", - Version = "1.0", + Version = "1.1", Description = [[ Default Venus layers are: Venus Magellan Mosaic and Venus Magellan DEM]], Author = "OpenSpace Team", diff --git a/data/assets/scene/solarsystem/planets/venus/layers/colorlayers/magellan_mosaic_utah.asset b/data/assets/scene/solarsystem/planets/venus/layers/colorlayers/magellan_mosaic_utah.asset index d600ff6ec3..675fd292bb 100644 --- a/data/assets/scene/solarsystem/planets/venus/layers/colorlayers/magellan_mosaic_utah.asset +++ b/data/assets/scene/solarsystem/planets/venus/layers/colorlayers/magellan_mosaic_utah.asset @@ -1,5 +1,4 @@ -local mapServiceConfigs = asset.localResource("./../../map_service_configs") -local globeIdentifier = asset.require("./../../venus").Venus.Identifier +local globeIdentifier = asset.require("../../venus").Venus.Identifier local layer = { Identifier = "Magellan_Mosaic_Utah", @@ -20,20 +19,25 @@ local layer = { the radar system was sending signals to the left of the spacecraft. The SAR operated in this left-looking mode during cycles 1 and 3 of the mission. (Description from USGS)]], - FilePath = mapServiceConfigs .. "/Utah/MagellanMosaic.vrt", + FilePath = asset.localResource("magellan_mosaic_utah.vrt"), BlendMode = "Color", Settings = { Gamma = 2.0 } } -asset.onInitialize(function () +asset.onInitialize(function() openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer) end) +asset.onDeinitialize(function() + openspace.globebrowsing.deleteLayer(globeIdentifier, "ColorLayers", layer) +end) + asset.export("layer", layer) + asset.meta = { Name = "Venus Magellan Mosaic", Version = "1.0", @@ -42,6 +46,5 @@ asset.meta = { Author = "USGS", URL = "https://astrogeology.usgs.gov/search/map/Venus/Magellan/" .. "Venus_Magellan_LeftLook_mosaic_global_75m", - License = "NASA/PDS", - Identifiers = {"Magellan_Mosaic_Utah"} + License = "NASA/PDS" } diff --git a/data/assets/scene/solarsystem/planets/venus/map_service_configs/Utah/MagellanMosaic.vrt b/data/assets/scene/solarsystem/planets/venus/layers/colorlayers/magellan_mosaic_utah.vrt similarity index 89% rename from data/assets/scene/solarsystem/planets/venus/map_service_configs/Utah/MagellanMosaic.vrt rename to data/assets/scene/solarsystem/planets/venus/layers/colorlayers/magellan_mosaic_utah.vrt index 7eb41cc198..4eb0006b79 100644 --- a/data/assets/scene/solarsystem/planets/venus/map_service_configs/Utah/MagellanMosaic.vrt +++ b/data/assets/scene/solarsystem/planets/venus/layers/colorlayers/magellan_mosaic_utah.vrt @@ -4,7 +4,7 @@ Gray - MagellanMosaic.wms + magellan_mosaic_utah.wms 1 @@ -15,7 +15,7 @@ Alpha 0 - MagellanMosaic.wms + magellan_mosaic_utah.wms 1 diff --git a/data/assets/scene/solarsystem/planets/venus/map_service_configs/Utah/MagellanMosaic.wms b/data/assets/scene/solarsystem/planets/venus/layers/colorlayers/magellan_mosaic_utah.wms similarity index 100% rename from data/assets/scene/solarsystem/planets/venus/map_service_configs/Utah/MagellanMosaic.wms rename to data/assets/scene/solarsystem/planets/venus/layers/colorlayers/magellan_mosaic_utah.wms diff --git a/data/assets/scene/solarsystem/planets/venus/layers/colorlayers/venus_texture.asset b/data/assets/scene/solarsystem/planets/venus/layers/colorlayers/venus_texture.asset index d9f40745c6..1d919f192c 100644 --- a/data/assets/scene/solarsystem/planets/venus/layers/colorlayers/venus_texture.asset +++ b/data/assets/scene/solarsystem/planets/venus/layers/colorlayers/venus_texture.asset @@ -1,17 +1,38 @@ -local texturesPath = asset.require("./../../venus_textures").TexturesPath -local globeIdentifier = asset.require("./../../venus").Venus.Identifier +local globeIdentifier = asset.require("../../venus").Venus.Identifier + +local texturesPath = asset.syncedResource({ + Name = "Venus Textures", + Type = "HttpSynchronization", + Identifier = "venus_textures", + Version = 1 +}) local layer = { Identifier = "Texture", - FilePath = texturesPath .. "/venus.jpg", + FilePath = texturesPath .. "venus.jpg", Settings = { Opacity = 0.48, Gamma = 0.48 } } -asset.onInitialize(function () +asset.onInitialize(function() openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer) end) +asset.onDeinitialize(function() + openspace.globebrowsing.deleteLayer(globeIdentifier, "ColorLayers", layer) +end) + asset.export("layer", layer) + + + +asset.meta = { + Name = "Venus Texture", + Version = "1.0", + Description = [[ This asset supplies a default texture for Venus.]], + Author = "OpenSpace Team", + URL = "http://openspaceproject.com", + License = "MIT license" +} diff --git a/data/assets/scene/solarsystem/planets/venus/layers/heightlayers/magellan.asset b/data/assets/scene/solarsystem/planets/venus/layers/heightlayers/magellan_utah.asset similarity index 84% rename from data/assets/scene/solarsystem/planets/venus/layers/heightlayers/magellan.asset rename to data/assets/scene/solarsystem/planets/venus/layers/heightlayers/magellan_utah.asset index f94cb916ab..58510b7931 100644 --- a/data/assets/scene/solarsystem/planets/venus/layers/heightlayers/magellan.asset +++ b/data/assets/scene/solarsystem/planets/venus/layers/heightlayers/magellan_utah.asset @@ -1,5 +1,4 @@ -local mapServiceConfigs = asset.localResource("./../../map_service_configs") -local globeIdentifier = asset.require("./../../venus").Venus.Identifier +local globeIdentifier = asset.require("../../venus").Venus.Identifier local layer = { Identifier = "Magellan", @@ -14,7 +13,7 @@ local layer = { the in-plane elements of each spacecraft orbit, and then originally re-sampled into sinusoidal, Mercator, and north and south polar stereographic projections at a resolution of 5 kilometers per pixel (4641 meters per pixel [m]).]], - FilePath = mapServiceConfigs .. "/Utah/MagellanDEM.wms", + FilePath = asset.localResource("magellan_utah.wms"), TilePixelSize = 64, Settings = { Gamma = 1.72, @@ -22,13 +21,18 @@ local layer = { } } -asset.onInitialize(function () +asset.onInitialize(function() openspace.globebrowsing.addLayer(globeIdentifier, "HeightLayers", layer) end) +asset.onDeinitialize(function() + openspace.globebrowsing.deleteLayer(globeIdentifier, "HeightLayers", layer) +end) + asset.export("layer", layer) + asset.meta = { Name = "Venus Magellan DEM", Version = "1.0", diff --git a/data/assets/scene/solarsystem/planets/venus/map_service_configs/Utah/MagellanDEM.wms b/data/assets/scene/solarsystem/planets/venus/layers/heightlayers/magellan_utah.wms similarity index 100% rename from data/assets/scene/solarsystem/planets/venus/map_service_configs/Utah/MagellanDEM.wms rename to data/assets/scene/solarsystem/planets/venus/layers/heightlayers/magellan_utah.wms diff --git a/data/assets/scene/solarsystem/planets/venus/trail.asset b/data/assets/scene/solarsystem/planets/venus/trail.asset index 5d0ad9fc1e..53f3fa13dc 100644 --- a/data/assets/scene/solarsystem/planets/venus/trail.asset +++ b/data/assets/scene/solarsystem/planets/venus/trail.asset @@ -1,5 +1,4 @@ -local assetHelper = asset.require('util/asset_helper') -local transforms = asset.require('scene/solarsystem/sun/transforms') +local transforms = asset.require("scene/solarsystem/sun/transforms") asset.require("spice/base") @@ -27,16 +26,24 @@ local VenusTrail = { } } -assetHelper.registerSceneGraphNodesAndExport(asset, { VenusTrail }) +asset.onInitialize(function() + openspace.addSceneGraphNode(VenusTrail) +end) + +asset.onDeinitialize(function() + openspace.removeSceneGraphNode(VenusTrail) +end) + +asset.export(VenusTrail) + asset.meta = { Name = "Venus Trail", - Version = "1.0", + Version = "1.1", Description = [[ Trail of Venus as observed by the Sun. Data from NASA Spice (see base spice asset)]], Author = "OpenSpace Team", URL = "http://openspaceproject.com", - License = "MIT license", - Identifiers = {"VenusTrail"} + License = "MIT license" } diff --git a/data/assets/scene/solarsystem/planets/venus/trail_earth.asset b/data/assets/scene/solarsystem/planets/venus/trail_earth.asset index 79e78aa2bb..2796e9819c 100644 --- a/data/assets/scene/solarsystem/planets/venus/trail_earth.asset +++ b/data/assets/scene/solarsystem/planets/venus/trail_earth.asset @@ -1,6 +1,5 @@ -local assetHelper = asset.require('util/asset_helper') -local transforms = asset.require('scene/solarsystem/sun/transforms') -local earthTransforms = asset.require('scene/solarsystem/planets/earth/transforms') +local transforms = asset.require("scene/solarsystem/sun/transforms") +local earthTransforms = asset.require("scene/solarsystem/planets/earth/transforms") asset.require("spice/base") @@ -28,16 +27,24 @@ local VenusTrailEarth = { } } -assetHelper.registerSceneGraphNodesAndExport(asset, { VenusTrailEarth }) +asset.onInitialize(function() + openspace.addSceneGraphNode(VenusTrailEarth) +end) + +asset.onDeinitialize(function() + openspace.removeSceneGraphNode(VenusTrailEarth) +end) + +asset.export(VenusTrailEarth) + asset.meta = { Name = "Venus Trail from Earth", - Version = "1.0", + Version = "1.1", Description = [[ Trail of Venus as observed by the Earth. Data from NASA SPICE (see base spice asset)]], Author = "OpenSpace Team", URL = "http://openspaceproject.com", - License = "MIT license", - Identifiers = {"VenusTrailEarth"} + License = "MIT license" } diff --git a/data/assets/scene/solarsystem/planets/venus/transforms.asset b/data/assets/scene/solarsystem/planets/venus/transforms.asset index 9ae009af03..f1ca8a9193 100644 --- a/data/assets/scene/solarsystem/planets/venus/transforms.asset +++ b/data/assets/scene/solarsystem/planets/venus/transforms.asset @@ -1,5 +1,4 @@ -local assetHelper = asset.require('util/asset_helper') -local transforms = asset.require('scene/solarsystem/sun/transforms') +local transforms = asset.require("scene/solarsystem/sun/transforms") asset.require("spice/base") local VenusBarycenter = { @@ -20,15 +19,23 @@ local VenusBarycenter = { } } -assetHelper.registerSceneGraphNodesAndExport(asset, { VenusBarycenter }) +asset.onInitialize(function() + openspace.addSceneGraphNode(VenusBarycenter) +end) + +asset.onDeinitialize(function() + openspace.removeSceneGraphNode(VenusBarycenter) +end) + +asset.export(VenusBarycenter) + asset.meta = { Name = "Venus Transforms", - Version = "1.0", + Version = "1.1", Description = [[ Spice translation for Venus Barycenter ]], Author = "OpenSpace Team", URL = "http://openspaceproject.com", - License = "MIT license", - Identifiers = {"VenusBarycenter"} + License = "MIT license" } diff --git a/data/assets/scene/solarsystem/planets/venus/venus.asset b/data/assets/scene/solarsystem/planets/venus/venus.asset index 062f58fade..7502fab742 100644 --- a/data/assets/scene/solarsystem/planets/venus/venus.asset +++ b/data/assets/scene/solarsystem/planets/venus/venus.asset @@ -1,8 +1,13 @@ -local assetHelper = asset.require('util/asset_helper') -local transforms = asset.require('./transforms') +local transforms = asset.require("./transforms") asset.require("spice/base") -asset.require('./trail') -local labelsPath = asset.require('./venus_globelabels').LabelsPath +asset.require("./trail") + +local labelsPath = asset.syncedResource({ + Name = "Venus Labels", + Type = "HttpSynchronization", + Identifier = "venus_labels", + Version = 1 +}) local Venus = { Identifier = "Venus", @@ -32,7 +37,7 @@ local Venus = { Layers = {}, Labels = { Enabled = false, - FileName = labelsPath .. "/venus.labels", + FileName = labelsPath .. "venus.labels", AlignmentOption = "Horizontally", -- or Circularly FontSize = 20.0, Size = 11.0, @@ -72,15 +77,26 @@ local VenusLabel = { } } -assetHelper.registerSceneGraphNodesAndExport(asset, { Venus, VenusLabel }) +asset.onInitialize(function() + openspace.addSceneGraphNode(Venus) + openspace.addSceneGraphNode(VenusLabel) +end) + +asset.onDeinitialize(function() + openspace.removeSceneGraphNode(VenusLabel) + openspace.removeSceneGraphNode(Venus) +end) + +asset.export(Venus) +asset.export(VenusLabel) + asset.meta = { Name = "Venus", - Version = "1.0", + Version = "1.1", Description = [[ Venus globe with labels, and main planet label.]], Author = "OpenSpace Team", URL = "http://openspaceproject.com", - License = "MIT license", - Identifiers = {"Venus", "VenusLabel"} + License = "MIT license" } diff --git a/data/assets/scene/solarsystem/planets/venus/venus_globelabels.asset b/data/assets/scene/solarsystem/planets/venus/venus_globelabels.asset deleted file mode 100644 index e38e2ea3f8..0000000000 --- a/data/assets/scene/solarsystem/planets/venus/venus_globelabels.asset +++ /dev/null @@ -1,7 +0,0 @@ -local LabelsPath = asset.syncedResource({ - Name = "Venus Labels", - Type = "HttpSynchronization", - Identifier = "venus_labels", - Version = 1 -}) -asset.export("LabelsPath", LabelsPath) diff --git a/data/assets/scene/solarsystem/planets/venus/venus_textures.asset b/data/assets/scene/solarsystem/planets/venus/venus_textures.asset deleted file mode 100644 index 38442cb484..0000000000 --- a/data/assets/scene/solarsystem/planets/venus/venus_textures.asset +++ /dev/null @@ -1,7 +0,0 @@ -local TexturesPath = asset.syncedResource({ - Name = "Venus Textures", - Type = "HttpSynchronization", - Identifier = "venus_textures", - Version = 1 -}) -asset.export("TexturesPath", TexturesPath) diff --git a/data/assets/scene/solarsystem/sssb/amor_asteroid.asset b/data/assets/scene/solarsystem/sssb/amor_asteroid.asset index 1829752752..f6aa4d4292 100644 --- a/data/assets/scene/solarsystem/sssb/amor_asteroid.asset +++ b/data/assets/scene/solarsystem/sssb/amor_asteroid.asset @@ -1,9 +1,8 @@ -local assetHelper = asset.require('util/asset_helper') -local sharedSssb = asset.require('./sssb_shared') +local sharedSssb = asset.require("./sssb_shared") -local filepath = sharedSssb.downloadSssbDatabaseFile(asset, 'amor_asteroid', - 'sssb_data_amor_asteroid') -local object = sharedSssb.createSssbGroupObject('sssb_data_amor_asteroid.csv', +local filepath = sharedSssb.downloadSssbDatabaseFile(asset, "amor_asteroid", +"sssb_data_amor_asteroid") +local object = sharedSssb.createSssbGroupObject("sssb_data_amor_asteroid.csv", "Amor Asteroids", filepath, { 1.0, 1.0, 1.0 }) object.Renderable.Enabled = false object.Renderable.SegmentQuality = 4 @@ -12,18 +11,27 @@ object.Renderable.TrailFade = 11 object.GUI.Description = [[ Earth-approaching Near-Earth-Asteroids with orbits exterior to Earth's but interior to Mars'. ]] -assetHelper.registerSceneGraphNodesAndExport(asset, { object }) + +asset.onInitialize(function() + openspace.addSceneGraphNode(object) +end) + +asset.onDeinitialize(function() + openspace.removeSceneGraphNode(object) +end) + +asset.export(object) + asset.meta = { Name = "Amor Asteroids", - Version = "1.0", + Version = "1.1", Description = [[ RenderableSmallBody asset with data from from JPL Horizons contiaining the Amor group.]], Author = "JPL Small-Body Database hosted by California Institute of Technology", URL = "https://ssd.jpl.nasa.gov/sbdb_query.cgi", License = [[JPL-authored documents are sponsored by NASA under Contract NAS7-030010. All documents available from this server may be protected under the U.S. and - Foreign Copyright Laws."]], - Identifiers = {"sssb_sssb_data_amor_asteroid"} + Foreign Copyright Laws."]] } diff --git a/data/assets/scene/solarsystem/sssb/apollo_asteroid.asset b/data/assets/scene/solarsystem/sssb/apollo_asteroid.asset index 65507b67da..4b5af30cb6 100644 --- a/data/assets/scene/solarsystem/sssb/apollo_asteroid.asset +++ b/data/assets/scene/solarsystem/sssb/apollo_asteroid.asset @@ -1,9 +1,8 @@ -local assetHelper = asset.require('util/asset_helper') -local sharedSssb = asset.require('./sssb_shared') +local sharedSssb = asset.require("./sssb_shared") -local filepath = sharedSssb.downloadSssbDatabaseFile(asset, 'apollo_asteroid', - 'sssb_data_apollo_asteroid') -local object = sharedSssb.createSssbGroupObject('sssb_data_apollo_asteroid.csv', +local filepath = sharedSssb.downloadSssbDatabaseFile(asset, "apollo_asteroid", + "sssb_data_apollo_asteroid") +local object = sharedSssb.createSssbGroupObject("sssb_data_apollo_asteroid.csv", "Apollo Asteroids", filepath, { 0.7, 0.7, 1.0 }) object.Renderable.Enabled = false object.Renderable.SegmentQuality = 6 @@ -12,18 +11,26 @@ object.Renderable.TrailFade = 10 object.GUI.Description = [[ Earth-crossing Near-Earth-Asteroids with semi-major axes larger than Earth's. ]] -assetHelper.registerSceneGraphNodesAndExport(asset, { object }) +asset.onInitialize(function() + openspace.addSceneGraphNode(object) +end) + +asset.onDeinitialize(function() + openspace.removeSceneGraphNode(object) +end) + +asset.export(object) + asset.meta = { Name = "Apollo Asteroids", - Version = "1.0", + Version = "1.1", Description = [[ RenderableSmallBody asset with data from from JPL Horizons contiaining the Apollo group.]], Author = "JPL Small-Body Database hosted by California Institute of Technology", URL = "https://ssd.jpl.nasa.gov/sbdb_query.cgi", License = [[JPL-authored documents are sponsored by NASA under Contract NAS7-030010. All documents available from this server may be protected under the U.S. and - Foreign Copyright Laws.]], - Identifiers = {"sssb_sssb_data_apollo_asteroid"} + Foreign Copyright Laws.]] } diff --git a/data/assets/scene/solarsystem/sssb/astraea.asset b/data/assets/scene/solarsystem/sssb/astraea.asset index fc0895743b..8aea181ece 100644 --- a/data/assets/scene/solarsystem/sssb/astraea.asset +++ b/data/assets/scene/solarsystem/sssb/astraea.asset @@ -1,5 +1,4 @@ -local assetHelper = asset.require('util/asset_helper') -local sunTransforms = asset.require('scene/solarsystem/sun/transforms') +local sunTransforms = asset.require("scene/solarsystem/sun/transforms") local trajectory = asset.syncedResource({ Name = "5 Astraea Trajectory", @@ -15,7 +14,7 @@ local AstraeaTrail = { Type = "RenderableTrailTrajectory", Translation = { Type = "HorizonsTranslation", - HorizonsTextFile = trajectory .. "/horizons_astraea.dat" + HorizonsTextFile = trajectory .. "horizons_astraea.dat" }, Color = { 0.9, 0.9, 0.0 }, StartTime = "2014 JAN 01 00:00:00", @@ -35,7 +34,7 @@ local AstraeaPosition = { Transform = { Translation = { Type = "HorizonsTranslation", - HorizonsTextFile = trajectory .. "/horizons_astraea.dat" + HorizonsTextFile = trajectory .. "horizons_astraea.dat" } }, GUI = { @@ -44,12 +43,24 @@ local AstraeaPosition = { } } -assetHelper.registerSceneGraphNodesAndExport(asset, { AstraeaPosition, AstraeaTrail }) +asset.onInitialize(function() + openspace.addSceneGraphNode(AstraeaPosition) + openspace.addSceneGraphNode(AstraeaTrail) +end) + +asset.onDeinitialize(function() + openspace.removeSceneGraphNode(AstraeaTrail) + openspace.removeSceneGraphNode(AstraeaPosition) +end) + +asset.export(AstraeaPosition) +asset.export(AstraeaTrail) + asset.meta = { Name = "5 Astraea", - Version = "1.0", + Version = "1.1", Description = [[ This asset contains the trail and position of 5 Astraea from 2014 JAN 01 00:00:00 to 2023 JAN 01 00:00:00. Data from JPL Horizons']], diff --git a/data/assets/scene/solarsystem/sssb/aten_asteroid.asset b/data/assets/scene/solarsystem/sssb/aten_asteroid.asset index 9f86dffb54..d025543087 100644 --- a/data/assets/scene/solarsystem/sssb/aten_asteroid.asset +++ b/data/assets/scene/solarsystem/sssb/aten_asteroid.asset @@ -1,9 +1,8 @@ -local assetHelper = asset.require('util/asset_helper') -local sharedSssb = asset.require('./sssb_shared') +local sharedSssb = asset.require("./sssb_shared") -local filepath = sharedSssb.downloadSssbDatabaseFile(asset, 'aten_asteroid', - 'sssb_data_aten_asteroid') -local object = sharedSssb.createSssbGroupObject('sssb_data_aten_asteroid.csv', +local filepath = sharedSssb.downloadSssbDatabaseFile(asset, "aten_asteroid", + "sssb_data_aten_asteroid") +local object = sharedSssb.createSssbGroupObject("sssb_data_aten_asteroid.csv", "Aten Asteroids", filepath, { 0.15, 0.15, 1.0 }) object.Renderable.Enabled = false object.Renderable.SegmentQuality = 2 @@ -13,18 +12,26 @@ object.GUI.Description = [[ Earth-crossing Near-Earth-Asteroids with semi-major smaller than Earth's. ]] -assetHelper.registerSceneGraphNodesAndExport(asset, { object }) +asset.onInitialize(function() + openspace.addSceneGraphNode(object) +end) + +asset.onDeinitialize(function() + openspace.removeSceneGraphNode(object) +end) + +asset.export(object) + asset.meta = { Name = "Aten Asteroids", - Version = "1.0", + Version = "1.1", Description = [[ RenderableSmallBody asset with data from from JPL Horizons contiaining the Aten group.]], Author = "JPL Small-Body Database hosted by California Institute of Technology", URL = "https://ssd.jpl.nasa.gov/sbdb_query.cgi", License = [[JPL-authored documents are sponsored by NASA under Contract NAS7-030010. All documents available from this server may be protected under the U.S. and - Foreign Copyright Laws.]], - Identifiers = {"sssb_sssb_data_aten_asteroid"} + Foreign Copyright Laws.]] } diff --git a/data/assets/scene/solarsystem/sssb/atira_asteroid.asset b/data/assets/scene/solarsystem/sssb/atira_asteroid.asset index b89f2a2658..fae5b7d6e4 100644 --- a/data/assets/scene/solarsystem/sssb/atira_asteroid.asset +++ b/data/assets/scene/solarsystem/sssb/atira_asteroid.asset @@ -1,9 +1,8 @@ -local assetHelper = asset.require('util/asset_helper') -local sharedSssb = asset.require('./sssb_shared') +local sharedSssb = asset.require("./sssb_shared") -local filepath = sharedSssb.downloadSssbDatabaseFile(asset, 'atira_asteroid', - 'sssb_data_atira_asteroid') -local object = sharedSssb.createSssbGroupObject('sssb_data_atira_asteroid.csv', +local filepath = sharedSssb.downloadSssbDatabaseFile(asset, "atira_asteroid", + "sssb_data_atira_asteroid") +local object = sharedSssb.createSssbGroupObject("sssb_data_atira_asteroid.csv", "Atira Asteroids", filepath, { 0.5, 0.8, 1.0 }) object.Renderable.Enabled = false object.Renderable.SegmentQuality = 2 @@ -13,18 +12,26 @@ object.GUI.Description = [[ Near-Earth-Asteroids whose orbits are contained enti within the orbit of the Earth. ]] -assetHelper.registerSceneGraphNodesAndExport(asset, { object }) +asset.onInitialize(function() + openspace.addSceneGraphNode(object) +end) + +asset.onDeinitialize(function() + openspace.removeSceneGraphNode(object) +end) + +asset.export(object) + asset.meta = { Name = "Atira Asteroids", - Version = "1.0", + Version = "1.1", Description = [[ RenderableSmallBody asset with data from from JPL Horizons contiaining the Atira group.]], Author = "JPL Small-Body Database hosted by California Institute of Technology", URL = "https://ssd.jpl.nasa.gov/sbdb_query.cgi", License = [[JPL-authored documents are sponsored by NASA under Contract NAS7-030010. All documents available from this server may be protected under the U.S. and - Foreign Copyright Laws."]], - Identifiers = {"sssb_sssb_data_atira_asteroid"} + Foreign Copyright Laws."]] } diff --git a/data/assets/scene/solarsystem/sssb/c2019y4atlas.asset b/data/assets/scene/solarsystem/sssb/c2019y4atlas.asset index e3525ae6d8..c72f899c5c 100644 --- a/data/assets/scene/solarsystem/sssb/c2019y4atlas.asset +++ b/data/assets/scene/solarsystem/sssb/c2019y4atlas.asset @@ -1,12 +1,11 @@ -local assetHelper = asset.require('util/asset_helper') -local sunTransforms = asset.require('scene/solarsystem/sun/transforms') +local sunTransforms = asset.require("scene/solarsystem/sun/transforms") local orbit = asset.syncedResource({ Name = "Comet C/2019 Y4 ATLAS", Type = "HttpSynchronization", Identifier = "horizons_c2019y4atlas", Version = 1 -}) .. "/c2019y4atlas.txt" +}) .. "c2019y4atlas.txt" local C2019Y4AtlasTrail = { Identifier = "C2019Y4AtlasTrail", @@ -42,22 +41,31 @@ local C2019Y4AtlasPosition = { GUI = { Name = "C/2019 Y4 Atlas", Path = "/Solar System/Comets", - Description = 'This is the position for C/2019 Y4 Atlas' + Description = "This is the position for C/2019 Y4 Atlas" } } -assetHelper.registerSceneGraphNodesAndExport(asset, { - C2019Y4AtlasPosition, C2019Y4AtlasTrail -}) +asset.onInitialize(function() + openspace.addSceneGraphNode(C2019Y4AtlasPosition) + openspace.addSceneGraphNode(C2019Y4AtlasTrail) +end) + +asset.onDeinitialize(function() + openspace.removeSceneGraphNode(C2019Y4AtlasTrail) + openspace.removeSceneGraphNode(C2019Y4AtlasPosition) +end) + +asset.export(C2019Y4AtlasPosition) +asset.export(C2019Y4AtlasTrail) + asset.meta = { Name = "C/2019 Y4 Atlas", - Version = "1.0", + Version = "1.1", Description = [[ This asset contains the trail and position of C/2019 Y4 Atlas from - 1950 JAN 01 00:00:00 to 2100 JAN 01 00:00:00. Data from JPL Horizons']], + 1950 JAN 01 00:00:00 to 2100 JAN 01 00:00:00. Data from JPL Horizons]], Author = "OpenSpace Team", URL = "https://ssd.jpl.nasa.gov/horizons.cgi", - License = "NASA", - Identifiers = {"C2019Y4AtlasPosition", "C2019Y4AtlasTrail"} + License = "NASA" } diff --git a/data/assets/scene/solarsystem/sssb/centaur_asteroid.asset b/data/assets/scene/solarsystem/sssb/centaur_asteroid.asset index 6d0e5a39b2..fdbbde119b 100644 --- a/data/assets/scene/solarsystem/sssb/centaur_asteroid.asset +++ b/data/assets/scene/solarsystem/sssb/centaur_asteroid.asset @@ -1,9 +1,8 @@ -local assetHelper = asset.require('util/asset_helper') -local sharedSssb = asset.require('./sssb_shared') +local sharedSssb = asset.require("./sssb_shared") -local filepath = sharedSssb.downloadSssbDatabaseFile(asset, 'centaur_asteroid', - 'sssb_data_centaur_asteroid') -local object = sharedSssb.createSssbGroupObject('sssb_data_centaur_asteroid.csv', +local filepath = sharedSssb.downloadSssbDatabaseFile(asset, "centaur_asteroid", + "sssb_data_centaur_asteroid") +local object = sharedSssb.createSssbGroupObject("sssb_data_centaur_asteroid.csv", "Centaur Asteroids", filepath, { 0.94, 0.96, 0.94 }) object.Renderable.Enabled = false object.Renderable.SegmentQuality = 6 @@ -13,18 +12,26 @@ object.GUI.Description = [[ Asteroids with either a perihelion or a semi-major a between those of the four outer planets. ]] -assetHelper.registerSceneGraphNodesAndExport(asset, { object }) +asset.onInitialize(function() + openspace.addSceneGraphNode(object) +end) + +asset.onDeinitialize(function() + openspace.removeSceneGraphNode(object) +end) + +asset.export(object) + asset.meta = { Name = "Centaur Asteroids", - Version = "1.0", + Version = "1.1", Description = [[ RenderableSmallBody asset with data from from JPL Horizons contiaining the Centaur group.]], Author = "JPL Small-Body Database hosted by California Institute of Technology", URL = "https://ssd.jpl.nasa.gov/sbdb_query.cgi", License = [[JPL-authored documents are sponsored by NASA under Contract NAS7-030010. All documents available from this server may be protected under the U.S. and - Foreign Copyright Laws.]], - Identifiers = {"sssb_sssb_data_centaur_asteroid"} + Foreign Copyright Laws.]] } diff --git a/data/assets/scene/solarsystem/sssb/chiron-type_comet.asset b/data/assets/scene/solarsystem/sssb/chiron-type_comet.asset index 315abef89b..e8bafdb16b 100644 --- a/data/assets/scene/solarsystem/sssb/chiron-type_comet.asset +++ b/data/assets/scene/solarsystem/sssb/chiron-type_comet.asset @@ -1,9 +1,8 @@ -local assetHelper = asset.require('util/asset_helper') -local sharedSssb = asset.require('./sssb_shared') +local sharedSssb = asset.require("./sssb_shared") -local filepath = sharedSssb.downloadSssbDatabaseFile(asset, 'chiron-type_comet', - 'sssb_data_chiron-type_comet') -local object = sharedSssb.createSssbGroupObject('sssb_data_chiron-type_comet.csv', +local filepath = sharedSssb.downloadSssbDatabaseFile(asset, "chiron-type_comet", + "sssb_data_chiron-type_comet") +local object = sharedSssb.createSssbGroupObject("sssb_data_chiron-type_comet.csv", "Chiron-type Comets", filepath, { 0.15 ,0.1 ,1.0 }) object.Renderable.Enabled = false object.Renderable.SegmentQuality = 10 @@ -13,18 +12,26 @@ object.GUI.Description = [[ Comets with a Tisserand's parameter with respect to greater than 3 and a semi-major axis greater than that of Jupiter. ]] -assetHelper.registerSceneGraphNodesAndExport(asset, { object }) +asset.onInitialize(function() + openspace.addSceneGraphNode(object) +end) + +asset.onDeinitialize(function() + openspace.removeSceneGraphNode(object) +end) + +asset.export(object) + asset.meta = { Name = "Chiron-Type Comets", - Version = "1.0", + Version = "1.1", Description = [[ RenderableSmallBody asset with data from from JPL Horizons contiaining the Chiron-Type group.]], Author = "JPL Small-Body Database hosted by California Institute of Technology", URL = "https://ssd.jpl.nasa.gov/sbdb_query.cgi", License = [[JPL-authored documents are sponsored by NASA under Contract NAS7-030010. All documents available from this server may be protected under the U.S. and - Foreign Copyright Laws.]], - Identifiers = {"sssb_sssb_data_chiron-type_comet"} + Foreign Copyright Laws.]] } diff --git a/data/assets/scene/solarsystem/sssb/encke-type_comet.asset b/data/assets/scene/solarsystem/sssb/encke-type_comet.asset index f07d3a39ab..556edaaaea 100644 --- a/data/assets/scene/solarsystem/sssb/encke-type_comet.asset +++ b/data/assets/scene/solarsystem/sssb/encke-type_comet.asset @@ -1,9 +1,8 @@ -local assetHelper = asset.require('util/asset_helper') -local sharedSssb = asset.require('./sssb_shared') +local sharedSssb = asset.require("./sssb_shared") -local filepath = sharedSssb.downloadSssbDatabaseFile(asset, 'encke-type_comet', - 'sssb_data_encke-type_comet') -local object = sharedSssb.createSssbGroupObject('sssb_data_encke-type_comet.csv', +local filepath = sharedSssb.downloadSssbDatabaseFile(asset, "encke-type_comet", + "sssb_data_encke-type_comet") +local object = sharedSssb.createSssbGroupObject("sssb_data_encke-type_comet.csv", "Encke-type Comets", filepath, { 0.8, 0.34, 1.0 }) object.Renderable.Enabled = false object.Renderable.SegmentQuality = 2 @@ -13,18 +12,26 @@ object.GUI.Description = [[ Comets with a Tisserand's parameter with respect to greater than 3 and a semi-major axis less than that of Jupiter. ]] -assetHelper.registerSceneGraphNodesAndExport(asset, { object }) +asset.onInitialize(function() + openspace.addSceneGraphNode(object) +end) + +asset.onDeinitialize(function() + openspace.removeSceneGraphNode(object) +end) + +asset.export(object) + asset.meta = { Name = "Encke-Type Comets", - Version = "1.0", + Version = "1.1", Description = [[ RenderableSmallBody asset with data from from JPL Horizons contiaining the Encke-Type group.]], Author = "JPL Small-Body Database hosted by California Institute of Technology", URL = "https://ssd.jpl.nasa.gov/sbdb_query.cgi", License = [[JPL-authored documents are sponsored by NASA under Contract NAS7-030010. All documents available from this server may be protected under the U.S. and - Foreign Copyright Laws.]], - Identifiers = {"sssb_sssb_data_encke-type_comet"} + Foreign Copyright Laws.]] } diff --git a/data/assets/scene/solarsystem/sssb/halley-type_comet.asset b/data/assets/scene/solarsystem/sssb/halley-type_comet.asset index b0d0131d77..84128cd02f 100644 --- a/data/assets/scene/solarsystem/sssb/halley-type_comet.asset +++ b/data/assets/scene/solarsystem/sssb/halley-type_comet.asset @@ -1,9 +1,8 @@ -local assetHelper = asset.require('util/asset_helper') -local sharedSssb = asset.require('./sssb_shared') +local sharedSssb = asset.require("./sssb_shared") -local filepath = sharedSssb.downloadSssbDatabaseFile(asset, 'halley-type_comet', - 'sssb_data_halley-type_comet') -local object = sharedSssb.createSssbGroupObject('sssb_data_halley-type_comet.csv', +local filepath = sharedSssb.downloadSssbDatabaseFile(asset, "halley-type_comet", + "sssb_data_halley-type_comet") +local object = sharedSssb.createSssbGroupObject("sssb_data_halley-type_comet.csv", "Halley-type Comets", filepath, { 0.66, 0.66, 0.66 }) object.Renderable.Enabled = false object.Renderable.SegmentQuality = 9 @@ -12,18 +11,26 @@ object.Renderable.TrailFade = 18 object.GUI.Description = [[ Periodic comets with an orbital period between 20 and 200 years. ]] -assetHelper.registerSceneGraphNodesAndExport(asset, { object }) +asset.onInitialize(function() + openspace.addSceneGraphNode(object) +end) + +asset.onDeinitialize(function() + openspace.removeSceneGraphNode(object) +end) + +asset.export(object) + asset.meta = { Name = "Halley-Type Comets", - Version = "1.0", + Version = "1.1", Description = [[ RenderableSmallBody asset with data from from JPL Horizons contiaining the Halley-Type group.]], Author = "JPL Small-Body Database hosted by California Institute of Technology", URL = "https://ssd.jpl.nasa.gov/sbdb_query.cgi", License = [[JPL-authored documents are sponsored by NASA under Contract NAS7-030010. All documents available from this server may be protected under the U.S. and - Foreign Copyright Laws.]], - Identifiers = {"sssb_sssb_data_halley-type_comet"} + Foreign Copyright Laws.]] } diff --git a/data/assets/scene/solarsystem/sssb/inner_main_belt_asteroid.asset b/data/assets/scene/solarsystem/sssb/inner_main_belt_asteroid.asset index 1c43e1f631..f8de07bb23 100644 --- a/data/assets/scene/solarsystem/sssb/inner_main_belt_asteroid.asset +++ b/data/assets/scene/solarsystem/sssb/inner_main_belt_asteroid.asset @@ -1,9 +1,8 @@ -local assetHelper = asset.require('util/asset_helper') -local sharedSssb = asset.require('./sssb_shared') +local sharedSssb = asset.require("./sssb_shared") -local filepath = sharedSssb.downloadSssbDatabaseFile(asset, 'inner_main_belt_asteroid', - 'sssb_data_inner_main_belt_asteroid') -local object = sharedSssb.createSssbGroupObject('sssb_data_inner_main_belt_asteroid.csv', +local filepath = sharedSssb.downloadSssbDatabaseFile(asset, "inner_main_belt_asteroid", + "sssb_data_inner_main_belt_asteroid") +local object = sharedSssb.createSssbGroupObject("sssb_data_inner_main_belt_asteroid.csv", "Inner Main Asteroid Belt", filepath, { 1.0, 1.0, 0.0 }) object.Renderable.Enabled = false object.Renderable.SegmentQuality = 1 @@ -13,18 +12,26 @@ object.GUI.Description = [[ Asteroids with a semi-major axis less than 2.0 au an perihelion distance greater than 1.666 au. ]] -assetHelper.registerSceneGraphNodesAndExport(asset, { object }) +asset.onInitialize(function() + openspace.addSceneGraphNode(object) +end) + +asset.onDeinitialize(function() + openspace.removeSceneGraphNode(object) +end) + +asset.export(object) + asset.meta = { Name = "Inner Main Asteroid Belt", - Version = "1.0", + Version = "1.1", Description = [[ RenderableSmallBody asset with data from from JPL Horizons contiaining the Inner Main Asteroid Belt group.]], Author = "JPL Small-Body Database hosted by California Institute of Technology", URL = "https://ssd.jpl.nasa.gov/sbdb_query.cgi", License = [[JPL-authored documents are sponsored by NASA under Contract NAS7-030010. All documents available from this server may be protected under the U.S. and - Foreign Copyright Laws.]], - Identifiers = {"sssb_sssb_data_inner_main_belt_asteroid"} + Foreign Copyright Laws.]] } diff --git a/data/assets/scene/solarsystem/sssb/jupiter-family_comet.asset b/data/assets/scene/solarsystem/sssb/jupiter-family_comet.asset index 91f4226222..52aa485761 100644 --- a/data/assets/scene/solarsystem/sssb/jupiter-family_comet.asset +++ b/data/assets/scene/solarsystem/sssb/jupiter-family_comet.asset @@ -1,9 +1,8 @@ -local assetHelper = asset.require('util/asset_helper') -local sharedSssb = asset.require('./sssb_shared') +local sharedSssb = asset.require("./sssb_shared") -local filepath = sharedSssb.downloadSssbDatabaseFile(asset, 'jupiter-family_comet', - 'sssb_data_jupiter-family_comet') -local object = sharedSssb.createSssbGroupObject('sssb_data_jupiter-family_comet.csv', +local filepath = sharedSssb.downloadSssbDatabaseFile(asset, "jupiter-family_comet", + "sssb_data_jupiter-family_comet") +local object = sharedSssb.createSssbGroupObject("sssb_data_jupiter-family_comet.csv", "Jupiter-family Comets", filepath, { 0.2, 0.8, 0.2 }) object.Renderable.Enabled = false object.Renderable.SegmentQuality = 10 @@ -13,18 +12,26 @@ object.GUI.Description = [[ Comets with a Tisserand's parameter with respect to between 2 and 3. ]] -assetHelper.registerSceneGraphNodesAndExport(asset, { object }) +asset.onInitialize(function() + openspace.addSceneGraphNode(object) +end) + +asset.onDeinitialize(function() + openspace.removeSceneGraphNode(object) +end) + +asset.export(object) + asset.meta = { Name = "Jupiter Family Comets", - Version = "1.0", + Version = "1.1", Description = [[ RenderableSmallBody asset with data from from JPL Horizons contiaining Jupiter-family group.]], Author = "JPL Small-Body Database hosted by California Institute of Technology", URL = "https://ssd.jpl.nasa.gov/sbdb_query.cgi", License = [[JPL-authored documents are sponsored by NASA under Contract NAS7-030010. All documents available from this server may be protected under the U.S. and - Foreign Copyright Laws.]], - Identifiers = {"sssb_sssb_data_jupiter-family_comet"} + Foreign Copyright Laws.]] } diff --git a/data/assets/scene/solarsystem/sssb/jupiter_trojan_asteroid.asset b/data/assets/scene/solarsystem/sssb/jupiter_trojan_asteroid.asset index 0389c0338d..778d815f2f 100644 --- a/data/assets/scene/solarsystem/sssb/jupiter_trojan_asteroid.asset +++ b/data/assets/scene/solarsystem/sssb/jupiter_trojan_asteroid.asset @@ -1,9 +1,8 @@ -local assetHelper = asset.require('util/asset_helper') -local sharedSssb = asset.require('./sssb_shared') +local sharedSssb = asset.require("./sssb_shared") -local filepath = sharedSssb.downloadSssbDatabaseFile(asset, 'jupiter_trojan_asteroid', - 'sssb_data_jupiter_trojan_asteroid') -local object = sharedSssb.createSssbGroupObject('sssb_data_jupiter_trojan_asteroid.csv', +local filepath = sharedSssb.downloadSssbDatabaseFile(asset, "jupiter_trojan_asteroid", + "sssb_data_jupiter_trojan_asteroid") +local object = sharedSssb.createSssbGroupObject("sssb_data_jupiter_trojan_asteroid.csv", "Jupiter Trojan Asteroids", filepath, { 0.5, 0.8, 0.5 }) object.Renderable.Enabled = false object.Renderable.SegmentQuality = 1 @@ -13,18 +12,26 @@ object.GUI.Description = [[ Asteroids trapped in Jupiter's L4/L5 Lagrange points (semimajor axis of between 4.6 and 5.5 au), with an eccentricity of less than 0.3. ]] -assetHelper.registerSceneGraphNodesAndExport(asset, { object }) +asset.onInitialize(function() + openspace.addSceneGraphNode(object) +end) + +asset.onDeinitialize(function() + openspace.removeSceneGraphNode(object) +end) + +asset.export(object) + asset.meta = { Name = "Jupiter Trojan Asteroids", - Version = "1.0", + Version = "1.1", Description = [[ RenderableSmallBody asset with data from from JPL Horizons contiaining Jupiter Trojan group.]], Author = "JPL Small-Body Database hosted by California Institute of Technology", URL = "https://ssd.jpl.nasa.gov/sbdb_query.cgi", License = [[JPL-authored documents are sponsored by NASA under Contract NAS7-030010. All documents available from this server may be protected under the U.S. and - Foreign Copyright Laws.]], - Identifiers = {"sssb_sssb_data_jupiter_trojan_asteroid"} + Foreign Copyright Laws.]] } diff --git a/data/assets/scene/solarsystem/sssb/main_belt_asteroid.asset b/data/assets/scene/solarsystem/sssb/main_belt_asteroid.asset index 7634f0ca92..0eff00d9f4 100644 --- a/data/assets/scene/solarsystem/sssb/main_belt_asteroid.asset +++ b/data/assets/scene/solarsystem/sssb/main_belt_asteroid.asset @@ -1,9 +1,8 @@ -local assetHelper = asset.require('util/asset_helper') -local sharedSssb = asset.require('./sssb_shared') +local sharedSssb = asset.require("./sssb_shared") -local filepath = sharedSssb.downloadSssbDatabaseFile(asset, 'main_belt_asteroid', - 'sssb_data_main_belt_asteroid') -local object = sharedSssb.createSssbGroupObject('sssb_data_main_belt_asteroid.csv', +local filepath = sharedSssb.downloadSssbDatabaseFile(asset, "main_belt_asteroid", + "sssb_data_main_belt_asteroid") +local object = sharedSssb.createSssbGroupObject("sssb_data_main_belt_asteroid.csv", "Main Asteroid Belt", filepath, { 0.0, 0.5, 0.0 }) object.Renderable.Enabled = false object.Renderable.SegmentQuality = 1 @@ -14,18 +13,26 @@ object.GUI.Description = [[ Asteroids with a semi-major axis of between 2.0 and and a perihelion distance greater than 1.666 au. ]] -assetHelper.registerSceneGraphNodesAndExport(asset, { object }) +asset.onInitialize(function() + openspace.addSceneGraphNode(object) +end) + +asset.onDeinitialize(function() + openspace.removeSceneGraphNode(object) +end) + +asset.export(object) + asset.meta = { Name = "Main Asteroid Belt", - Version = "1.0", + Version = "1.1", Description = [[ RenderableSmallBody asset with data from from JPL Horizons contiaining Main Asteroid Belt group.]], Author = "JPL Small-Body Database hosted by California Institute of Technology", URL = "https://ssd.jpl.nasa.gov/sbdb_query.cgi", License = [[JPL-authored documents are sponsored by NASA under Contract NAS7-030010. All documents available from this server may be protected under the U.S. and - Foreign Copyright Laws.]], - Identifiers = {"sssb_sssb_data_main_belt_asteroid"} + Foreign Copyright Laws.]] } diff --git a/data/assets/scene/solarsystem/sssb/mars-crossing_asteroid.asset b/data/assets/scene/solarsystem/sssb/mars-crossing_asteroid.asset index f731c32ab2..e252c81ad9 100644 --- a/data/assets/scene/solarsystem/sssb/mars-crossing_asteroid.asset +++ b/data/assets/scene/solarsystem/sssb/mars-crossing_asteroid.asset @@ -1,9 +1,8 @@ -local assetHelper = asset.require('util/asset_helper') -local sharedSssb = asset.require('./sssb_shared') +local sharedSssb = asset.require("./sssb_shared") -local filepath = sharedSssb.downloadSssbDatabaseFile(asset, 'mars-crossing_asteroid', - 'sssb_data_mars-crossing_asteroid') -local object = sharedSssb.createSssbGroupObject('sssb_data_mars-crossing_asteroid.csv', +local filepath = sharedSssb.downloadSssbDatabaseFile(asset, "mars-crossing_asteroid", + "sssb_data_mars-crossing_asteroid") +local object = sharedSssb.createSssbGroupObject("sssb_data_mars-crossing_asteroid.csv", "Mars-crossing Asteroids", filepath, { 0.814, 0.305, 0.220 }) object.Renderable.Enabled = false object.Renderable.SegmentQuality = 1 @@ -13,18 +12,26 @@ object.GUI.Description = [[ Asteroids that cross the orbit of Mars, with a semi- of less than 3.2 au, and a perihelion distance of between 1.3 and 1.666 au. ]] -assetHelper.registerSceneGraphNodesAndExport(asset, { object }) +asset.onInitialize(function() + openspace.addSceneGraphNode(object) +end) + +asset.onDeinitialize(function() + openspace.removeSceneGraphNode(object) +end) + +asset.export(object) + asset.meta = { Name = "Mars-Crossing Asteroids", - Version = "1.0", + Version = "1.1", Description = [[ RenderableSmallBody asset with data from from JPL Horizons containing Mars-Crossing group.]], Author = "JPL Small-Body Database hosted by California Institute of Technology", URL = "https://ssd.jpl.nasa.gov/sbdb_query.cgi", License = [[JPL-authored documents are sponsored by NASA under Contract NAS7-030010. All documents available from this server may be protected under the U.S. and - Foreign Copyright Laws.]], - Identifiers = {"sssb_sssb_data_mars-crossing_asteroid"} + Foreign Copyright Laws.]] } diff --git a/data/assets/scene/solarsystem/sssb/outer_main_belt_asteroid.asset b/data/assets/scene/solarsystem/sssb/outer_main_belt_asteroid.asset index 6c01440fd6..e74c9219ad 100644 --- a/data/assets/scene/solarsystem/sssb/outer_main_belt_asteroid.asset +++ b/data/assets/scene/solarsystem/sssb/outer_main_belt_asteroid.asset @@ -1,13 +1,12 @@ -local assetHelper = asset.require('util/asset_helper') -local sharedSssb = asset.require('./sssb_shared') +local sharedSssb = asset.require("./sssb_shared") local filepath = sharedSssb.downloadSssbDatabaseFile( asset, - 'outer_main_belt_asteroid', - 'sssb_data_outer_main_belt_asteroid' + "outer_main_belt_asteroid", + "sssb_data_outer_main_belt_asteroid" ) local object = sharedSssb.createSssbGroupObject( - 'sssb_data_outer_main_belt_asteroid.csv', + "sssb_data_outer_main_belt_asteroid.csv", "Outer Main Asteroid Belt", filepath, { 0.4, 0.4, 1.0 } @@ -18,18 +17,26 @@ object.Renderable.TrailFade = 2 object.GUI.Description = [[ Asteroids with a semi-major axis of between 3.2 and 4.6 au. ]] -assetHelper.registerSceneGraphNodesAndExport(asset, { object }) +asset.onInitialize(function() + openspace.addSceneGraphNode(object) +end) + +asset.onDeinitialize(function() + openspace.removeSceneGraphNode(object) +end) + +asset.export(object) + asset.meta = { Name = "Outer Main Asteroid Belt", - Version = "1.0", + Version = "1.1", Description = [[ RenderableSmallBody asset with data from from JPL Horizons contiaining Outer Main Asteroid Belt group.]], Author = "JPL Small-Body Database hosted by California Institute of Technology", URL = "https://ssd.jpl.nasa.gov/sbdb_query.cgi", License = [[JPL-authored documents are sponsored by NASA under Contract NAS7-030010. All documents available from this server may be protected under the U.S. - and Foreign Copyright Laws.]], - Identifiers = {"sssb_sssb_data_outer_main_belt_asteroid"} + and Foreign Copyright Laws.]] } diff --git a/data/assets/scene/solarsystem/sssb/pha.asset b/data/assets/scene/solarsystem/sssb/pha.asset index 04ce9a44e2..f4e07ec1d5 100644 --- a/data/assets/scene/solarsystem/sssb/pha.asset +++ b/data/assets/scene/solarsystem/sssb/pha.asset @@ -1,11 +1,10 @@ -local assetHelper = asset.require('util/asset_helper') -local sharedSssb = asset.require('./sssb_shared') +local sharedSssb = asset.require("./sssb_shared") -local filepath = sharedSssb.downloadSssbDatabaseFile(asset, 'pha', 'sssb_data_pha') -local object = sharedSssb.createSssbGroupObject('sssb_data_pha.csv', +local filepath = sharedSssb.downloadSssbDatabaseFile(asset, "pha", "sssb_data_pha") +local object = sharedSssb.createSssbGroupObject("sssb_data_pha.csv", "Potentially Hazardous Asteroids", filepath, - { 0.98, 0.09, 0.06} + { 0.98, 0.09, 0.06 } ) object.Renderable.Enabled = false object.Renderable.SegmentQuality = 3 @@ -17,12 +16,21 @@ object.GUI.Description = [[ Asteroids that are deemed potentially hazardous to E of 22.0 or less. ]] -assetHelper.registerSceneGraphNodesAndExport(asset, { object }) +asset.onInitialize(function() + openspace.addSceneGraphNode(object) +end) + +asset.onDeinitialize(function() + openspace.removeSceneGraphNode(object) +end) + +asset.export(object) + asset.meta = { Name = "Potentially-Hazardous Asteroids", - Version = "1.0", + Version = "1.1", Description = [[ RenderableSmallBody asset with data from from JPL Horizons contiaining Potentially Hazardous group. ]], Author = [[JPL Small-Body Database hosted by California Institute of @@ -30,6 +38,5 @@ asset.meta = { URL = "https://ssd.jpl.nasa.gov/sbdb_query.cgi", License = [[JPL-authored documents are sponsored by NASA under Contract NAS7-030010. All documents available from this server may be protected - under the U.S. and Foreign Copyright Laws.]], - Identifiers = {"sssb_sssb_data_pha"} + under the U.S. and Foreign Copyright Laws.]] } diff --git a/data/assets/scene/solarsystem/sssb/sssb_shared.asset b/data/assets/scene/solarsystem/sssb/sssb_shared.asset index 9ba25174e9..732b70c745 100644 --- a/data/assets/scene/solarsystem/sssb/sssb_shared.asset +++ b/data/assets/scene/solarsystem/sssb/sssb_shared.asset @@ -1,4 +1,4 @@ -local transforms = asset.require('scene/solarsystem/sun/transforms') +local transforms = asset.require("scene/solarsystem/sun/transforms") function downloadSssbDatabaseFile(sceneAsset, name, identifier) assert(sceneAsset, "'asset' needs to be provided") @@ -20,11 +20,11 @@ local createSssbGroupObject = function(filename, guiName, sssbFolder, trailColor local filenameSansExt = filename:gsub(filename:match("(%.%w+)$"), "") return { - Identifier = 'sssb_'..filenameSansExt, + Identifier = "sssb_" .. filenameSansExt, Parent = transforms.SunECLIPJ2000.Identifier, Renderable = { Type = "RenderableSmallBody", - Path = sssbFolder.."/"..filename, + Path = sssbFolder .. filename, Segments = 200, Color = trailColor, TrailFade = 0.5, @@ -38,3 +38,13 @@ end asset.export("downloadSssbDatabaseFile", downloadSssbDatabaseFile) asset.export("createSssbGroupObject", createSssbGroupObject) + + +asset.meta = { + Name = "SSSB shared", + Version = "1.0", + Description = [[ UTILITY ASSET; This asset is for builders and coders.]], + Author = "OpenSpace Team", + URL = "http://openspaceproject.com", + License = "MIT license" +} diff --git a/data/assets/scene/solarsystem/sssb/swifttuttle.asset b/data/assets/scene/solarsystem/sssb/swifttuttle.asset index f0d97c6fdc..b993dc7108 100644 --- a/data/assets/scene/solarsystem/sssb/swifttuttle.asset +++ b/data/assets/scene/solarsystem/sssb/swifttuttle.asset @@ -1,5 +1,4 @@ -local assetHelper = asset.require('util/asset_helper') -local sunTransforms = asset.require('scene/solarsystem/sun/transforms') +local sunTransforms = asset.require("scene/solarsystem/sun/transforms") local sync = asset.syncedResource({ Name = "Swift Tuttle Orbit", @@ -15,7 +14,7 @@ local SwiftTuttleTrail = { Type = "RenderableTrailTrajectory", Translation = { Type = "HorizonsTranslation", - HorizonsTextFile = sync .. "/horizons_swifttuttle.dat" + HorizonsTextFile = sync .. "horizons_swifttuttle.dat" }, Color = { 0.9, 0.9, 0.0 }, StartTime = "1879 JUN 27 00:00:00", @@ -34,7 +33,7 @@ local SwiftTuttlePosition = { Transform = { Translation = { Type = "HorizonsTranslation", - HorizonsTextFile = sync .. "/horizons_swifttuttle.dat" + HorizonsTextFile = sync .. "horizons_swifttuttle.dat" } }, GUI = { @@ -43,20 +42,29 @@ local SwiftTuttlePosition = { } } -assetHelper.registerSceneGraphNodesAndExport(asset, { - SwiftTuttlePosition, SwiftTuttleTrail -}) +asset.onInitialize(function() + openspace.addSceneGraphNode(SwiftTuttlePosition) + openspace.addSceneGraphNode(SwiftTuttleTrail) +end) + +asset.onDeinitialize(function() + openspace.removeSceneGraphNode(SwiftTuttleTrail) + openspace.removeSceneGraphNode(SwiftTuttlePosition) +end) + +asset.export(SwiftTuttlePosition) +asset.export(SwiftTuttleTrail) + asset.meta = { Name = "Swift Tuttle", - Version = "1.0", + Version = "1.1", Description = [[ Position and Trail of Swift Tuttle from 1879 JUN 27 to 1879 JUN 27. Data from JPL Horizons]], Author = "OpenSpace Team", URL = "https://ssd.jpl.nasa.gov/horizons.cgi", License = [[ JPL-authored documents are sponsored by NASA under Contract NAS7-030010. All documents available from this server may be protected - under the U.S. and Foreign Copyright Laws."]], - Identifiers = {"SwiftTuttlePosition", "SwiftTuttleTrail"} + under the U.S. and Foreign Copyright Laws."]] } diff --git a/data/assets/scene/solarsystem/sssb/tesla_roadster.asset b/data/assets/scene/solarsystem/sssb/tesla_roadster.asset index 19b8ac2c44..3a09734bb4 100644 --- a/data/assets/scene/solarsystem/sssb/tesla_roadster.asset +++ b/data/assets/scene/solarsystem/sssb/tesla_roadster.asset @@ -1,5 +1,4 @@ -local assetHelper = asset.require('util/asset_helper') -local sunTransforms = asset.require('scene/solarsystem/sun/transforms') +local sunTransforms = asset.require("scene/solarsystem/sun/transforms") local orbit = asset.syncedResource({ Name = "Tesla Roadster Orbit", @@ -15,7 +14,7 @@ local TeslaRoadsterTrail = { Type = "RenderableTrailTrajectory", Translation = { Type = "HorizonsTranslation", - HorizonsTextFile = orbit .. "/horizons_tesla.dat" + HorizonsTextFile = orbit .. "horizons_tesla.dat" }, Color = { 0.9, 0.9, 0.0 }, StartTime = "2018 FEB 8 00:00:00", @@ -35,7 +34,7 @@ local TeslaPosition = { Transform = { Translation = { Type = "HorizonsTranslation", - HorizonsTextFile = orbit .. "/horizons_tesla.dat" + HorizonsTextFile = orbit .. "horizons_tesla.dat" } }, GUI = { @@ -46,18 +45,29 @@ local TeslaPosition = { } } -assetHelper.registerSceneGraphNodesAndExport(asset, { TeslaPosition, TeslaRoadsterTrail }) +asset.onInitialize(function() + openspace.addSceneGraphNode(TeslaPosition) + openspace.addSceneGraphNode(TeslaRoadsterTrail) +end) + +asset.onDeinitialize(function() + openspace.removeSceneGraphNode(TeslaRoadsterTrail) + openspace.removeSceneGraphNode(TeslaPosition) +end) + +asset.export(TeslaPosition) +asset.export(TeslaRoadsterTrail) + asset.meta = { Name = "Tesla Roadster", - Version = "1.0", + Version = "1.1", Description = [[ Position and Trail of Tesla Roadster from 2018 FEB 8 to 2022 FEB 7 00:00:00. Data from JPL Horizons.]], Author = "OpenSpace Team", URL = "https://ssd.jpl.nasa.gov/horizons.cgi", License = [[ JPL-authored documents are sponsored by NASA under Contract NAS7-030010. All documents available from this server may be protected - under the U.S. and Foreign Copyright Laws.]], - Identifiers = {"TeslaPosition", "TeslaRoadsterTrail"} + under the U.S. and Foreign Copyright Laws.]] } diff --git a/data/assets/scene/solarsystem/sssb/transneptunian_object_asteroid.asset b/data/assets/scene/solarsystem/sssb/transneptunian_object_asteroid.asset index dd8252f2d4..b5d8fcab14 100644 --- a/data/assets/scene/solarsystem/sssb/transneptunian_object_asteroid.asset +++ b/data/assets/scene/solarsystem/sssb/transneptunian_object_asteroid.asset @@ -1,12 +1,11 @@ -local assetHelper = asset.require('util/asset_helper') -local sharedSssb = asset.require('./sssb_shared') +local sharedSssb = asset.require("./sssb_shared") local filepath = sharedSssb.downloadSssbDatabaseFile(asset, - 'transneptunian_object_asteroid', - 'sssb_data_transneptunian_object_asteroid' + "transneptunian_object_asteroid", + "sssb_data_transneptunian_object_asteroid" ) local object = sharedSssb.createSssbGroupObject( - 'sssb_data_transneptunian_object_asteroid.csv', + "sssb_data_transneptunian_object_asteroid.csv", "Transneptunian Object Asteroids", filepath, { 0.56, 0.64, 0.95 } @@ -19,12 +18,21 @@ object.GUI.Description = [[ Any minor or dwarf planets in the solar system that the Sun at a greater average distance than Neptune (semi-major axis of 30.1 AU). ]] -assetHelper.registerSceneGraphNodesAndExport(asset, { object }) +asset.onInitialize(function() + openspace.addSceneGraphNode(object) +end) + +asset.onDeinitialize(function() + openspace.removeSceneGraphNode(object) +end) + +asset.export(object) + asset.meta = { Name = "Trans-Neptunian Asteroids", - Version = "1.0", + Version = "1.1", Description = [[ RenderableSmallBody asset with data from from JPL Horizons contiaining Trans-Neptunian group. ]], Author = [[JPL Small-Body Database hosted by California Institute of @@ -32,6 +40,5 @@ asset.meta = { URL = "https://ssd.jpl.nasa.gov/sbdb_query.cgi", License = [[ JPL-authored documents are sponsored by NASA under Contract NAS7-030010. All documents available from this server may be protected - under the U.S. and Foreign Copyright Laws."]], - Identifiers = {"sssb_sssb_data_transneptunian_object_asteroid"} + under the U.S. and Foreign Copyright Laws."]] } diff --git a/data/assets/scene/solarsystem/sun.asset b/data/assets/scene/solarsystem/sun.asset index 0d0b462d84..e7ace91216 100644 --- a/data/assets/scene/solarsystem/sun.asset +++ b/data/assets/scene/solarsystem/sun.asset @@ -1,2 +1,13 @@ -asset.require('./sun/sun') -asset.require('./sun/glare') +asset.require("./sun/sun") +asset.require("./sun/glare") + + +asset.meta = { + Name = "Sun", + Version = "1.0", + Description = [[ Meta asset for the Sun in our solar system. Contains the Sun globe and + Sun glare texture]], + Author = "OpenSpace Team", + URL = "http://openspaceproject.com", + License = "MIT license" +} diff --git a/data/assets/scene/solarsystem/sun/EUV_layer.asset b/data/assets/scene/solarsystem/sun/EUV_layer.asset index 92a7e3abb4..3bd8eb63cb 100644 --- a/data/assets/scene/solarsystem/sun/EUV_layer.asset +++ b/data/assets/scene/solarsystem/sun/EUV_layer.asset @@ -1,6 +1,5 @@ asset.require("spice/base") -local assetHelper = asset.require("util/asset_helper") -local propertyHelper = asset.require('util/property_helper') +local propertyHelper = asset.require("util/property_helper") local transforms = asset.require("./transforms") local textureSourcePath = asset.syncedResource({ @@ -39,19 +38,23 @@ local toggle_EUV_layer = { asset.onInitialize(function () openspace.action.registerAction(toggle_EUV_layer) + openspace.addSceneGraphNode(EUVLayer) end) + asset.onDeinitialize(function () - openspace.action.removeAction(toggle_EUV_layer.Identifier) + openspace.removeSceneGraphNode(EUVLayer) + openspace.action.removeAction(toggle_EUV_layer) end) -assetHelper.registerSceneGraphNodesAndExport(asset, { EUVLayer }) + +asset.export(EUVLayer) + asset.meta = { Name = "Predictive Science Inc. EUV texture sequence Bastille Days", - Version = "1.0", + Version = "1.1", Description = [[Texture sequence of an extreme ultraviolet (EUV) simulation during, the CME]], Author = "CCMC, OpenSpace team", URL = "https://dx.doi.org/10.3847/1538-4357/aab36d", - License = "CC-BY", - Identifier = {"EUV-Layer-bastille-day-2000"} + License = "CC-BY" } diff --git a/data/assets/scene/solarsystem/sun/default_layers.asset b/data/assets/scene/solarsystem/sun/default_layers.asset index 5d0718e902..44fd7a1f3c 100644 --- a/data/assets/scene/solarsystem/sun/default_layers.asset +++ b/data/assets/scene/solarsystem/sun/default_layers.asset @@ -1,6 +1,4 @@ -local colorLayersPath = "./layers/colorlayers" - -local colorLayer = asset.require(colorLayersPath .. "/sun_texture") +local colorLayer = asset.require("./layers/colorlayers/sun_texture") -- Set enabled layers (temporary solution) -- @TODO: do this using a boolean that's passed to the 'asset.require' instead diff --git a/data/assets/scene/solarsystem/sun/glare.asset b/data/assets/scene/solarsystem/sun/glare.asset index a45d80dd82..73325cafd7 100644 --- a/data/assets/scene/solarsystem/sun/glare.asset +++ b/data/assets/scene/solarsystem/sun/glare.asset @@ -1,9 +1,13 @@ -local assetHelper = asset.require("util/asset_helper") local transforms = asset.require("./transforms") -local textures = asset.require('./sun_textures').TexturesPath asset.require("spice/base") +local textures = asset.syncedResource({ + Type = "HttpSynchronization", + Name = "Sun textures", + Identifier = "sun_textures", + Version = 4 +}) local SunGlare = { Identifier = "SunGlare", @@ -13,10 +17,10 @@ local SunGlare = { Size = 1.3*10^10.5, Origin = "Center", Billboard = true, - Texture = textures .. "/halo.png", + Texture = textures .. "halo.png", BlendMode = "Additive", Opacity = 0.65, - RenderableType = "PreDeferredTransparency" + RenderBinMode = "PreDeferredTransparent" }, GUI = { Name = "Sun Glare", @@ -25,15 +29,24 @@ local SunGlare = { } } -assetHelper.registerSceneGraphNodesAndExport(asset, { SunGlare }) +asset.onInitialize(function() + openspace.addSceneGraphNode(SunGlare) +end) + +asset.onDeinitialize(function() + openspace.removeSceneGraphNode(SunGlare) +end) + +asset.export(SunGlare) + + asset.meta = { Name = "Sun Glare", - Version = "1.0", + Version = "1.1", Description = [[ Image plane with sun glare effect.]], Author = "OpenSpace Team", URL = "http://openspaceproject.com", - License = "MIT license", - Identifiers = {"SunGlare"} + License = "MIT license" } diff --git a/data/assets/scene/solarsystem/sun/habitablezone.asset b/data/assets/scene/solarsystem/sun/habitablezone.asset index 7c64aa0241..b1363cdc04 100644 --- a/data/assets/scene/solarsystem/sun/habitablezone.asset +++ b/data/assets/scene/solarsystem/sun/habitablezone.asset @@ -1,6 +1,5 @@ -local assetHelper = asset.require("util/asset_helper") local transforms = asset.require("./transforms") -local textures = asset.require('scene/milkyway/habitable_zones/habitable_zone_textures').TexturesPath +local textures = asset.require("scene/milkyway/habitable_zones/habitable_zone_textures").TexturesPath local HabitableZone = { Identifier = "SunHabitableZone", @@ -8,7 +7,7 @@ local HabitableZone = { Renderable = { Type = "RenderableHabitableZone", Enabled = false, - Texture = textures .. "/hot_to_cold_faded.png", + Texture = textures .. "hot_to_cold_faded.png", EffectiveTemperature = 5780, -- Kelvin Luminosity = 1, -- solar Opacity = 0.1, @@ -21,15 +20,23 @@ local HabitableZone = { } } -assetHelper.registerSceneGraphNodesAndExport(asset, { HabitableZone }) +asset.onInitialize(function() + openspace.addSceneGraphNode(HabitableZone) +end) + +asset.onDeinitialize(function() + openspace.removeSceneGraphNode(HabitableZone) +end) + +asset.export(HabitableZone) + asset.meta = { Name = "Sun Habitable Zone", - Version = "1.0", + Version = "1.1", Description = [[ The habitable zone around our sun, computed using formula and coefficients by Kopparapu et al. (2015) https://arxiv.org/abs/1404.5292]], Author = "OpenSpace Team", URL = "http://openspaceproject.com", - License = "MIT license", - Identifiers = {"SunHabitableZone"} + License = "MIT license" } diff --git a/data/assets/scene/solarsystem/sun/layers/colorlayers/sun_texture.asset b/data/assets/scene/solarsystem/sun/layers/colorlayers/sun_texture.asset index 3a37a2a610..1e9602e912 100644 --- a/data/assets/scene/solarsystem/sun/layers/colorlayers/sun_texture.asset +++ b/data/assets/scene/solarsystem/sun/layers/colorlayers/sun_texture.asset @@ -1,18 +1,29 @@ -local texturesPath = asset.require("./../../sun_textures").TexturesPath -local globeIdentifier = asset.require("./../../sun").Sun.Identifier +local globeIdentifier = asset.require("../../sun").Sun.Identifier + +local texturesPath = asset.syncedResource({ + Type = "HttpSynchronization", + Name = "Sun textures", + Identifier = "sun_textures", + Version = 4 +}) local layer = { Identifier = "Texture", - FilePath = texturesPath .. "/sun.jpg", + FilePath = texturesPath .. "sun.jpg", } -asset.onInitialize(function () +asset.onInitialize(function() openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer) end) +asset.onDeinitialize(function() + openspace.globebrowsing.deleteLayer(globeIdentifier, "ColorLayers", layer) +end) + asset.export("layer", layer) + asset.meta = { Name = "Sun Texture", Version = "1.0", diff --git a/data/assets/scene/solarsystem/sun/marker.asset b/data/assets/scene/solarsystem/sun/marker.asset index 1c6648c2eb..10e1bfc251 100644 --- a/data/assets/scene/solarsystem/sun/marker.asset +++ b/data/assets/scene/solarsystem/sun/marker.asset @@ -1,9 +1,13 @@ -local assetHelper = asset.require("util/asset_helper") local transforms = asset.require("./transforms") -local textures = asset.require('./sun_textures').TexturesPath asset.require("spice/base") +local textures = asset.syncedResource({ + Type = "HttpSynchronization", + Name = "Sun textures", + Identifier = "sun_textures", + Version = 4 +}) local SunMarker = { Identifier = "SunMarker", @@ -14,7 +18,7 @@ local SunMarker = { Size = 3.0E11, Origin = "Center", Billboard = true, - Texture = textures .. "/marker.png", + Texture = textures .. "marker.png", BlendMode = "Additive" }, GUI = { @@ -24,15 +28,23 @@ local SunMarker = { } } -assetHelper.registerSceneGraphNodesAndExport(asset, { SunMarker }) +asset.onInitialize(function() + openspace.addSceneGraphNode(SunMarker) +end) + +asset.onDeinitialize(function() + openspace.removeSceneGraphNode(SunMarker) +end) + +asset.export(SunMarker) + asset.meta = { Name = "Sun marker", - Version = "1.0", - Description = [[ Marker for the sun, with a stick and label.]], + Version = "1.1", + Description = [[ Marker for the Sun, with a stick and label.]], Author = "OpenSpace Team", URL = "http://openspaceproject.com", - License = "MIT license", - Identifiers = {"SunMarker"} + License = "MIT license" } diff --git a/data/assets/scene/solarsystem/sun/sun.asset b/data/assets/scene/solarsystem/sun/sun.asset index de53d4aa1b..f494cd04d0 100644 --- a/data/assets/scene/solarsystem/sun/sun.asset +++ b/data/assets/scene/solarsystem/sun/sun.asset @@ -1,4 +1,3 @@ -local assetHelper = asset.require("util/asset_helper") local transforms = asset.require("./transforms") asset.require("spice/base") @@ -45,15 +44,26 @@ local SunLabel = { } } -assetHelper.registerSceneGraphNodesAndExport(asset, { Sun, SunLabel }) +asset.onInitialize(function() + openspace.addSceneGraphNode(Sun) + openspace.addSceneGraphNode(SunLabel) +end) + +asset.onDeinitialize(function() + openspace.removeSceneGraphNode(SunLabel) + openspace.removeSceneGraphNode(Sun) +end) + +asset.export(Sun) +asset.export(SunLabel) + asset.meta = { Name = "Sun", - Version = "1.0", + Version = "1.1", Description = [[ The Sun and label]], Author = "OpenSpace Team", URL = "http://openspaceproject.com", - License = "MIT license", - Identifiers = {"Sun" , "SunLabel"} + License = "MIT license" } diff --git a/data/assets/scene/solarsystem/sun/sun_textures.asset b/data/assets/scene/solarsystem/sun/sun_textures.asset deleted file mode 100644 index fd698e1aea..0000000000 --- a/data/assets/scene/solarsystem/sun/sun_textures.asset +++ /dev/null @@ -1,18 +0,0 @@ -local TexturesPath = asset.syncedResource({ - Type = "HttpSynchronization", - Name = "Sun textures", - Identifier = "sun_textures", - Version = 4 -}) - -asset.export("TexturesPath", TexturesPath) - - -asset.meta = { - Name = "Sun Textures", - Version = "4.0", - Description = [[ Default Sun textures]], - Author = "OpenSpace Team", - URL = "http://openspaceproject.com", - License = "MIT license" -} diff --git a/data/assets/scene/solarsystem/sun/transforms.asset b/data/assets/scene/solarsystem/sun/transforms.asset index 952b9e8515..9e75ac3ad3 100644 --- a/data/assets/scene/solarsystem/sun/transforms.asset +++ b/data/assets/scene/solarsystem/sun/transforms.asset @@ -1,4 +1,3 @@ -local assetHelper = asset.require("util/asset_helper") asset.require("spice/base") @@ -85,16 +84,33 @@ local SunECLIPJ2000 = { } } -assetHelper.registerSceneGraphNodesAndExport(asset, { SolarSystemBarycenter, SunCenter, SunIAU, SunECLIPJ2000 }) +asset.onInitialize(function() + openspace.addSceneGraphNode(SolarSystemBarycenter) + openspace.addSceneGraphNode(SunCenter) + openspace.addSceneGraphNode(SunIAU) + openspace.addSceneGraphNode(SunECLIPJ2000) +end) + +asset.onDeinitialize(function() + openspace.removeSceneGraphNode(SunECLIPJ2000) + openspace.removeSceneGraphNode(SunIAU) + openspace.removeSceneGraphNode(SunCenter) + openspace.removeSceneGraphNode(SolarSystemBarycenter) +end) + +asset.export(SolarSystemBarycenter) +asset.export(SunCenter) +asset.export(SunIAU) +asset.export(SunECLIPJ2000) + asset.meta = { Name = "Sun Transforms", - Version = "1.0", + Version = "1.1", Description = [[ Sun transforms: Solar System Barycenter, SUN IAU and SUN J2000]], Author = "OpenSpace Team", URL = "http://openspaceproject.com", - License = "MIT license", - Identifiers = {"SolarSystemBarycenter", "SunIAU", "SunECLIPJ2000"} + License = "MIT license" } diff --git a/data/assets/scene/solarsystem/sun/transforms_heliosphere.asset b/data/assets/scene/solarsystem/sun/transforms_heliosphere.asset index 7262083c83..5245786469 100644 --- a/data/assets/scene/solarsystem/sun/transforms_heliosphere.asset +++ b/data/assets/scene/solarsystem/sun/transforms_heliosphere.asset @@ -1,5 +1,4 @@ -local assetHelper = asset.require("util/asset_helper") -local sunTransforms = asset.require('scene/solarsystem/sun/transforms') +local sunTransforms = asset.require("scene/solarsystem/sun/transforms") asset.require("spice/base") local HEEQ180Kernel = asset.localResource("./kernels/HEEQ180.tf") @@ -26,14 +25,22 @@ local HEEQ180ReferenceFrame = { } } -assetHelper.registerSceneGraphNodesAndExport(asset, { HEEQ180ReferenceFrame }) +asset.onInitialize(function() + openspace.addSceneGraphNode(HEEQ180ReferenceFrame) +end) + +asset.onDeinitialize(function() + openspace.removeSceneGraphNode(HEEQ180ReferenceFrame) +end) + +asset.export(HEEQ180ReferenceFrame) + asset.meta = { Name = "Sun Transform, HEEQ180", - Version = "1.0", + Version = "1.1", Description = "Sun transform: HEEQ180", Author = "CCMC", URL = "http://openspaceproject.com", - License = "MIT license", - Identifiers = {"HEEQ180ReferenceFrame"} + License = "MIT license" } diff --git a/data/assets/spice/base.asset b/data/assets/spice/base.asset index 9a9f9a31e1..ea15930774 100644 --- a/data/assets/spice/base.asset +++ b/data/assets/spice/base.asset @@ -1,7 +1,3 @@ -local assetHelper = asset.require("util/asset_helper") - - - local syncedDirectory = asset.syncedResource({ Name = "General SPK Kernels", Type = "HttpSynchronization", @@ -13,10 +9,20 @@ local kernels = { asset.localResource("naif0012.tls"), -- Leapseconds: asset.localResource("pck00010.tpc"), - syncedDirectory .. "/de430_1850-2150.bsp" + syncedDirectory .. "de430_1850-2150.bsp" } -assetHelper.registerSpiceKernels(asset, kernels) +asset.onInitialize(function() + for _, kernel in ipairs(kernels) do + openspace.spice.loadKernel(kernel) + end +end) + +asset.onDeinitialize(function() + for i = #kernels, 1, -1 do + openspace.spice.unloadKernel(kernels[i]) + end +end) asset.meta = { diff --git a/data/assets/sync/everything.asset b/data/assets/sync/everything.asset deleted file mode 100644 index 976e7d3027..0000000000 --- a/data/assets/sync/everything.asset +++ /dev/null @@ -1,10 +0,0 @@ --- Please note that this scene/asset is not meant to be included anywhere directly. --- Rather it is used in the Sync application to synchronize the entire asset folder --- without needing manual adaption - -local assetHelper = asset.require('../util/asset_helper') - -assetHelper.requireAll(asset, '../customization') -assetHelper.requireAll(asset, '../scene') -assetHelper.requireAll(asset, '../spice') -assetHelper.requireAll(asset, '../util') diff --git a/data/assets/util/add_marker.asset b/data/assets/util/add_marker.asset index 1d62a2f00c..6ede2fcf55 100644 --- a/data/assets/util/add_marker.asset +++ b/data/assets/util/add_marker.asset @@ -5,15 +5,17 @@ local icons = asset.syncedResource({ Version = 1 }) +local marker = { + Identifier = "target-marker", + Name = "Target Marker", + Type = "ScreenSpaceImageLocal", + TexturePath = icons .. "target.png" +} + asset.onInitialize(function() - openspace.addScreenSpaceRenderable({ - Identifier = "target-marker", - Name = "Target Marker", - Type = "ScreenSpaceImageLocal", - TexturePath = icons .. '/target.png' - }) + openspace.addScreenSpaceRenderable(marker) end) asset.onDeinitialize(function() - openspace.removeScreenSpaceRenderable('target-marker'); + openspace.removeScreenSpaceRenderable(marker) end) diff --git a/data/assets/util/asset_helper.asset b/data/assets/util/asset_helper.asset deleted file mode 100644 index 7da0050068..0000000000 --- a/data/assets/util/asset_helper.asset +++ /dev/null @@ -1,186 +0,0 @@ -local tableLength = function(table) - local count = 0 - for _ in pairs(table) do count = count + 1 end - return count -end - - -local registerSpiceKernels = function (spiceAsset, kernels) - spiceAsset.onInitialize(function () - for i, kernel in ipairs(kernels) do - openspace.spice.loadKernel(kernel) - end - end) - spiceAsset.onDeinitialize(function () - for i = #kernels, 1, -1 do - local kernel = kernels[i] - openspace.spice.unloadKernel(kernel) - end - end) -end - -local registerSceneGraphNodes = function (sceneAsset, nodes, override) - override = override or false - if not override then - if tableLength(nodes) == 0 then - openspace.printWarning(sceneAsset.filePath .. ": Register function was called with an empty node list. Pass 'true' as third argument to silence this warning.") - return - end - end - - - sceneAsset.onInitialize(function () - for i, node in ipairs(nodes) do - openspace.addSceneGraphNode(node) - end - end) - sceneAsset.onDeinitialize(function () - for i = #nodes, 1, -1 do - node = nodes[i] - openspace.removeSceneGraphNode(node.Identifier) - end - end) -end - - -local registerScreenSpaceRenderables = function (sceneAsset, renderables, override) - override = override or false - if not override then - if tableLength(renderables) == 0 then - openspace.printWarning(sceneAsset.filePath .. ": Register function was called with an empty node list. Pass 'true' as third argument to silence this warning.") - return - end - end - - sceneAsset.onInitialize(function () - for i, node in ipairs(renderables) do - openspace.addScreenSpaceRenderable(node) - end - end) - sceneAsset.onDeinitialize(function () - for i = #renderables, 1, -1 do - local renderable = renderables[i] - openspace.removeScreenSpaceRenderable(renderable.Identifier) - end - end) -end - -local registerDashboardItems = function (dashboardAsset, items) - dashboardAsset.onInitialize( - function () - for i, item in ipairs(items) do - openspace.dashboard.addDashboardItem(item) - end - end - ) - dashboardAsset.onDeinitialize(function () - for i = #items, 1, -1 do - local item = items[i] - openspace.dashboard.removeDashboardItem(item.Identifier) - end - end) -end - -local registerSceneGraphNodesAndExport = function (sceneAsset, nodes, override) - override = override or false - if not override then - if tableLength(nodes) == 0 then - openspace.printWarning(sceneAsset.filePath .. ": Register function was called with an empty node list. Pass 'true' as third argument to silence this warning.") - return - end - end - - for i, node in ipairs(nodes) do - if not node.Identifier then - openspace.printError("Could not load asset as Identifier was missing") - end - end - - sceneAsset.onInitialize(function () - for i, node in ipairs(nodes) do - openspace.addSceneGraphNode(node) - end - end) - sceneAsset.onDeinitialize(function () - for i = #nodes, 1, -1 do - local node = nodes[i] - openspace.removeSceneGraphNode(node.Identifier) - end - end) - - for i, node in ipairs(nodes) do - sceneAsset.export(node.Identifier, node) - end -end - -local requireAll = function (sceneAsset, directory) - function string.ends(String,End) - return End=='' or string.sub(String,-string.len(End))==End - end - - local result = {} - - local files = openspace.walkDirectoryFiles(sceneAsset.localResource('') .. directory, true) - for _, file in pairs(files) do - if file:ends('.asset') then - openspace.printDebug("Requiring: " .. file:sub(file:find(directory), -7)) - local exports = sceneAsset.require(file:sub(1, -7)) - table.insert(result, exports) - end - end - - return result -end - -local getDefaultLightSources = function (solarSystemBarycenterIdentifier) - local sourceList = { - { - Type = "SceneGraphLightSource", - Identifier = "Sun", - Node = solarSystemBarycenterIdentifier, - Intensity = 1.0 - }, - { - Identifier = "Camera", - Type = "CameraLightSource", - Intensity = 0.5 - } - } - return sourceList -end - - -local createModelPart = function (parent, sunLightSourceNode, models, geometry, texture, performShading) - local lightSources = {} - if performShading then - lightSources[1] = { - Type = "SceneGraphLightSource", - Identifier = "Sun", - Node = sunLightSourceNode, - Intensity = 1.0 - } - end - return { - Identifier = parent .. "-" .. geometry, - Parent = parent, - Renderable = { - Type = "RenderableModel", - GeometryFile = models .. "/" .. geometry .. ".obj", - LightSources = lightSources, - PerformShading = performShading, - DisableFaceCulling = true - }, - GUI = { - Hidden = true - } - } -end - -asset.export("registerSceneGraphNodes", registerSceneGraphNodes) -asset.export("registerSceneGraphNodesAndExport", registerSceneGraphNodesAndExport) -asset.export("registerScreenSpaceRenderables", registerScreenSpaceRenderables) -asset.export("registerSpiceKernels", registerSpiceKernels) -asset.export("registerDashboardItems", registerDashboardItems) -asset.export("requireAll", requireAll) -asset.export("getDefaultLightSources", getDefaultLightSources) -asset.export("createModelPart", createModelPart) diff --git a/data/assets/util/circle.asset b/data/assets/util/circle.asset deleted file mode 100644 index 4717b87883..0000000000 --- a/data/assets/util/circle.asset +++ /dev/null @@ -1,8 +0,0 @@ -local circle = asset.syncedResource({ - Name = "Circle", - Type = "HttpSynchronization", - Identifier = "circle_image", - Version = 1 -}) - -asset.export('circle', circle) diff --git a/data/assets/util/default_keybindings.asset b/data/assets/util/default_keybindings.asset index e7e771417d..bbabe20685 100644 --- a/data/assets/util/default_keybindings.asset +++ b/data/assets/util/default_keybindings.asset @@ -1,9 +1,9 @@ -local propertyHelper = asset.require('./property_helper') +local propertyHelper = asset.require("./property_helper") local toggle_native_ui = { Identifier = "os_default.toggle_native_ui", Name = "Show Native GUI", - Command = propertyHelper.invert('Modules.ImGUI.Main.Enabled'), + Command = propertyHelper.invert("Modules.ImGUI.Main.Enabled"), Documentation = "Shows or hides the native UI", GuiPath = "/Native GUI", IsLocal = true, @@ -57,7 +57,7 @@ local toggle_pause_immediate = { local toggle_rotation_friction = { Identifier = "os_default.toggle_rotation_friction", Name = "Toggle Rotation friction", - Command = propertyHelper.invert('NavigationHandler.OrbitalNavigator.Friction.RotationalFriction'), + Command = propertyHelper.invert("NavigationHandler.OrbitalNavigator.Friction.RotationalFriction"), Documentation = "Toggles the rotational friction of the camera. If it is disabled, the camera rotates around the focus object indefinitely.", GuiPath = "/Navigation", IsLocal = false, @@ -68,7 +68,7 @@ local toggle_rotation_friction = { local toggle_zoom_friction = { Identifier = "os_default.toggle_zoom_friction", Name = "Toggle Zoom Friction", - Command = propertyHelper.invert('NavigationHandler.OrbitalNavigator.Friction.ZoomFriction'), + Command = propertyHelper.invert("NavigationHandler.OrbitalNavigator.Friction.ZoomFriction"), Documentation = "Toggles the zoom friction of the camera. If it is disabled, the camera rises up from or closes in towards the focus object indefinitely.", GuiPath = "/Navigation", IsLocal = false, @@ -79,7 +79,7 @@ local toggle_zoom_friction = { local toggle_roll_friction = { Identifier = "os_default.toggle_roll_friction", Name = "Toggle Roll Friction", - Command = propertyHelper.invert('NavigationHandler.OrbitalNavigator.Friction.RollFriction'), + Command = propertyHelper.invert("NavigationHandler.OrbitalNavigator.Friction.RollFriction"), Documentation = "Toggles the roll friction of the camera. If it is disabled, the camera rolls around its own axis indefinitely.", GuiPath = "/Navigation", IsLocal = false, @@ -90,7 +90,13 @@ local toggle_roll_friction = { local fade_to_black = { Identifier = "os_default.fade_to_black", Name = "Fade to/from black", - Command = "if openspace.getPropertyValue('RenderEngine.BlackoutFactor') > 0.5 then openspace.setPropertyValueSingle('RenderEngine.BlackoutFactor', 0.0, 3) else openspace.setPropertyValueSingle('RenderEngine.BlackoutFactor', 1.0, 3) end", + Command = [[ + if openspace.getPropertyValue("RenderEngine.BlackoutFactor") > 0.5 then + openspace.setPropertyValueSingle("RenderEngine.BlackoutFactor", 0.0, 3) + else + openspace.setPropertyValueSingle("RenderEngine.BlackoutFactor", 1.0, 3) + end + ]], Documentation = "Toggles the fade to black within 3 seconds or shows the rendering after 3 seconds.", GuiPath = "/Rendering", IsLocal = false, @@ -101,7 +107,7 @@ local fade_to_black = { local toggle_main_gui = { Identifier = "os_default.toggle_main_gui", Name = "Toggle main GUI", - Command = propertyHelper.invert('Modules.CefWebGui.Visible'), + Command = propertyHelper.invert("Modules.CefWebGui.Visible"), Documentation = "Toggles the main GUI", GuiPath = "/GUI", IsLocal = true, @@ -113,8 +119,8 @@ local toggle_overlays = { Identifier = "os_default.toggle_overlays", Name = "Toggle dashboard and overlays", Command = -[[local isEnabled = openspace.getPropertyValue('Dashboard.IsEnabled'); -openspace.setPropertyValueSingle('Dashboard.IsEnabled', not isEnabled); +[[local isEnabled = openspace.getPropertyValue("Dashboard.IsEnabled"); +openspace.setPropertyValueSingle("Dashboard.IsEnabled", not isEnabled); openspace.setPropertyValueSingle("RenderEngine.ShowLog", not isEnabled); openspace.setPropertyValueSingle("RenderEngine.ShowVersion", not isEnabled); openspace.setPropertyValueSingle("RenderEngine.ShowCamera", not isEnabled)]], @@ -128,7 +134,7 @@ openspace.setPropertyValueSingle("RenderEngine.ShowCamera", not isEnabled)]], local toggle_master_rendering = { Identifier = "os_default.toggle_master_rendering", Name = "Toggle rendering on master", - Command = propertyHelper.invert('RenderEngine.DisableMasterRendering'), + Command = propertyHelper.invert("RenderEngine.DisableMasterRendering"), Documentation = "Toggles the rendering on master", GuiPath = "/Rendering", IsLocal = true, @@ -201,7 +207,7 @@ asset.onDeinitialize(function () openspace.clearKey("PRINT_SCREEN") for _, action in ipairs(Actions) do - openspace.action.removeAction(action.Identifier) + openspace.action.removeAction(action) openspace.clearKey(action.Key) end end) diff --git a/data/assets/util/generate_bookmarks.asset b/data/assets/util/generate_bookmarks.asset index 8736ef7d11..989a1720ef 100644 --- a/data/assets/util/generate_bookmarks.asset +++ b/data/assets/util/generate_bookmarks.asset @@ -1,26 +1,24 @@ -local assetHelper = asset.require('util/asset_helper') - local getBookmarks = function (guiPath, bookmarkfile) local genBookmarks = {}; local notFirstLine = false; local PARSEC_CONSTANT = 3.0856776E16; for line in io.lines(openspace.absPath(bookmarkfile)) do if (notFirstLine) then - local matchstring = '(.-),(.-),(.-),(.-),(.-),(.-),(.-),(.-),(.-),(.-),(.-)$' + local matchstring = "(.-),(.-),(.-),(.-),(.-),(.-),(.-),(.-),(.-),(.-),(.-)$" local group, name, globe, lat, lon, altitude, x, y, z, scale, linewidth = line:match(matchstring) - scale = (scale == '' and 75000 or scale) - linewidth = (linewidth == '' and 2.0 or tonumber(linewidth)) - group = (group == '' and globe or group) + scale = (scale == "" and 75000 or scale) + linewidth = (linewidth == "" and 2.0 or tonumber(linewidth)) + group = (group == "" and globe or group) - local parent = (globe == '' and 'Root' or globe) + local parent = (globe == "" and "Root" or globe) local sgn = { - Identifier = guiPath .. '-' .. name, + Identifier = guiPath .. "-" .. name, Parent = parent, Transform = { Scale = { - Type = 'StaticScale', + Type = "StaticScale", Scale = tonumber(scale); }, Rotation = { @@ -33,7 +31,7 @@ local getBookmarks = function (guiPath, bookmarkfile) } }, Renderable = { - Type = 'RenderableSphericalGrid', + Type = "RenderableSphericalGrid", Enabled = false, Opacity = 0.3, Color = { 0.3, 0.84, 1.0}, @@ -41,17 +39,17 @@ local getBookmarks = function (guiPath, bookmarkfile) }, GUI = { Name = name, - Path = '/' .. guiPath + Path = "/" .. guiPath } } - if (group ~= '') then - sgn.GUI.Path = sgn.GUI.Path .. '/' .. group + if (group ~= "") then + sgn.GUI.Path = sgn.GUI.Path .. "/" .. group end - if (globe == '') then + if (globe == "") then sgn.Transform.Translation = { - Type = 'StaticTranslation', + Type = "StaticTranslation", Position = { tonumber(x) * PARSEC_CONSTANT, tonumber(y) * PARSEC_CONSTANT, @@ -60,7 +58,7 @@ local getBookmarks = function (guiPath, bookmarkfile) } else sgn.Transform.Translation = { - Type = 'GlobeTranslation', + Type = "GlobeTranslation", Globe = globe, Latitude = tonumber(lat), Longitude = tonumber(lon) @@ -81,4 +79,4 @@ local getBookmarks = function (guiPath, bookmarkfile) return genBookmarks end -asset.export('getBookmarks', getBookmarks) +asset.export("getBookmarks", getBookmarks) diff --git a/data/assets/util/ipac.asset b/data/assets/util/ipac.asset index 223fbf47f9..34d9d79272 100644 --- a/data/assets/util/ipac.asset +++ b/data/assets/util/ipac.asset @@ -13,6 +13,18 @@ asset.onInitialize(function() openspace.bindKey("ALT+UP", "openspace.navigation.addTruckMovement(0.0, 5.0)"); openspace.bindKey("ALT+DOWN", "openspace.navigation.addTruckMovement(0.0, -5.0)"); - openspace.bindKey("SPACE", "openspace.setPropertyValueSingle('NavigationHandler.OrbitalNavigator.Aim', '');openspace.setPropertyValueSingle('NavigationHandler.OrbitalNavigator.Anchor', 'Moon');openspace.setPropertyValueSingle('NavigationHandler.OrbitalNavigator.RetargetAnchor', nil);") - openspace.bindKey("Z", "openspace.setPropertyValueSingle('NavigationHandler.OrbitalNavigator.Aim', '');openspace.setPropertyValueSingle('NavigationHandler.OrbitalNavigator.Anchor', 'Earth');openspace.setPropertyValueSingle('NavigationHandler.OrbitalNavigator.RetargetAnchor', nil);") + openspace.bindKey( + "SPACE", + [[ + openspace.setPropertyValueSingle("NavigationHandler.OrbitalNavigator.Aim", ""); + openspace.setPropertyValueSingle("NavigationHandler.OrbitalNavigator.Anchor", "Moon"); + openspace.setPropertyValueSingle("NavigationHandler.OrbitalNavigator.RetargetAnchor", nil) + ]]) + openspace.bindKey( + "Z", + [[ + openspace.setPropertyValueSingle("NavigationHandler.OrbitalNavigator.Aim", ""); + openspace.setPropertyValueSingle("NavigationHandler.OrbitalNavigator.Anchor", "Earth"); + openspace.setPropertyValueSingle("NavigationHandler.OrbitalNavigator.RetargetAnchor", nil) + ]]) end) diff --git a/data/assets/util/joysticks/joystick_helper.asset b/data/assets/util/joysticks/joystick_helper.asset index 106c9dc901..66e376d1f9 100644 --- a/data/assets/util/joysticks/joystick_helper.asset +++ b/data/assets/util/joysticks/joystick_helper.asset @@ -4,58 +4,62 @@ Joystick.State = {} Joystick.State.IsInRollMode = false Joystick.State.Axis = {} -local bindLocalRoll = function(axis) +local bindLocalRoll = function(name, axis) return [[ -- We only want to store the current state in the first mode that is enabled, otherwise we will overwrite the backup if not Joystick.State.IsInRollMode then -- Save current axis state - Joystick.State.Axis.Type, Joystick.State.Axis.Inverted, Joystick.State.Axis.Normalized, Joystick.State.Axis.Sticky, Joystick.State.Axis.Sensitivity = openspace.navigation.joystickAxis(]] .. axis .. [[) + Joystick.State.Axis.Type, Joystick.State.Axis.Inverted, Joystick.State.Axis.JoystickType, Joystick.State.Axis.Sticky, Joystick.State.Axis.Sensitivity, Joystick.State.Axis.PropertyUri, Joystick.State.Axis.MinValue, Joystick.State.Axis.MaxValue, Joystick.State.Axis.IsRemote = openspace.navigation.joystickAxis("]] .. name .. "\", " .. axis .. [[); end -- Set new axis state - openspace.navigation.bindJoystickAxis(]] .. axis .. [[, "LocalRoll X", Joystick.State.Axis.Inverted, Joystick.State.Axis.Normalized, Joystick.State.Axis.Sticky, Joystick.State.Axis.Sensitivity); + openspace.navigation.bindJoystickAxis("]] .. name .. "\", " .. axis .. [[, "LocalRoll X", Joystick.State.Axis.Inverted, Joystick.State.Axis.JoystickType, Joystick.State.Axis.Sticky, Joystick.State.Axis.Sensitivity); Joystick.State.IsInRollMode = true ]] end -local bindGlobalRoll = function(axis) +local bindGlobalRoll = function(name, axis) return [[ -- We only want to store the current state in the first mode that is enabled, otherwise we will overwrite the backup if not Joystick.State.IsInRollMode then -- Save current axis state - Joystick.State.Axis.Type, Joystick.State.Axis.Inverted, Joystick.State.Axis.Normalized, Joystick.State.Axis.Sticky, Joystick.State.Axis.Sensitivity = openspace.navigation.joystickAxis(]] .. axis .. [[) + Joystick.State.Axis.Type, Joystick.State.Axis.Inverted, Joystick.State.Axis.JoystickType, Joystick.State.Axis.Sticky, Joystick.State.Axis.Sensitivity, Joystick.State.Axis.PropertyUri, Joystick.State.Axis.MinValue, Joystick.State.Axis.MaxValue, Joystick.State.Axis.IsRemote = openspace.navigation.joystickAxis("]] .. name .. "\", " .. axis .. [[); end -- Set new axis state - openspace.navigation.bindJoystickAxis(]] .. axis .. [[, "GlobalRoll X", Joystick.State.Axis.Inverted, Joystick.State.Axis.Normalized, Joystick.State.Axis.Sticky, Joystick.State.Axis.Sensitivity); + openspace.navigation.bindJoystickAxis("]] .. name .. "\", " .. axis .. [[, "GlobalRoll X", Joystick.State.Axis.Inverted, Joystick.State.Axis.JoystickType, Joystick.State.Axis.Sticky, Joystick.State.Axis.Sensitivity); Joystick.State.IsInRollMode = true ]] end -local permaBindLocalRoll = function(axis) +local permaBindLocalRoll = function(name, axis) return [[ -- Save current axis state - Joystick.State.Axis.Type, Joystick.State.Axis.Inverted, Joystick.State.Axis.Normalized, Joystick.State.Axis.Sticky, Joystick.State.Axis.Sensitivity = openspace.navigation.joystickAxis(]] .. axis .. [[) + Joystick.State.Axis.Type, Joystick.State.Axis.Inverted, Joystick.State.Axis.JoystickType, Joystick.State.Axis.Sticky, Joystick.State.Axis.Sensitivity, Joystick.State.Axis.PropertyUri, Joystick.State.Axis.MinValue, Joystick.State.Axis.MaxValue, Joystick.State.Axis.IsRemote = openspace.navigation.joystickAxis("]] .. name .. "\", " .. axis .. [[); -- Set new axis state - openspace.navigation.bindJoystickAxis(]] .. axis .. [[, "LocalRoll X", Joystick.State.Axis.Inverted, Joystick.State.Axis.Normalized, Joystick.State.Axis.Sticky, Joystick.State.Axis.Sensitivity); + openspace.navigation.bindJoystickAxis("]] .. name .. "\", " .. axis .. [[, "LocalRoll X", Joystick.State.Axis.Inverted, Joystick.State.Axis.JoystickType, Joystick.State.Axis.Sticky, Joystick.State.Axis.Sensitivity); ]] end -local permaBindGlobalRoll = function(axis) +local permaBindGlobalRoll = function(name, axis) return [[ -- Save current axis state - Joystick.State.Axis.Type, Joystick.State.Axis.Inverted, Joystick.State.Axis.Normalized, Joystick.State.Axis.Sticky, Joystick.State.Axis.Sensitivity = openspace.navigation.joystickAxis(]] .. axis .. [[) + Joystick.State.Axis.Type, Joystick.State.Axis.Inverted, Joystick.State.Axis.JoystickType, Joystick.State.Axis.Sticky, Joystick.State.Axis.Sensitivity, Joystick.State.Axis.PropertyUri, Joystick.State.Axis.MinValue, Joystick.State.Axis.MaxValue, Joystick.State.Axis.IsRemote = openspace.navigation.joystickAxis("]] .. name .. "\", " .. axis .. [[); -- Set new axis state - openspace.navigation.bindJoystickAxis(]] .. axis .. [[, "GlobalRoll X", Joystick.State.Axis.Inverted, Joystick.State.Axis.Normalized, Joystick.State.Axis.Sticky, Joystick.State.Axis.Sensitivity); + openspace.navigation.bindJoystickAxis("]] .. name .. "\", " .. axis .. [[, "GlobalRoll X", Joystick.State.Axis.Inverted, Joystick.State.Axis.JoystickType, Joystick.State.Axis.Sticky, Joystick.State.Axis.Sensitivity); ]] end -local unbindRoll = function(axis) +local unbindRoll = function(name, axis) return [[ -- Reset previous state - openspace.navigation.bindJoystickAxis(]] .. axis .. [[, Joystick.State.Axis.Type, Joystick.State.Axis.Inverted, Joystick.State.Axis.Normalized, Joystick.State.Axis.Sticky, Joystick.State.Axis.Sensitivity); + if(Joystick.State.Axis.Type == "Property") then + openspace.navigation.bindJoystickAxisProperty("]] .. name .. "\", " .. axis .. [[, Joystick.State.Axis.PropertyUri, Joystick.State.Axis.MinValue, Joystick.State.Axis.MaxValue, Joystick.State.Axis.Inverted, Joystick.State.Axis.IsRemote); + else + openspace.navigation.bindJoystickAxis("]] .. name .. "\", " .. axis .. [[, Joystick.State.Axis.Type, Joystick.State.Axis.Inverted, Joystick.State.Axis.JoystickType, Joystick.State.Axis.Sticky, Joystick.State.Axis.Sensitivity); + end ]] end diff --git a/data/assets/util/joysticks/ps4.asset b/data/assets/util/joysticks/ps4.asset index e9f7aab684..829661f96a 100644 --- a/data/assets/util/joysticks/ps4.asset +++ b/data/assets/util/joysticks/ps4.asset @@ -1,7 +1,7 @@ -local propertyHelper = asset.require('../property_helper') -local joystickHelper = asset.require('./joystick_helper') +local propertyHelper = asset.require("../property_helper") +local joystickHelper = asset.require("./joystick_helper") --- Allowed values for the second parameter of bindJoystickAxis: +-- Allowed values for the third parameter of bindJoystickAxis: -- "None" -- "Orbit X" -- "Orbit Y" @@ -14,13 +14,14 @@ local joystickHelper = asset.require('./joystick_helper') -- "GlobalRoll Y" -- "Pan X" -- "Pan Y" --- Third parameter determines whether the axis should be inverted --- Fourth parameter determines whether the axis should be normalized from [-1,1] to [0,1] --- Fifth parameters determins if the axis should be "Sticky" or not. +-- Fourth parameter determines whether the axis should be inverted +-- Fifth parameter determines whether the axis behaves like a joystick or a Trigger. +-- Allowed values are "JoystickLike" and "TriggerLike", the first one is the default +-- Sixth parameters determins if the axis should be "Sticky" or not. -- The axis values can either go back to 0 when the joystick is released or it can -- stay at the value it was before the joystick was released. -- The latter is called a sticky axis, when the values don't go back to 0. --- Sixth parameter is the sensitivity for the axis +-- Seventh parameter is the sensitivity for the axis local PS4Controller = { LeftThumbStick = { 0 , 1 }, @@ -49,70 +50,86 @@ local PS4Controller = { asset.onInitialize(function() local controller = PS4Controller; + local name = "Wireless Controller"; - openspace.navigation.setAxisDeadZone(controller.LeftThumbStick[1], 0.15) - openspace.navigation.setAxisDeadZone(controller.LeftThumbStick[2], 0.15) - openspace.navigation.setAxisDeadZone(controller.RightThumbStick[1], 0.15) - openspace.navigation.setAxisDeadZone(controller.RightThumbStick[2], 0.15) + openspace.navigation.setAxisDeadZone(name, controller.LeftThumbStick[1], 0.15) + openspace.navigation.setAxisDeadZone(name, controller.LeftThumbStick[2], 0.15) + openspace.navigation.setAxisDeadZone(name, controller.RightThumbStick[1], 0.15) + openspace.navigation.setAxisDeadZone(name, controller.RightThumbStick[2], 0.15) + openspace.navigation.setAxisDeadZone(name, controller.L2, 0.05) + openspace.navigation.setAxisDeadZone(name, controller.R2, 0.05) - openspace.navigation.bindJoystickAxis(controller.LeftThumbStick[1], "Orbit X"); - openspace.navigation.bindJoystickAxis(controller.LeftThumbStick[2], "Orbit Y", true); - openspace.navigation.bindJoystickAxis(controller.RightThumbStick[1], "Pan X", true); - openspace.navigation.bindJoystickAxis(controller.RightThumbStick[2], "Pan Y", true); - openspace.navigation.bindJoystickAxis(controller.L2, "Zoom Out", false, true); - openspace.navigation.bindJoystickAxis(controller.R2, "Zoom In", false, true); + openspace.navigation.bindJoystickAxis(name, controller.LeftThumbStick[1], "Orbit X"); + openspace.navigation.bindJoystickAxis(name, controller.LeftThumbStick[2], "Orbit Y", true); + openspace.navigation.bindJoystickAxis(name, controller.RightThumbStick[1], "Pan X", true); + openspace.navigation.bindJoystickAxis(name, controller.RightThumbStick[2], "Pan Y", true); + openspace.navigation.bindJoystickAxis(name, controller.L2, "Zoom Out", false, "TriggerLike"); + openspace.navigation.bindJoystickAxis(name, controller.R2, "Zoom In", false, "TriggerLike"); openspace.navigation.bindJoystickButton( + name, controller.L1, - joystickHelper.bindLocalRoll(controller.RightThumbStick[1]), + joystickHelper.bindLocalRoll(name, controller.RightThumbStick[1]), "Switch to local roll mode" ) openspace.navigation.bindJoystickButton( + name, controller.L1, - joystickHelper.unbindRoll(controller.RightThumbStick[1]), + joystickHelper.unbindRoll(name, controller.RightThumbStick[1]), "Switch back to normal mode", "Release" ) openspace.navigation.bindJoystickButton( + name, controller.R1, - joystickHelper.bindGlobalRoll(controller.RightThumbStick[1]), + joystickHelper.bindGlobalRoll(name, controller.RightThumbStick[1]), "Switch to global roll mode" ) openspace.navigation.bindJoystickButton( + name, controller.R1, - joystickHelper.unbindRoll(controller.RightThumbStick[1]), + joystickHelper.unbindRoll(name, controller.RightThumbStick[1]), "Switch back to normal mode", "Release" ) openspace.navigation.bindJoystickButton( + name, controller.Cross, - propertyHelper.invert('NavigationHandler.OrbitalNavigator.Friction.ZoomFriction'), + propertyHelper.invert("NavigationHandler.OrbitalNavigator.Friction.ZoomFriction"), "Toggle zoom friction" ) openspace.navigation.bindJoystickButton( + name, controller.Circle, - propertyHelper.invert('NavigationHandler.OrbitalNavigator.Friction.RotationalFriction'), + propertyHelper.invert("NavigationHandler.OrbitalNavigator.Friction.RotationalFriction"), "Toggle rotational friction" ) openspace.navigation.bindJoystickButton( + name, controller.DPad.Left, - propertyHelper.invert('NavigationHandler.OrbitalNavigator.Friction.RollFriction'), + propertyHelper.invert("NavigationHandler.OrbitalNavigator.Friction.RollFriction"), "Toggle roll friction" ) openspace.navigation.bindJoystickButton( + name, controller.Square, - "openspace.setPropertyValueSingle('NavigationHandler.OrbitalNavigator.Aim', '');" .. - "openspace.setPropertyValueSingle('NavigationHandler.OrbitalNavigator.Anchor', 'Earth');" .. - "openspace.setPropertyValueSingle('NavigationHandler.OrbitalNavigator.RetargetAnchor', nil);", + [[ + "openspace.setPropertyValueSingle("NavigationHandler.OrbitalNavigator.Aim", ""); + "openspace.setPropertyValueSingle("NavigationHandler.OrbitalNavigator.Anchor", "Earth"); + "openspace.setPropertyValueSingle("NavigationHandler.OrbitalNavigator.RetargetAnchor", nil); + ]], "Switch target to Earth" ) openspace.navigation.bindJoystickButton( + name, controller.Triangle, - "openspace.setPropertyValueSingle('NavigationHandler.OrbitalNavigator.Aim', '');" .. - "openspace.setPropertyValueSingle('NavigationHandler.OrbitalNavigator.Anchor', 'Mars');" .. - "openspace.setPropertyValueSingle('NavigationHandler.OrbitalNavigator.RetargetAnchor', nil);", + [[ + openspace.setPropertyValueSingle("NavigationHandler.OrbitalNavigator.Aim", ""); + openspace.setPropertyValueSingle("NavigationHandler.OrbitalNavigator.Anchor", "Mars"); + openspace.setPropertyValueSingle("NavigationHandler.OrbitalNavigator.RetargetAnchor", nil); + ]], "Switch target to Mars" ) end) diff --git a/data/assets/util/joysticks/space-mouse-not-sticky.asset b/data/assets/util/joysticks/space-mouse-not-sticky.asset index 7140adae0b..cea4fb0681 100644 --- a/data/assets/util/joysticks/space-mouse-not-sticky.asset +++ b/data/assets/util/joysticks/space-mouse-not-sticky.asset @@ -1,7 +1,7 @@ -local propertyHelper = asset.require('../property_helper') -local joystickHelper = asset.require('./joystick_helper') +local propertyHelper = asset.require("../property_helper") +local joystickHelper = asset.require("./joystick_helper") --- Allowed values for the second parameter of bindJoystickAxis: +-- Allowed values for the third parameter of bindJoystickAxis: -- "None" -- "Orbit X" -- "Orbit Y" @@ -14,14 +14,15 @@ local joystickHelper = asset.require('./joystick_helper') -- "GlobalRoll Y" -- "Pan X" -- "Pan Y" --- Third parameter determines whether the axis should be inverted --- Fourth parameter determines whether the axis should be normalized from [-1,1] to [0,1] --- Fifth parameters determins if the axis should be "Sticky" or not. +-- Fourth parameter determines whether the axis should be inverted +-- Fifth parameter determines whether the axis behaves like a joystick or a Trigger. +-- Allowed values are "JoystickLike" and "TriggerLike", the first one is the default +-- Sixth parameters determins if the axis should be "Sticky" or not. -- The axis values can either go back to 0 when the joystick is released or it can -- stay at the value it was before the joystick was released. -- The latter is called a sticky axis, when the values don't go back to 0. -- This version of the SpaceMouse is NOT Sticky. --- Sixth parameter is the sensitivity for the axis +-- Seventh parameter is the sensitivity for the axis local SpaceMouse = { Push = {0, 1, 2}, -- left/right, back/forth, up/down @@ -33,23 +34,26 @@ local SpaceMouse = { asset.onInitialize(function() local controller = SpaceMouse; + local name = "SpaceNavigator"; - openspace.navigation.bindJoystickAxis(controller.Push[1], "Orbit X", false); - openspace.navigation.bindJoystickAxis(controller.Push[2], "Orbit Y", false); - openspace.navigation.bindJoystickAxis(controller.Twist[1], "Pan X", true); - openspace.navigation.bindJoystickAxis(controller.Tilt[2], "Pan Y", false); - openspace.navigation.bindJoystickAxis(controller.Push[3], "Zoom", false); - openspace.navigation.bindJoystickAxis(controller.Tilt[1], "LocalRoll X", false); + openspace.navigation.bindJoystickAxis(name, controller.Push[1], "Orbit X"); + openspace.navigation.bindJoystickAxis(name, controller.Push[2], "Orbit Y"); + openspace.navigation.bindJoystickAxis(name, controller.Twist[1], "Pan X", true); + openspace.navigation.bindJoystickAxis(name, controller.Tilt[2], "Pan Y"); + openspace.navigation.bindJoystickAxis(name, controller.Push[3], "Zoom"); + openspace.navigation.bindJoystickAxis(name, controller.Tilt[1], "LocalRoll X"); openspace.navigation.bindJoystickButton( + name, controller.LeftButton, - joystickHelper.permaBindLocalRoll(controller.Tilt[1]), + joystickHelper.permaBindLocalRoll(name, controller.Tilt[1]), "Switch to local roll mode" ) openspace.navigation.bindJoystickButton( + name, controller.RightButton, - joystickHelper.permaBindGlobalRoll(controller.Tilt[1]), + joystickHelper.permaBindGlobalRoll(name, controller.Tilt[1]), "Switch to global roll mode" ) end) diff --git a/data/assets/util/joysticks/space-mouse.asset b/data/assets/util/joysticks/space-mouse.asset index 36152e9b06..3d36804891 100644 --- a/data/assets/util/joysticks/space-mouse.asset +++ b/data/assets/util/joysticks/space-mouse.asset @@ -1,7 +1,7 @@ -local propertyHelper = asset.require('../property_helper') -local joystickHelper = asset.require('./joystick_helper') +local propertyHelper = asset.require("../property_helper") +local joystickHelper = asset.require("./joystick_helper") --- Allowed values for the second parameter of bindJoystickAxis: +-- Allowed values for the third parameter of bindJoystickAxis: -- "None" -- "Orbit X" -- "Orbit Y" @@ -14,14 +14,15 @@ local joystickHelper = asset.require('./joystick_helper') -- "GlobalRoll Y" -- "Pan X" -- "Pan Y" --- Third parameter determines whether the axis should be inverted --- Fourth parameter determines whether the axis should be normalized from [-1,1] to [0,1] --- Fifth parameters determins if the axis should be "Sticky" or not. +-- Fourth parameter determines whether the axis should be inverted +-- Fifth parameter determines whether the axis behaves like a joystick or a Trigger. +-- Allowed values are "JoystickLike" and "TriggerLike", the first one is the default +-- Sixth parameters determins if the axis should be "Sticky" or not. -- The axis values can either go back to 0 when the joystick is released or it can -- stay at the value it was before the joystick was released. -- The latter is called a sticky axis, when the values don't go back to 0. -- This version of the SpaceMouse IS Sticky. --- Sixth parameter is the sensitivity for the axis +-- Seventh parameter is the sensitivity for the axis local SpaceMouse = { Push = {0, 1, 2}, -- left/right, back/forth, up/down @@ -33,23 +34,26 @@ local SpaceMouse = { asset.onInitialize(function() local controller = SpaceMouse; + local name = "SpaceNavigator"; - openspace.navigation.bindJoystickAxis(controller.Push[1], "Orbit X", false, false, true, 40.0); - openspace.navigation.bindJoystickAxis(controller.Push[2], "Orbit Y", false, false, true, 40.0); - openspace.navigation.bindJoystickAxis(controller.Twist[1], "Pan X", true, false, true, 40.0); - openspace.navigation.bindJoystickAxis(controller.Tilt[2], "Pan Y", false, false, true, 35.0); - openspace.navigation.bindJoystickAxis(controller.Push[3], "Zoom", false, false, true, 40.0); - openspace.navigation.bindJoystickAxis(controller.Tilt[1], "LocalRoll X", false, false, true, 35.0); + openspace.navigation.bindJoystickAxis(name, controller.Push[1], "Orbit X", false, "JoystickLike", true, 40.0); + openspace.navigation.bindJoystickAxis(name, controller.Push[2], "Orbit Y", false, "JoystickLike", true, 40.0); + openspace.navigation.bindJoystickAxis(name, controller.Twist[1], "Pan X", true, "JoystickLike", true, 40.0); + openspace.navigation.bindJoystickAxis(name, controller.Tilt[2], "Pan Y", false, "JoystickLike", true, 35.0); + openspace.navigation.bindJoystickAxis(name, controller.Push[3], "Zoom", false, "JoystickLike", true, 40.0); + openspace.navigation.bindJoystickAxis(name, controller.Tilt[1], "LocalRoll X", false, "JoystickLike", true, 35.0); openspace.navigation.bindJoystickButton( + name, controller.LeftButton, - joystickHelper.permaBindLocalRoll(controller.Tilt[1]), + joystickHelper.permaBindLocalRoll(name, controller.Tilt[1]), "Switch to local roll mode" ) openspace.navigation.bindJoystickButton( + name, controller.RightButton, - joystickHelper.permaBindGlobalRoll(controller.Tilt[1]), + joystickHelper.permaBindGlobalRoll(name, controller.Tilt[1]), "Switch to global roll mode" ) end) diff --git a/data/assets/util/joysticks/xbox.asset b/data/assets/util/joysticks/xbox.asset index d252965ee1..c94449ba68 100644 --- a/data/assets/util/joysticks/xbox.asset +++ b/data/assets/util/joysticks/xbox.asset @@ -1,7 +1,7 @@ -local propertyHelper = asset.require('../property_helper') -local joystickHelper = asset.require('./joystick_helper') +local propertyHelper = asset.require("../property_helper") +local joystickHelper = asset.require("./joystick_helper") --- Allowed values for the second parameter of bindJoystickAxis: +-- Allowed values for the third parameter of bindJoystickAxis: -- "None" -- "Orbit X" -- "Orbit Y" @@ -14,13 +14,14 @@ local joystickHelper = asset.require('./joystick_helper') -- "GlobalRoll Y" -- "Pan X" -- "Pan Y" --- Third parameter determines whether the axis should be inverted --- Fourth parameter determines whether the axis should be normalized from [-1,1] to [0,1] --- Fifth parameters determins if the axis should be "Sticky" or not. +-- Fourth parameter determines whether the axis should be inverted +-- Fifth parameter determines whether the axis behaves like a joystick or a Trigger. +-- Allowed values are "JoystickLike" and "TriggerLike", the first one is the default +-- Sixth parameters determins if the axis should be "Sticky" or not. -- The axis values can either go back to 0 when the joystick is released or it can -- stay at the value it was before the joystick was released. -- The latter is called a sticky axis, when the values don't go back to 0. --- Sixth parameter is the sensitivity for the axis +-- Seventh parameter is the sensitivity for the axis local XBoxController = { LeftThumbStick = { 0 , 1 }, @@ -47,70 +48,86 @@ local XBoxController = { asset.onInitialize(function() local controller = XBoxController; + local name = "Xbox Controller"; - openspace.navigation.setAxisDeadZone(controller.LeftThumbStick[1], 0.15) - openspace.navigation.setAxisDeadZone(controller.LeftThumbStick[2], 0.15) - openspace.navigation.setAxisDeadZone(controller.RightThumbStick[1], 0.15) - openspace.navigation.setAxisDeadZone(controller.RightThumbStick[2], 0.15) + openspace.navigation.setAxisDeadZone(name, controller.LeftThumbStick[1], 0.15) + openspace.navigation.setAxisDeadZone(name, controller.LeftThumbStick[2], 0.15) + openspace.navigation.setAxisDeadZone(name, controller.RightThumbStick[1], 0.15) + openspace.navigation.setAxisDeadZone(name, controller.RightThumbStick[2], 0.15) + openspace.navigation.setAxisDeadZone(name, controller.LeftTrigger, 0.05) + openspace.navigation.setAxisDeadZone(name, controller.RightTrigger, 0.05) - openspace.navigation.bindJoystickAxis(controller.LeftThumbStick[1], "Orbit X"); - openspace.navigation.bindJoystickAxis(controller.LeftThumbStick[2], "Orbit Y", true); - openspace.navigation.bindJoystickAxis(controller.RightThumbStick[1], "Pan X", true); - openspace.navigation.bindJoystickAxis(controller.RightThumbStick[2], "Pan Y", true); - openspace.navigation.bindJoystickAxis(controller.LeftTrigger, "Zoom Out", false, true); - openspace.navigation.bindJoystickAxis(controller.RightTrigger, "Zoom In", false, true); + openspace.navigation.bindJoystickAxis(name, controller.LeftThumbStick[1], "Orbit X"); + openspace.navigation.bindJoystickAxis(name, controller.LeftThumbStick[2], "Orbit Y", true); + openspace.navigation.bindJoystickAxis(name, controller.RightThumbStick[1], "Pan X", true); + openspace.navigation.bindJoystickAxis(name, controller.RightThumbStick[2], "Pan Y", true); + openspace.navigation.bindJoystickAxis(name, controller.LeftTrigger, "Zoom Out", false, "TriggerLike"); + openspace.navigation.bindJoystickAxis(name, controller.RightTrigger, "Zoom In", false, "TriggerLike"); openspace.navigation.bindJoystickButton( + name, controller.LB, - joystickHelper.bindLocalRoll(controller.RightThumbStick[1]), + joystickHelper.bindLocalRoll(name, controller.RightThumbStick[1]), "Switch to local roll mode" ) openspace.navigation.bindJoystickButton( + name, controller.LB, - joystickHelper.unbindRoll(controller.RightThumbStick[1]), + joystickHelper.unbindRoll(name, controller.RightThumbStick[1]), "Switch back to normal mode", "Release" ) openspace.navigation.bindJoystickButton( + name, controller.RB, - joystickHelper.bindGlobalRoll(controller.RightThumbStick[1]), + joystickHelper.bindGlobalRoll(name, controller.RightThumbStick[1]), "Switch to global roll mode" ) openspace.navigation.bindJoystickButton( + name, controller.RB, - joystickHelper.unbindRoll(controller.RightThumbStick[1]), + joystickHelper.unbindRoll(name, controller.RightThumbStick[1]), "Switch back to normal mode", "Release" ) openspace.navigation.bindJoystickButton( + name, controller.A, - propertyHelper.invert('NavigationHandler.OrbitalNavigator.Friction.ZoomFriction'), + propertyHelper.invert("NavigationHandler.OrbitalNavigator.Friction.ZoomFriction"), "Toggle zoom friction" ) openspace.navigation.bindJoystickButton( + name, controller.B, - propertyHelper.invert('NavigationHandler.OrbitalNavigator.Friction.RotationalFriction'), + propertyHelper.invert("NavigationHandler.OrbitalNavigator.Friction.RotationalFriction"), "Toggle rotational friction" ) openspace.navigation.bindJoystickButton( + name, controller.DPad.Left, - propertyHelper.invert('NavigationHandler.OrbitalNavigator.Friction.RollFriction'), + propertyHelper.invert("NavigationHandler.OrbitalNavigator.Friction.RollFriction"), "Toggle roll friction" ) openspace.navigation.bindJoystickButton( + name, controller.X, - "openspace.setPropertyValueSingle('NavigationHandler.OrbitalNavigator.Aim', '');" .. - "openspace.setPropertyValueSingle('NavigationHandler.OrbitalNavigator.Anchor', 'Earth');" .. - "openspace.setPropertyValueSingle('NavigationHandler.OrbitalNavigator.RetargetAnchor', nil);", + [[ + "openspace.setPropertyValueSingle("NavigationHandler.OrbitalNavigator.Aim", ""); + "openspace.setPropertyValueSingle("NavigationHandler.OrbitalNavigator.Anchor", "Earth"); + "openspace.setPropertyValueSingle("NavigationHandler.OrbitalNavigator.RetargetAnchor", nil); + ]], "Switch target to Earth" ) openspace.navigation.bindJoystickButton( + name, controller.Y, - "openspace.setPropertyValueSingle('NavigationHandler.OrbitalNavigator.Aim', '');" .. - "openspace.setPropertyValueSingle('NavigationHandler.OrbitalNavigator.Anchor', 'Mars');" .. - "openspace.setPropertyValueSingle('NavigationHandler.OrbitalNavigator.RetargetAnchor', nil);", + [[ + openspace.setPropertyValueSingle("NavigationHandler.OrbitalNavigator.Aim", ""); + openspace.setPropertyValueSingle("NavigationHandler.OrbitalNavigator.Anchor", "Mars"); + openspace.setPropertyValueSingle("NavigationHandler.OrbitalNavigator.RetargetAnchor", nil); + ]], "Switch target to Mars" ) end) diff --git a/data/assets/util/lua_state_machine_helper.asset b/data/assets/util/lua_state_machine_helper.asset index 45369d01fb..eeca3748c5 100644 --- a/data/assets/util/lua_state_machine_helper.asset +++ b/data/assets/util/lua_state_machine_helper.asset @@ -58,4 +58,4 @@ local createStateMachine = function (states) return machine end -asset.export('createStateMachine', createStateMachine) +asset.export("createStateMachine", createStateMachine) diff --git a/data/assets/util/procedural_globe.asset b/data/assets/util/procedural_globe.asset index 282ffccf1f..b673a368bb 100644 --- a/data/assets/util/procedural_globe.asset +++ b/data/assets/util/procedural_globe.asset @@ -1,4 +1,4 @@ -asset.require('spice/base') +asset.require("spice/base") local createGlobeWithoutName = function(identifier, parent, parentSpiceName, spiceName, radii, tags, trailTags, guiPath, trailColor, orbitPeriod, kernels) diff --git a/data/assets/util/property_helper.asset b/data/assets/util/property_helper.asset index 0c13e098de..89d6a6f7d2 100644 --- a/data/assets/util/property_helper.asset +++ b/data/assets/util/property_helper.asset @@ -1,13 +1,13 @@ -- Function that returns the string that inverts the fully qualified boolean property 'property' local invert = function(prop) - local escaped_property = "'" .. prop .. "'" + local escaped_property = [["]] .. prop .. [["]] return "openspace.setPropertyValueSingle(" .. escaped_property .. ", not openspace.getPropertyValue(" .. escaped_property .. "));" end -- Function that returns the string that increments the 'property' by the 'value' local increment = function(prop, value) local v = value or 1 - local escaped_property = "'" .. prop .. "'" + local escaped_property = [["]] .. prop .. [["]] return "openspace.setPropertyValueSingle(" .. escaped_property .. ", openspace.getPropertyValue(" .. escaped_property .. ") + " .. v .. ");" end @@ -20,7 +20,7 @@ local fade = function(prop, value, duration) assert(type(prop) == "string", "prop must be a number") assert(type(duration) == "number", "duration must be a number") - local escaped_property = "'" .. prop .. "'" + local escaped_property = [["]] .. prop .. [["]] return "openspace.setPropertyValueSingle(" .. escaped_property ..", " .. tostring(value) .. ", " .. tostring(duration) .. ")" end @@ -36,15 +36,15 @@ local fadeInOut = function(prop, duration) assert(type(prop) == "string", "prop must be a number") assert(type(duration) == "number", "duration must be a number") - local escaped_property = "'" .. prop .. "'" + local escaped_property = [["]] .. prop .. [["]] -- If the value is > 0.5 fade out, otherwise fade in return "local v = openspace.getPropertyValue(" .. escaped_property .. "); if v <= 0.5 then " .. fadeIn(prop, duration) .. " else " .. fadeOut(prop, duration) .. " end" end -asset.export('invert', invert) -asset.export('increment', increment) -asset.export('decrement', decrement) -asset.export('fade', fade) -asset.export('fadeIn', fadeIn) -asset.export('fadeOut', fadeOut) -asset.export('fadeInOut', fadeInOut) +asset.export("invert", invert) +asset.export("increment", increment) +asset.export("decrement", decrement) +asset.export("fade", fade) +asset.export("fadeIn", fadeIn) +asset.export("fadeOut", fadeOut) +asset.export("fadeInOut", fadeInOut) diff --git a/data/assets/util/renderable_helper.asset b/data/assets/util/renderable_helper.asset index 90e04e9c7f..987d790768 100644 --- a/data/assets/util/renderable_helper.asset +++ b/data/assets/util/renderable_helper.asset @@ -1,4 +1,4 @@ -local propertyHelper = asset.require('./property_helper') +local propertyHelper = asset.require("./property_helper") -- Function that returns the string that enables/disables the renderable 'renderable' local toggle = function(renderable) @@ -7,9 +7,9 @@ end -- Function that returns the string that sets the enabled property of to local setEnabled = function(renderable, enabled) - return "openspace.setPropertyValue('" .. renderable .. ".Renderable.Enabled', " .. (enabled and "true" or "false") .. ");"; + return [[openspace.setPropertyValue("]] .. renderable .. [[.Renderable.Enabled", ]] .. (enabled and "true" or "false") .. ");"; end -asset.export('toggle', toggle) -asset.export('setEnabled', setEnabled) +asset.export("toggle", toggle) +asset.export("setEnabled", setEnabled) diff --git a/data/assets/util/script_scheduler_helper.asset b/data/assets/util/script_scheduler_helper.asset index e3740daac3..129732ab43 100644 --- a/data/assets/util/script_scheduler_helper.asset +++ b/data/assets/util/script_scheduler_helper.asset @@ -1,4 +1,4 @@ -local renderableHelper = asset.require('./renderable_helper') +local renderableHelper = asset.require("./renderable_helper") -- Function that schedules scripts setting the enabled property -- of to at time