diff --git a/CITATION.cff b/CITATION.cff new file mode 100644 index 0000000000..10993db4e4 --- /dev/null +++ b/CITATION.cff @@ -0,0 +1,73 @@ +cff-version: 1.2.0 +message: "If you use this software, please cite it as below." +authors: +- family-names: "Bock" + given-names: "Alexander" + orcid: "https://orcid.org/0000-0002-2849-6146" +- family-names: "Axelsson" + given-names: "Emil" +- family-names: "Costa" + given-names: "Jonathas" + orcid: "https://orcid.org/0000-0002-5008-5685" +- family-names: "Payne" + given-names: "Gene" + orcid: "https://orcid.org/0000-0001-8022-4781" +- family-names: "Acinapura" + given-names: "Micah" +- family-names: "Trakinski" + given-names: "Vivian" +- family-names: "Emmart" + given-names: "Carter" +- family-names: "Silva" + given-names: "Claudio" + orcid: "https://orcid.org/0000-0003-2452-2295" +- family-names: "Hansen" + given-names: "Charles" + orcid: "https://orcid.org/0000-0002-8480-2152" +- family-names: "Ynnerman" + given-names: "Anders" + orcid: "https://orcid.org/0000-0002-9466-9826" +title: "OpenSpace" +version: 0.18.2 +doi: 10.1109/TVCG.2019.2934259 +date-released: 2022-12-24 +url: "https://github.com/OpenSpace/OpenSpace" +preferred-citation: + scope: "If you use this software, please cite it as below" + type: article + authors: + - family-names: "Bock" + given-names: "Alexander" + orcid: "https://orcid.org/0000-0002-2849-6146" + - family-names: "Axelsson" + given-names: "Emil" + - family-names: "Costa" + given-names: "Jonathas" + orcid: "https://orcid.org/0000-0002-5008-5685" + - family-names: "Payne" + given-names: "Gene" + orcid: "https://orcid.org/0000-0001-8022-4781" + - family-names: "Acinapura" + given-names: "Micah" + - family-names: "Trakinski" + given-names: "Vivian" + - family-names: "Emmart" + given-names: "Carter" + - family-names: "Silva" + given-names: "Claudio" + orcid: "https://orcid.org/0000-0003-2452-2295" + - family-names: "Hansen" + given-names: "Charles" + orcid: "https://orcid.org/0000-0002-8480-2152" + - family-names: "Ynnerman" + given-names: "Anders" + orcid: "https://orcid.org/0000-0002-9466-9826" + doi: 10.1109/TVCG.2019.2934259 + journal: "IEEE Transactions on Visualization and Computer Graphics" + month: 1 + start: 633 + end: 642 + title: "OpenSpace: A System for Astrographics" + issue: 1 + volume: 26 + year: 2020 diff --git a/CMakeLists.txt b/CMakeLists.txt index 1694b170b1..09410db6b9 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -2,7 +2,7 @@ # # # OpenSpace # # # -# Copyright (c) 2014-2022 # +# Copyright (c) 2014-2023 # # # # 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 # @@ -22,28 +22,22 @@ # OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. # ########################################################################################## -cmake_minimum_required(VERSION 3.10 FATAL_ERROR) -cmake_policy(SET CMP0120 NEW) +cmake_minimum_required(VERSION 3.25 FATAL_ERROR) +cmake_policy(VERSION 3.25) project(OpenSpace) set(OPENSPACE_VERSION_MAJOR 0) -set(OPENSPACE_VERSION_MINOR 18) +set(OPENSPACE_VERSION_MINOR 19) set(OPENSPACE_VERSION_PATCH 0) -set(OPENSPACE_VERSION_STRING "Beta-11") +set(OPENSPACE_VERSION_STRING "") -set(OPENSPACE_BASE_DIR "${PROJECT_SOURCE_DIR}") -set(OPENSPACE_CMAKE_EXT_DIR "${OPENSPACE_BASE_DIR}/support/cmake") -set(GHOUL_BASE_DIR "${OPENSPACE_BASE_DIR}/ext/ghoul") - -include(${OPENSPACE_CMAKE_EXT_DIR}/module_common.cmake) -include(${GHOUL_BASE_DIR}/support/cmake/copy_shared_libraries.cmake) -include(${GHOUL_BASE_DIR}/support/cmake/handle_external_library.cmake) -include(${GHOUL_BASE_DIR}/support/cmake/message_macros.cmake) +include(${PROJECT_SOURCE_DIR}/support/cmake/module_common.cmake) +include(${PROJECT_SOURCE_DIR}/ext/ghoul/support/cmake/message_macros.cmake) begin_header("Configuring OpenSpace project") -# Bail out if the user tries to generate a 32 bit project. +# Bail out if the user tries to generate a 32 bit project if (NOT ${CMAKE_SIZEOF_VOID_P} EQUAL 8) message(FATAL_ERROR "OpenSpace can only be generated for 64 bit architectures.") endif () @@ -51,9 +45,7 @@ endif () ########################################################################################## # Cleanup project # ########################################################################################## -set(OPENSPACE_APPS_DIR "${OPENSPACE_BASE_DIR}/apps") - -if (NOT EXISTS "${OPENSPACE_BASE_DIR}/ext/ghoul/CMakeLists.txt") +if (NOT EXISTS "${PROJECT_SOURCE_DIR}/ext/ghoul/CMakeLists.txt") message(FATAL_ERROR "Git submodules are missing. Please run " "git submodule update --init --recursive to download the missing dependencies." ) @@ -68,11 +60,13 @@ mark_as_advanced(CMAKE_BACKWARDS_COMPATIBILITY CMAKE_BUILD_TYPE CMAKE_DEBUG_POST ) # Set build output directories -set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${OPENSPACE_CMAKE_EXT_DIR}) -set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${OPENSPACE_BASE_DIR}/bin) +set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${PROJECT_SOURCE_DIR}/support/cmake) +set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${PROJECT_SOURCE_DIR}/bin) -# "OpenSpace Helper" is not a valid CMake target name under OLD -cmake_policy(SET CMP0037 NEW) +if (MSVC) + # Force all builds to be multi-threaded and increase number of sections in obj files + add_definitions(/MP /bigobj) +endif () ########################################################################################## # Main # @@ -106,8 +100,6 @@ else () set(OPENSPACE_GIT_STATUS "") endif () -option(OPENSPACE_WARNINGS_AS_ERRORS "Treat warnings as errors" OFF) - if (MSVC) option(OPENSPACE_BREAK_ON_FLOATING_POINT_EXCEPTION "Raise exceptions when encountering Inf's or Nan's in floating point numbers" OFF) @@ -134,31 +126,26 @@ if (MSVC) set(GHOUL_OPTIMIZATION_ENABLE_OTHER_OPTIMIZATIONS ${OPENSPACE_OPTIMIZATION_ENABLE_OTHER_OPTIMIZATIONS} CACHE BOOL "" FORCE) endif () -if (UNIX) - if (CMAKE_CXX_COMPILER_ID MATCHES "Clang") - set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++17 -stdlib=libc++") - set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -stdlib=libc++ -lc++ -lc++abi") - else () - if (NOT CMAKE_BUILD_TYPE) - #Can set to "RelWithDebInfo" or "Debug" also, but problems occur if this is blank by default - set(CMAKE_BUILD_TYPE "Release" CACHE STRING "Default build type" FORCE) - endif () - if (NOT DEFINED CMAKE_CXX_FLAGS OR CMAKE_CXX_FLAGS MATCHES "") - set(CMAKE_CXX_FLAGS " ") - endif () - STRING(FIND ${CMAKE_CXX_FLAGS} "GLM_ENABLE_EXPERIMENTAL" GLM_FLAG_POS) - if (${GLM_FLAG_POS} EQUAL -1) - set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DGLM_ENABLE_EXPERIMENTAL" CACHE STRING "" FORCE) - endif () - set(OpenGL_GL_PREFERENCE "GLVND" CACHE STRING "OpenGL Preference setting necessary for linux" FORCE) - #Fix for gcc tolerating space in target name - if (NOT DEFINED CMAKE_C_FLAGS OR CMAKE_C_FLAGS MATCHES "") - set(CMAKE_C_FLAGS " ") - endif () - STRING(FIND ${CMAKE_C_FLAGS} "_GNU_SOURCE" GNUSOURCE_FLAG_POS) - if (${GNUSOURCE_FLAG_POS} EQUAL -1) - set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -D_GNU_SOURCE" CACHE STRING "" FORCE) - endif () +if (UNIX AND NOT CMAKE_CXX_COMPILER_ID MATCHES "Clang") + if (NOT CMAKE_BUILD_TYPE) + # Can set to "RelWithDebInfo" or "Debug" also, but problems occur if this is blank by default + set(CMAKE_BUILD_TYPE "Release" CACHE STRING "Default build type" FORCE) + endif () + if (NOT DEFINED CMAKE_CXX_FLAGS OR CMAKE_CXX_FLAGS MATCHES "") + set(CMAKE_CXX_FLAGS " ") + endif () + STRING(FIND ${CMAKE_CXX_FLAGS} "GLM_ENABLE_EXPERIMENTAL" GLM_FLAG_POS) + if (${GLM_FLAG_POS} EQUAL -1) + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DGLM_ENABLE_EXPERIMENTAL" CACHE STRING "" FORCE) + endif () + set(OpenGL_GL_PREFERENCE "GLVND" CACHE STRING "OpenGL Preference setting necessary for linux" FORCE) + # Fix for GCC tolerating space in target name + if (NOT DEFINED CMAKE_C_FLAGS OR CMAKE_C_FLAGS MATCHES "") + set(CMAKE_C_FLAGS " ") + endif () + STRING(FIND ${CMAKE_C_FLAGS} "_GNU_SOURCE" GNUSOURCE_FLAG_POS) + if (${GNUSOURCE_FLAG_POS} EQUAL -1) + set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -D_GNU_SOURCE" CACHE STRING "" FORCE) endif () endif () @@ -176,12 +163,12 @@ add_custom_target( add_dependencies(run_codegen codegen) add_custom_command( OUTPUT "${CMAKE_CURRENT_BINARY_DIR}/__codegen.h" - COMMAND codegen ARGS "${OPENSPACE_BASE_DIR}/modules" "${OPENSPACE_BASE_DIR}/src" + COMMAND codegen ARGS "${PROJECT_SOURCE_DIR}/modules" "${PROJECT_SOURCE_DIR}/src" VERBATIM ) -set_folder_location(codegen-lib "support") -set_folder_location(codegen "support") -set_folder_location(run_codegen "support") +set_target_properties(codegen-lib PROPERTIES FOLDER "support") +set_target_properties(codegen PROPERTIES FOLDER "support") +set_target_properties(run_codegen PROPERTIES FOLDER "support") # Qt @@ -218,12 +205,12 @@ end_header("End: Configuring Modules") add_subdirectory(support/coding/codegen/tests) -set_folder_location(run_test_codegen "Unit Tests/support") -set_folder_location(codegentest "Unit Tests") +set_target_properties(run_test_codegen PROPERTIES FOLDER "Unit Tests/support") +set_target_properties(codegentest PROPERTIES FOLDER "Unit Tests") begin_header("Configuring Applications") -add_subdirectory("${OPENSPACE_APPS_DIR}") +add_subdirectory(apps) end_header("End: Configuring Applications") @@ -235,7 +222,7 @@ endif () option(OPENSPACE_HAVE_TESTS "Activate the OpenSpace unit tests" ON) if (OPENSPACE_HAVE_TESTS) begin_header("Generating OpenSpace unit test") - add_subdirectory("${CMAKE_CURRENT_SOURCE_DIR}/tests") + add_subdirectory(tests) end_header() endif (OPENSPACE_HAVE_TESTS) @@ -250,7 +237,7 @@ if (OPENSPACE_MODULE_WEBBROWSER AND CEF_ROOT) set(PROJECT_ARCH "x86_64") if (WIN32) - set(RESOURCE_FILE ${OPENSPACE_APPS_DIR}/OpenSpace/openspace.rc) + set(RESOURCE_FILE openspace.rc) endif () # Add the CEF binary distribution's cmake/ directory to the module path and @@ -266,6 +253,6 @@ endif () ########################################################################################## # Manage the CPack packaging -include(${OPENSPACE_CMAKE_EXT_DIR}/packaging.cmake) +include(${PROJECT_SOURCE_DIR}/support/cmake/packaging.cmake) end_header("End: Configuring OpenSpace project") diff --git a/CODE_OF_CONDUCT.md b/CODE_OF_CONDUCT.md index e38b6a04d6..f8489b2b7a 100644 --- a/CODE_OF_CONDUCT.md +++ b/CODE_OF_CONDUCT.md @@ -27,7 +27,7 @@ Project maintainers have the right and responsibility to remove, edit, or reject This Code of Conduct applies both within project spaces and in public spaces when an individual is representing the project or its community. Examples of representing a project or community include using an official project e-mail address, posting via an official social media account, or acting as an appointed representative at an online or offline event. Representation of a project may be further defined and clarified by project maintainers. ## Enforcement -Instances of abusive, harassing, or otherwise unacceptable behavior may be reported by contacting the project team at alexander.bock@me.com or vivian@amnh.org. The project team will review and investigate all complaints, and will respond in a way that it deems appropriate to the circumstances. The project team is obligated to maintain confidentiality with regard to the reporter of an incident. Further details of specific enforcement policies may be posted separately. +Instances of abusive, harassing, or otherwise unacceptable behavior may be reported by contacting the project team at alex@openspaceproject.com or vivian@amnh.org. The project team will review and investigate all complaints, and will respond in a way that it deems appropriate to the circumstances. The project team is obligated to maintain confidentiality with regard to the reporter of an incident. Further details of specific enforcement policies may be posted separately. Project maintainers who do not follow or enforce the Code of Conduct in good faith may face temporary or permanent repercussions as determined by other members of the project's leadership. diff --git a/LICENSE.md b/LICENSE.md index 93395f8f71..7c377d85c8 100644 --- a/LICENSE.md +++ b/LICENSE.md @@ -1,4 +1,4 @@ -Copyright (c) 2014-2022 +Copyright (c) 2014-2023 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 @@ -15,4 +15,4 @@ INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE -OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. \ No newline at end of file +OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/README.md b/README.md index b3ac1f86ab..c5f30645b6 100644 --- a/README.md +++ b/README.md @@ -37,7 +37,7 @@ OpenSpace requires at least support for [OpenGL](https://www.opengl.org/) versio This repository contains the source code and example profiles for OpenSpace, but does not contain any data. To build and install the application, please check out the [GitHub Wiki](https://github.com/OpenSpace/OpenSpace/wiki). Here, you will find two pages, a [build instruction](https://github.com/OpenSpace/OpenSpace/wiki/Compiling) for all operating systems and then additional instructions for [Windows](https://github.com/OpenSpace/OpenSpace/wiki/Compiling-Windows), [Linux (Ubuntu)](https://github.com/OpenSpace/OpenSpace/wiki/Compiling-Ubuntu), and [MacOS](https://github.com/OpenSpace/OpenSpace/wiki/Compiling-MacOS). Please note that the Apple Silicon series of chips do not support OpenGL natively and Metal 2 does not support `double` precision accuracy (see [here](https://developer.apple.com/metal/Metal-Shading-Language-Specification.pdf) Section 2.1), therefore only the Intel processors for MacOS are supported and maintained. Requirements for compiling are: - - CMake version 3.10 or above + - CMake version 3.25 or above - C++ compiler supporting C++20 (MSVC 19.31, GCC11, Clang14, AppleClang 13.1.6) - [Boost](http://www.boost.org/) - [Qt](http://www.qt.io/download) @@ -45,3 +45,6 @@ Requirements for compiling are: Feel free to create issues for missing features, bug reports, or compile problems or contact us via [email](mailto:openspace@amnh.org?subject=OpenSpace:). Regarding any issues, you are very welcome on our [Slack support channel](https://openspacesupport.slack.com) to which you can freely [sign-up](https://join.slack.com/t/openspacesupport/shared_invite/zt-37niq6y9-T0JaCIk4UoFLI4VF5U9Vsw). ![Image](https://github.com/OpenSpace/openspace.github.io/raw/master/assets/images/himalaya-nkpg-dome.jpg) + +# License +The contents of this repository is under an [MIT license](https://github.com/OpenSpace/OpenSpace/blob/master/LICENSE.md). diff --git a/apps/CMakeLists.txt b/apps/CMakeLists.txt index 1b1607a35b..d28a99f874 100644 --- a/apps/CMakeLists.txt +++ b/apps/CMakeLists.txt @@ -2,7 +2,7 @@ # # # OpenSpace # # # -# Copyright (c) 2014-2022 # +# Copyright (c) 2014-2023 # # # # 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 ae592d8d42..4f9e59fd48 100644 --- a/apps/OpenSpace-MinVR/CMakeLists.txt +++ b/apps/OpenSpace-MinVR/CMakeLists.txt @@ -22,9 +22,9 @@ # OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. # ########################################################################################## -include(${GHOUL_BASE_DIR}/support/cmake/copy_shared_libraries.cmake) -include(${OPENSPACE_CMAKE_EXT_DIR}/application_definition.cmake) -include(${OPENSPACE_CMAKE_EXT_DIR}/global_variables.cmake) +include(${PROJECT_SOURCE_DIR}/ext/ghoul/support/cmake/copy_shared_libraries.cmake) +include(${PROJECT_SOURCE_DIR}/support/cmake/application_definition.cmake) +include(${PROJECT_SOURCE_DIR}/support/cmake/global_variables.cmake) set(MACOSX_BUNDLE_ICON_FILE openspace.icns) @@ -57,7 +57,7 @@ target_link_libraries(OpenSpace-MinVR PUBLIC openspace-core MinVR) # target as of July 2017, which is needed. if (OPENSPACE_MODULE_WEBBROWSER AND CEF_ROOT) if (WIN32) - set(RESOURCE_FILE ${OPENSPACE_APPS_DIR}/OpenSpace-MinVR/openspace.rc) + set(RESOURCE_FILE openspace.rc) endif () # Add the CEF binary distribution's cmake/ directory to the module path and diff --git a/apps/OpenSpace-MinVR/main.cpp b/apps/OpenSpace-MinVR/main.cpp index 34c62a86e5..6b43cfa748 100644 --- a/apps/OpenSpace-MinVR/main.cpp +++ b/apps/OpenSpace-MinVR/main.cpp @@ -2,7 +2,7 @@ * * * OpenSpace * * * - * Copyright (c) 2014-2022 * + * Copyright (c) 2014-2023 * * * * 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 b8677938df..80670c427e 100644 --- a/apps/OpenSpace/CMakeLists.txt +++ b/apps/OpenSpace/CMakeLists.txt @@ -2,7 +2,7 @@ # # # OpenSpace # # # -# Copyright (c) 2014-2022 # +# Copyright (c) 2014-2023 # # # # 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 # @@ -22,9 +22,8 @@ # OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. # ########################################################################################## -include(${GHOUL_BASE_DIR}/support/cmake/copy_shared_libraries.cmake) -include(${GHOUL_BASE_DIR}/support/cmake/message_macros.cmake) -include(${OPENSPACE_CMAKE_EXT_DIR}/application_definition.cmake) +include(${PROJECT_SOURCE_DIR}/ext/ghoul/support/cmake/message_macros.cmake) +include(${PROJECT_SOURCE_DIR}/support/cmake/application_definition.cmake) # We are getting all_enabled_modules from the handle_applications.cmake file which gets # it from the main CMakeLists file @@ -43,14 +42,14 @@ if (OPENSPACE_OPENVR_SUPPORT) if (WIN32) find_path(SGCT_OPENVR_INCLUDE_DIRECTORY NAMES SGCTOpenVR.h - PATHS ${OPENSPACE_BASE_DIR}/ext/sgct/additional_includes/openvr NO_DEFAULT_PATH + PATHS ${PROJECT_SOURCE_DIR}/ext/sgct/additional_includes/openvr NO_DEFAULT_PATH REQUIRED ) else () find_path(SGCT_OPENVR_INCLUDE_DIRECTORY NAMES SGCTOpenVR.h PATH_SUFFIXES SGCTOpenVR - PATHS ${OPENSPACE_BASE_DIR}/ext/sgct/additional_includes/openvr + PATHS ${PROJECT_SOURCE_DIR}/ext/sgct/additional_includes/openvr REQUIRED ) endif () @@ -115,19 +114,14 @@ set(SGCT_TEXT OFF CACHE BOOL "" FORCE) set(SGCT_DEP_INCLUDE_FREETYPE OFF CACHE BOOL "" FORCE) set(SGCT_DEP_INCLUDE_FMT OFF CACHE BOOL "" FORCE) set(SGCT_DEP_INCLUDE_SCN OFF CACHE BOOL "" FORCE) +set(SGCT_DEP_INCLUDE_CATCH2 OFF CACHE BOOL "" FORCE) add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/ext/sgct) target_link_libraries(OpenSpace PRIVATE sgct) -set_folder_location(sgct "External") -set_folder_location(glfw "External") -set_folder_location(miniziplibstatic "External") -set_folder_location(png16_static "External") -set_folder_location(quat "External") -set_folder_location(tinyxml2static "External") -set_folder_location(vrpn "External") -set_folder_location(zlibstatic "External") -set_folder_location(SGCTTest "Unit Tests") +set_target_properties(sgct PROPERTIES FOLDER "External") +set_target_properties(glfw PROPERTIES FOLDER "External") +set_target_properties(SGCTTest PROPERTIES FOLDER "External") if (UNIX AND (NOT APPLE)) target_link_libraries(OpenSpace PRIVATE Xcursor Xinerama X11) @@ -161,7 +155,7 @@ if (OPENSPACE_MODULE_WEBBROWSER AND CEF_ROOT) set(PROJECT_ARCH "x86_64") if (WIN32) - set(RESOURCE_FILE ${OPENSPACE_APPS_DIR}/OpenSpace/openspace.rc) + set(RESOURCE_FILE openspace.rc) endif () # Add the CEF binary distribution's cmake/ directory to the module path and diff --git a/apps/OpenSpace/ext/launcher/CMakeLists.txt b/apps/OpenSpace/ext/launcher/CMakeLists.txt index 1c85bd7569..b1c87bfe64 100644 --- a/apps/OpenSpace/ext/launcher/CMakeLists.txt +++ b/apps/OpenSpace/ext/launcher/CMakeLists.txt @@ -2,7 +2,7 @@ # # # OpenSpace # # # -# Copyright (c) 2014-2022 # +# Copyright (c) 2014-2023 # # # # 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 # @@ -22,7 +22,7 @@ # OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. # ########################################################################################## -include(${OPENSPACE_CMAKE_EXT_DIR}/set_openspace_compile_settings.cmake) +include(${PROJECT_SOURCE_DIR}/support/cmake/set_openspace_compile_settings.cmake) set(HEADER_FILES include/filesystemaccess.h @@ -113,8 +113,9 @@ target_include_directories( openspace-ui-launcher PUBLIC include - ${OPENSPACE_APPS_DIR}/OpenSpace/ext/sgct/include - ${OPENSPACE_APPS_DIR}/OpenSpace/ext/sgct/sgct/ext/glm + # @TODO: This should be handled in a better way + ../sgct/include + ../sgct/sgct/ext/glm ) target_link_libraries( openspace-ui-launcher diff --git a/apps/OpenSpace/ext/launcher/include/filesystemaccess.h b/apps/OpenSpace/ext/launcher/include/filesystemaccess.h index 7f7d562275..9db6b4d972 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-2022 * + * Copyright (c) 2014-2023 * * * * 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 1008964744..2f1ca6b732 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-2022 * + * Copyright (c) 2014-2023 * * * * 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 bb15076196..b71af7cbb7 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-2022 * + * Copyright (c) 2014-2023 * * * * 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 * @@ -100,6 +100,8 @@ private: QPushButton* removeButton = nullptr; QDialogButtonBox* saveButtons = nullptr; } _keybindingWidgets; + + QDialogButtonBox* _mainButtons = nullptr; }; #endif // __OPENSPACE_UI_LAUNCHER___ACTIONDIALOG___H__ diff --git a/apps/OpenSpace/ext/launcher/include/profile/additionalscriptsdialog.h b/apps/OpenSpace/ext/launcher/include/profile/additionalscriptsdialog.h index ff6631dec6..7382c12280 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-2022 * + * Copyright (c) 2014-2023 * * * * 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/assetedit.h b/apps/OpenSpace/ext/launcher/include/profile/assetedit.h index d4f4ecad3b..01d976a3c4 100644 --- a/apps/OpenSpace/ext/launcher/include/profile/assetedit.h +++ b/apps/OpenSpace/ext/launcher/include/profile/assetedit.h @@ -2,7 +2,7 @@ * * * OpenSpace * * * - * Copyright (c) 2014-2022 * + * Copyright (c) 2014-2023 * * * * 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 9d2fb4a9eb..85714b26bb 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-2022 * + * Copyright (c) 2014-2023 * * * * 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 18d62f12c6..0e1055bcbc 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-2022 * + * Copyright (c) 2014-2023 * * * * 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 610f824468..6103897deb 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-2022 * + * Copyright (c) 2014-2023 * * * * 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 3834e60045..d600f67f0f 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-2022 * + * Copyright (c) 2014-2023 * * * * 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 e6a7fb0e91..3766dd2337 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-2022 * + * Copyright (c) 2014-2023 * * * * 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/horizonsdialog.h b/apps/OpenSpace/ext/launcher/include/profile/horizonsdialog.h index 373410edce..8f8dec8c60 100644 --- a/apps/OpenSpace/ext/launcher/include/profile/horizonsdialog.h +++ b/apps/OpenSpace/ext/launcher/include/profile/horizonsdialog.h @@ -2,7 +2,7 @@ * * * OpenSpace * * * - * Copyright (c) 2014-2022 * + * Copyright (c) 2014-2023 * * * * 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 7ab499602c..4f51297604 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-2022 * + * Copyright (c) 2014-2023 * * * * 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 754af7b82a..22d2c5cafd 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-2022 * + * Copyright (c) 2014-2023 * * * * 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 280b7ebc9d..a496605a81 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-2022 * + * Copyright (c) 2014-2023 * * * * 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 c70f14e8d3..f334a786dd 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-2022 * + * Copyright (c) 2014-2023 * * * * 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 547ee7db6f..3eeb7a32f3 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-2022 * + * Copyright (c) 2014-2023 * * * * 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 74e13c03a7..e1dc6ab511 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-2022 * + * Copyright (c) 2014-2023 * * * * 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/scriptlogdialog.h b/apps/OpenSpace/ext/launcher/include/profile/scriptlogdialog.h index 6e9726fc44..c8a1218647 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-2022 * + * Copyright (c) 2014-2023 * * * * 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 * @@ -50,6 +50,7 @@ private: QListWidget* _scriptlogList = nullptr; QLineEdit* _filter = nullptr; QPushButton* _reloadFile = nullptr; + std::string _scriptLogFile; std::vector _scripts; }; diff --git a/apps/OpenSpace/ext/launcher/include/profile/timedialog.h b/apps/OpenSpace/ext/launcher/include/profile/timedialog.h index 978c3bfc96..89fd0349e4 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-2022 * + * Copyright (c) 2014-2023 * * * * 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/sgctedit/displaywindowunion.h b/apps/OpenSpace/ext/launcher/include/sgctedit/displaywindowunion.h index 67ba2d2054..ea64258da9 100644 --- a/apps/OpenSpace/ext/launcher/include/sgctedit/displaywindowunion.h +++ b/apps/OpenSpace/ext/launcher/include/sgctedit/displaywindowunion.h @@ -2,7 +2,7 @@ * * * OpenSpace * * * - * Copyright (c) 2014-2022 * + * Copyright (c) 2014-2023 * * * * 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/sgctedit/monitorbox.h b/apps/OpenSpace/ext/launcher/include/sgctedit/monitorbox.h index 7fd0aef0bd..c8f080fc24 100644 --- a/apps/OpenSpace/ext/launcher/include/sgctedit/monitorbox.h +++ b/apps/OpenSpace/ext/launcher/include/sgctedit/monitorbox.h @@ -2,7 +2,7 @@ * * * OpenSpace * * * - * Copyright (c) 2014-2022 * + * Copyright (c) 2014-2023 * * * * 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 * @@ -81,10 +81,10 @@ private: std::vector _monitorDimensionsScaled; std::array _windowRendering = { - QRectF{ 0.f, 0.f, 0.f, 0.f }, - QRectF{ 0.f, 0.f, 0.f, 0.f }, - QRectF{ 0.f, 0.f, 0.f, 0.f }, - QRectF{ 0.f, 0.f, 0.f, 0.f } + QRectF(0.f, 0.f, 0.f, 0.f), + QRectF(0.f, 0.f, 0.f, 0.f), + QRectF(0.f, 0.f, 0.f, 0.f), + QRectF(0.f, 0.f, 0.f, 0.f) }; int _nWindows = 1; const std::array _colorsForWindows; diff --git a/apps/OpenSpace/ext/launcher/include/sgctedit/orientationdialog.h b/apps/OpenSpace/ext/launcher/include/sgctedit/orientationdialog.h index c4a1be0cb9..5e4f62d370 100644 --- a/apps/OpenSpace/ext/launcher/include/sgctedit/orientationdialog.h +++ b/apps/OpenSpace/ext/launcher/include/sgctedit/orientationdialog.h @@ -2,7 +2,7 @@ * * * OpenSpace * * * - * Copyright (c) 2014-2022 * + * Copyright (c) 2014-2023 * * * * 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/sgctedit/settingswidget.h b/apps/OpenSpace/ext/launcher/include/sgctedit/settingswidget.h index 208da42673..1ff9fd8578 100644 --- a/apps/OpenSpace/ext/launcher/include/sgctedit/settingswidget.h +++ b/apps/OpenSpace/ext/launcher/include/sgctedit/settingswidget.h @@ -2,7 +2,7 @@ * * * OpenSpace * * * - * Copyright (c) 2014-2022 * + * Copyright (c) 2014-2023 * * * * 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 * @@ -63,7 +63,7 @@ public: bool showUiOnFirstWindow() const; private: - sgct::quat _orientationValue = { 0.f, 0.f, 0.f, 0.f }; + sgct::quat _orientationValue = sgct::quat(0.f, 0.f, 0.f, 0.f); QCheckBox* _checkBoxVsync = nullptr; QCheckBox* _showUiOnFirstWindow = nullptr; }; diff --git a/apps/OpenSpace/ext/launcher/include/sgctedit/sgctedit.h b/apps/OpenSpace/ext/launcher/include/sgctedit/sgctedit.h index a9f40fdab0..b3a0e7983d 100644 --- a/apps/OpenSpace/ext/launcher/include/sgctedit/sgctedit.h +++ b/apps/OpenSpace/ext/launcher/include/sgctedit/sgctedit.h @@ -2,7 +2,7 @@ * * * OpenSpace * * * - * Copyright (c) 2014-2022 * + * Copyright (c) 2014-2023 * * * * 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/sgctedit/windowcontrol.h b/apps/OpenSpace/ext/launcher/include/sgctedit/windowcontrol.h index d8a8c7f0be..71f155823c 100644 --- a/apps/OpenSpace/ext/launcher/include/sgctedit/windowcontrol.h +++ b/apps/OpenSpace/ext/launcher/include/sgctedit/windowcontrol.h @@ -2,7 +2,7 @@ * * * OpenSpace * * * - * Copyright (c) 2014-2022 * + * Copyright (c) 2014-2023 * * * * 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 db4ef759f6..e48303b9b9 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-2022 * + * Copyright (c) 2014-2023 * * * * 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 e30340f275..9c428b52e0 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-2022 * + * Copyright (c) 2014-2023 * * * * 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 * @@ -158,7 +158,7 @@ namespace { std::ofstream outFile; try { outFile.open(path, std::ofstream::out); - sgct::config::GeneratorVersion genEntry = { + sgct::config::GeneratorVersion genEntry = sgct::config::GeneratorVersion{ "OpenSpace", OPENSPACE_VERSION_MAJOR, OPENSPACE_VERSION_MINOR diff --git a/apps/OpenSpace/ext/launcher/src/profile/actiondialog.cpp b/apps/OpenSpace/ext/launcher/src/profile/actiondialog.cpp index 4e7fdfb890..14c3174cbe 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-2022 * + * Copyright (c) 2014-2023 * * * * 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 * @@ -97,9 +97,9 @@ void ActionDialog::createWidgets() { // *----------------------*---------------*----------------* // | [+] [-] | | | Row 14 // *----------------------*---------------*----------------* - // |=======================================================| Row 14 + // |=======================================================| Row 16 // *----------------------*---------------*----------------* - // | | | Row 15 + // | | | Row 17 // *----------------------*---------------*----------------* QGridLayout* layout = new QGridLayout(this); @@ -113,18 +113,18 @@ void ActionDialog::createWidgets() { clearKeybindingFields(); layout->addWidget(new Line, 16, 0, 1, 3); - - QDialogButtonBox* buttonBox = new QDialogButtonBox; - buttonBox->setStandardButtons(QDialogButtonBox::Save | QDialogButtonBox::Cancel); + + _mainButtons = new QDialogButtonBox; + _mainButtons->setStandardButtons(QDialogButtonBox::Save | QDialogButtonBox::Cancel); QObject::connect( - buttonBox, &QDialogButtonBox::accepted, + _mainButtons, &QDialogButtonBox::accepted, this, &ActionDialog::applyChanges ); QObject::connect( - buttonBox, &QDialogButtonBox::rejected, + _mainButtons, &QDialogButtonBox::rejected, this, &ActionDialog::reject ); - layout->addWidget(buttonBox, 17, 2, Qt::AlignRight); + layout->addWidget(_mainButtons, 17, 2, Qt::AlignRight); } void ActionDialog::createActionWidgets(QGridLayout* layout) { @@ -523,12 +523,19 @@ void ActionDialog::actionSelected() { _actionWidgets.addButton->setEnabled(false); _actionWidgets.removeButton->setEnabled(true); _actionWidgets.saveButtons->setEnabled(true); + if (_mainButtons) { + _mainButtons->setEnabled(false); + } } else { // No action selected _actionWidgets.addButton->setEnabled(true); _actionWidgets.removeButton->setEnabled(false); _actionWidgets.saveButtons->setEnabled(false); + //Keybinding panel must also be in valid state to re-enable main start button + if (_mainButtons && !_keybindingWidgets.saveButtons->isEnabled()) { + _mainButtons->setEnabled(true); + } } } @@ -587,7 +594,11 @@ void ActionDialog::actionSaved() { action->name = _actionWidgets.name->text().toStdString(); - action->guiPath = _actionWidgets.guiPath->text().toStdString(); + std::string guiPath = _actionWidgets.guiPath->text().toStdString(); + if (!guiPath.starts_with('/')) { + guiPath = "/" + guiPath; + } + action->guiPath = guiPath; action->documentation = _actionWidgets.documentation->text().toStdString(); action->isLocal = _actionWidgets.isLocal->isChecked(); action->script = _actionWidgets.script->toPlainText().toStdString(); @@ -705,12 +716,19 @@ void ActionDialog::keybindingSelected() { _keybindingWidgets.saveButtons->button(QDialogButtonBox::Save)->setEnabled( _keybindingWidgets.key->currentIndex() > 0 ); + if (_mainButtons) { + _mainButtons->setEnabled(false); + } } else { // No keybinding selected _keybindingWidgets.addButton->setEnabled(true); _keybindingWidgets.removeButton->setEnabled(false); _keybindingWidgets.saveButtons->setEnabled(false); + //Action panel must also be in valid state to re-enable main start button + if (_mainButtons && !_actionWidgets.saveButtons->isEnabled()) { + _mainButtons->setEnabled(true); + } } } @@ -719,6 +737,16 @@ void ActionDialog::keybindingActionSelected(int) { } void ActionDialog::keybindingSaved() { + if (_keybindingWidgets.key->currentIndex() == -1) { + QMessageBox::critical(this, "Missing key", "Key must have an assignment"); + return; + } + //A selection can be made from the combo box without typing text, but selecting from + //the combo will fill the text, so using the text box as criteria covers both cases. + if (_keybindingWidgets.actionText->text().isEmpty()) { + QMessageBox::critical(this, "Missing action", "Key action must not be empty"); + return; + } Profile::Keybinding* keybinding = selectedKeybinding(); ghoul_assert(keybinding, "There must be a selected keybinding at this point"); @@ -758,5 +786,11 @@ void ActionDialog::clearKeybindingFields() { } void ActionDialog::keybindingRejected() { + bool isKeyEmpty = (_keybindingsData.back().key.key == Key::Unknown); + bool isActionEmpty = _keybindingsData.back().action.empty(); + if (isKeyEmpty || isActionEmpty) { + delete _keybindingWidgets.list->takeItem(_keybindingWidgets.list->count() - 1); + _keybindingsData.erase(_keybindingsData.begin() + _keybindingsData.size() - 1); + } clearKeybindingFields(); } diff --git a/apps/OpenSpace/ext/launcher/src/profile/additionalscriptsdialog.cpp b/apps/OpenSpace/ext/launcher/src/profile/additionalscriptsdialog.cpp index 63c8ead4dc..90d50a4fb1 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-2022 * + * Copyright (c) 2014-2023 * * * * 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/assetedit.cpp b/apps/OpenSpace/ext/launcher/src/profile/assetedit.cpp index cf95c26231..0fb0de2345 100644 --- a/apps/OpenSpace/ext/launcher/src/profile/assetedit.cpp +++ b/apps/OpenSpace/ext/launcher/src/profile/assetedit.cpp @@ -2,7 +2,7 @@ * * * OpenSpace * * * - * Copyright (c) 2014-2022 * + * Copyright (c) 2014-2023 * * * * 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 f1b14d65cd..897b7c2e5f 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-2022 * + * Copyright (c) 2014-2023 * * * * 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 793c5ec523..d68dc2d249 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-2022 * + * Copyright (c) 2014-2023 * * * * 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 ff9107abd1..467a61437c 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-2022 * + * Copyright (c) 2014-2023 * * * * 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 * @@ -156,7 +156,10 @@ void AssetTreeModel::importModelData(const std::string& assetBasePath, std::string assetList = assets.useQtFileSystemModelToTraverseDir(assetBasePath); assetList += assets.useQtFileSystemModelToTraverseDir(userAssetBasePath, true); std::istringstream iss(assetList); - ImportElement rootElem = { "", 0, false }; + ImportElement rootElem = { + .line = "", + .level = 0, + }; if (importGetNextLine(rootElem, iss)) { importInsertItem(iss, _rootItem.get(), rootElem, 0); diff --git a/apps/OpenSpace/ext/launcher/src/profile/cameradialog.cpp b/apps/OpenSpace/ext/launcher/src/profile/cameradialog.cpp index 754c34149d..fdcf33ea8d 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-2022 * + * Copyright (c) 2014-2023 * * * * 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 * @@ -384,11 +384,11 @@ void CameraDialog::approved() { !_navState.upY->text().isEmpty() && !_navState.upZ->text().isEmpty()) { - glm::dvec3 u = { + glm::dvec3 u = glm::dvec3( _navState.upX->text().toDouble(), _navState.upY->text().toDouble(), _navState.upZ->text().toDouble() - }; + ); nav.up = u; } else { diff --git a/apps/OpenSpace/ext/launcher/src/profile/deltatimesdialog.cpp b/apps/OpenSpace/ext/launcher/src/profile/deltatimesdialog.cpp index fd1f88690a..8b20e26989 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-2022 * + * Copyright (c) 2014-2023 * * * * 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/horizonsdialog.cpp b/apps/OpenSpace/ext/launcher/src/profile/horizonsdialog.cpp index d10250b064..ba6027adc6 100644 --- a/apps/OpenSpace/ext/launcher/src/profile/horizonsdialog.cpp +++ b/apps/OpenSpace/ext/launcher/src/profile/horizonsdialog.cpp @@ -2,7 +2,7 @@ * * * OpenSpace * * * - * Copyright (c) 2014-2022 * + * Copyright (c) 2014-2023 * * * * 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 * @@ -457,8 +457,8 @@ bool HorizonsDialog::isValidInput() { // Range 1 to 2147483647 (max of 32 bit int). // Horizons read the step size into a 32 bit int, but verifies the input on their // website as a uint32_t. If step size over 32 bit int is sent, this error message is - // recived: Cannot read numeric value -- re-enter - if (step < 1 || step > std::numeric_limits::max()) { + // received: Cannot read numeric value -- re-enter + if (step < 1) { _errorMsg->setText(QString::fromStdString(fmt::format( "Step size is outside valid range 1 to '{}'", std::numeric_limits::max() diff --git a/apps/OpenSpace/ext/launcher/src/profile/line.cpp b/apps/OpenSpace/ext/launcher/src/profile/line.cpp index d822113349..1b9bf42e8a 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-2022 * + * Copyright (c) 2014-2023 * * * * 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 a81c4fa5ee..ea2aeec8e3 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-2022 * + * Copyright (c) 2014-2023 * * * * 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 61a8c23157..5158df2029 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-2022 * + * Copyright (c) 2014-2023 * * * * 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 0c40d3089f..cd345d04f4 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-2022 * + * Copyright (c) 2014-2023 * * * * 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 * @@ -37,7 +37,11 @@ using namespace openspace; namespace { - const Profile::Module Blank = { "", "", "" }; + const Profile::Module Blank = { + .name = "", + .loadedInstruction = std::nullopt, + .notLoadedInstruction = std::nullopt + }; } // namespace ModulesDialog::ModulesDialog(QWidget* parent, diff --git a/apps/OpenSpace/ext/launcher/src/profile/profileedit.cpp b/apps/OpenSpace/ext/launcher/src/profile/profileedit.cpp index 17b5fd21b3..da72404dc5 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-2022 * + * Copyright (c) 2014-2023 * * * * 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 * @@ -184,9 +184,8 @@ void ProfileEdit::createWidgets(const std::string& profileName) { QGridLayout* container = new QGridLayout; container->setColumnStretch(1, 1); - _keybindingsLabel = new QLabel("Keybindings"); + _keybindingsLabel = new QLabel("Actions & Keybindings"); _keybindingsLabel->setObjectName("heading"); - _keybindingsLabel->setWordWrap(true); container->addWidget(_keybindingsLabel, 0, 0); QPushButton* keybindingsProperties = new QPushButton("Edit"); @@ -345,7 +344,9 @@ void ProfileEdit::initSummaryTextForEachCategory() { QString::fromStdString(summarizeProperties(_profile.properties)) ); - _keybindingsLabel->setText(labelText(_profile.keybindings.size(), "Keybindings")); + _keybindingsLabel->setText( + labelText(_profile.keybindings.size(), "Actions & Keybindings") + ); _keybindingsEdit->setText(QString::fromStdString( summarizeKeybindings(_profile.keybindings, _profile.actions) )); diff --git a/apps/OpenSpace/ext/launcher/src/profile/propertiesdialog.cpp b/apps/OpenSpace/ext/launcher/src/profile/propertiesdialog.cpp index 17b56745cb..4ada1a6408 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-2022 * + * Copyright (c) 2014-2023 * * * * 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/scriptlogdialog.cpp b/apps/OpenSpace/ext/launcher/src/profile/scriptlogdialog.cpp index b1b5c4db3c..0089fd518d 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-2022 * + * Copyright (c) 2014-2023 * * * * 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 * @@ -32,6 +32,7 @@ #include #include #include +#include #include #include #include @@ -41,6 +42,7 @@ ScriptlogDialog::ScriptlogDialog(QWidget* parent) : QDialog(parent) + , _scriptLogFile(openspace::global::configuration->scriptLog) { setWindowTitle("Scriptlog"); createWidgets(); @@ -63,10 +65,31 @@ void ScriptlogDialog::createWidgets() { QGridLayout* layout = new QGridLayout(this); { QLabel* heading = new QLabel(QString::fromStdString(fmt::format( - "Choose commands from \"{}\"", openspace::global::configuration->scriptLog + "Choose commands from \"{}\"", _scriptLogFile ))); heading->setObjectName("heading"); layout->addWidget(heading, 0, 0, 1, 2); + + QPushButton* open = new QPushButton; + open->setIcon(open->style()->standardIcon(QStyle::SP_FileIcon)); + connect( + open, &QPushButton::clicked, + [this, heading]() { + QString file = QFileDialog::getOpenFileName( + this, + "Select log file", + "", + "*.txt" + ); + _scriptLogFile = file.toStdString(); + + heading->setText(QString::fromStdString(fmt::format( + "Choose commands from \"{}\"", _scriptLogFile + ))); + loadScriptFile(); + } + ); + layout->addWidget(open, 0, 1, Qt::AlignRight); } _filter = new QLineEdit; @@ -100,7 +123,9 @@ void ScriptlogDialog::createWidgets() { } void ScriptlogDialog::loadScriptFile() { - std::string log = absPath(openspace::global::configuration->scriptLog).string(); + _scripts.clear(); + + std::string log = absPath(_scriptLogFile).string(); QFile file(QString::fromStdString(log)); if (file.open(QIODevice::ReadOnly | QIODevice::Text)) { QTextStream in(&file); diff --git a/apps/OpenSpace/ext/launcher/src/profile/timedialog.cpp b/apps/OpenSpace/ext/launcher/src/profile/timedialog.cpp index befc0ea2ca..0eeae0a527 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-2022 * + * Copyright (c) 2014-2023 * * * * 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 * @@ -52,7 +52,8 @@ TimeDialog::TimeDialog(QWidget* parent, std::optional* if (_timeData.value.empty()) { _timeData.value = "0d"; } - _relativeEdit->setSelection(0, _relativeEdit->text().length()); + int len = static_cast(_relativeEdit->text().length()); + _relativeEdit->setSelection(0, len); } else { _absoluteEdit->setSelectedSection(QDateTimeEdit::YearSection); diff --git a/apps/OpenSpace/ext/launcher/src/sgctedit/displaywindowunion.cpp b/apps/OpenSpace/ext/launcher/src/sgctedit/displaywindowunion.cpp index e08b11b5ad..0f420d9de1 100644 --- a/apps/OpenSpace/ext/launcher/src/sgctedit/displaywindowunion.cpp +++ b/apps/OpenSpace/ext/launcher/src/sgctedit/displaywindowunion.cpp @@ -2,7 +2,7 @@ * * * OpenSpace * * * - * Copyright (c) 2014-2022 * + * Copyright (c) 2014-2023 * * * * 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 * @@ -49,7 +49,8 @@ void DisplayWindowUnion::createWidgets(int nMaxWindows, { // Add all window controls (some will be hidden from GUI initially) for (int i = 0; i < nMaxWindows; ++i) { - const int monitorNumForThisWindow = (nMaxWindows > 3 && i >= 2) ? 1 : 0; + const int monitorNumForThisWindow = + (monitorResolutions.size() > 1 && i >= 2) ? 1 : 0; WindowControl* ctrl = new WindowControl( monitorNumForThisWindow, diff --git a/apps/OpenSpace/ext/launcher/src/sgctedit/monitorbox.cpp b/apps/OpenSpace/ext/launcher/src/sgctedit/monitorbox.cpp index cf96e07307..ebb1b80c0c 100644 --- a/apps/OpenSpace/ext/launcher/src/sgctedit/monitorbox.cpp +++ b/apps/OpenSpace/ext/launcher/src/sgctedit/monitorbox.cpp @@ -2,7 +2,7 @@ * * * OpenSpace * * * - * Copyright (c) 2014-2022 * + * Copyright (c) 2014-2023 * * * * 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 * @@ -31,7 +31,7 @@ namespace { constexpr int WindowOpacity = 170; QRectF computeUnion(const std::vector& monitorResolutions) { - QRectF res = { 0.f, 0.f, 0.f, 0.f }; + QRectF res = QRectF(0.f, 0.f, 0.f, 0.f); for (const QRect& m : monitorResolutions) { res |= m; } @@ -145,12 +145,12 @@ void MonitorBox::paintEvent(QPaintEvent*) { void MonitorBox::windowDimensionsChanged(unsigned int mIdx, unsigned int wIdx, const QRectF& newDimensions) { - _windowRendering[wIdx] = { + _windowRendering[wIdx] = QRectF( _monitorDimensionsScaled[mIdx].x() + newDimensions.left() * _monitorScaleFactor, _monitorDimensionsScaled[mIdx].y() + newDimensions.top() * _monitorScaleFactor, newDimensions.width() * _monitorScaleFactor, newDimensions.height() * _monitorScaleFactor - }; + ); update(); } diff --git a/apps/OpenSpace/ext/launcher/src/sgctedit/orientationdialog.cpp b/apps/OpenSpace/ext/launcher/src/sgctedit/orientationdialog.cpp index e3f4a9f982..008281d863 100644 --- a/apps/OpenSpace/ext/launcher/src/sgctedit/orientationdialog.cpp +++ b/apps/OpenSpace/ext/launcher/src/sgctedit/orientationdialog.cpp @@ -2,7 +2,7 @@ * * * OpenSpace * * * - * Copyright (c) 2014-2022 * + * Copyright (c) 2014-2023 * * * * 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/sgctedit/settingswidget.cpp b/apps/OpenSpace/ext/launcher/src/sgctedit/settingswidget.cpp index 2a57223b09..99ee2a9f6a 100644 --- a/apps/OpenSpace/ext/launcher/src/sgctedit/settingswidget.cpp +++ b/apps/OpenSpace/ext/launcher/src/sgctedit/settingswidget.cpp @@ -2,7 +2,7 @@ * * * OpenSpace * * * - * Copyright (c) 2014-2022 * + * Copyright (c) 2014-2023 * * * * 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/sgctedit/sgctedit.cpp b/apps/OpenSpace/ext/launcher/src/sgctedit/sgctedit.cpp index 2f5eae4166..f4ec6f5888 100644 --- a/apps/OpenSpace/ext/launcher/src/sgctedit/sgctedit.cpp +++ b/apps/OpenSpace/ext/launcher/src/sgctedit/sgctedit.cpp @@ -2,7 +2,7 @@ * * * OpenSpace * * * - * Copyright (c) 2014-2022 * + * Copyright (c) 2014-2023 * * * * Permission is hereby granted, free of charge, to any person obtaining a copy of this * * software and associated documentation files (the "Software"), to deal in the Software * @@ -39,7 +39,7 @@ #include namespace { - constexpr QRect MonitorWidgetSize = { 0, 0, 500, 500 }; + constexpr QRect MonitorWidgetSize = QRect(0, 0, 500, 500); constexpr int MaxNumberWindows = 4; // Returns true if the windows are not ordered correctly. 'Correct' in this means that @@ -48,10 +48,10 @@ namespace { // https://github.com/OpenSpace/OpenSpace/issues/507 // is fixed bool hasWindowIssues(const sgct::config::Cluster& cluster) { - sgct::ivec2 size = { + sgct::ivec2 size = sgct::ivec2( std::numeric_limits::max(), std::numeric_limits::max() - }; + ); for (const sgct::config::Window& window : cluster.nodes.front().windows) { if (window.size.x <= size.x && window.size.y <= size.y) { size = window.size; @@ -96,7 +96,7 @@ void SgctEdit::createWidgets(const std::vector& monitorSizes) { QBoxLayout* layout = new QVBoxLayout(this); layout->setSizeConstraint(QLayout::SetFixedSize); - sgct::quat orientation = { 0.f, 0.f, 0.f, 0.f }; + sgct::quat orientation = sgct::quat(0.f, 0.f, 0.f, 0.f); if (_cluster.scene.has_value() && _cluster.scene->orientation.has_value()) { orientation = *_cluster.scene->orientation; } @@ -283,7 +283,7 @@ sgct::config::Cluster SgctEdit::generateConfiguration() const { sgct::config::User user; user.eyeSeparation = 0.065f; - user.position = { 0.f, 0.f, 4.f }; + user.position = sgct::vec3(0.f, 0.f, 4.f); cluster.users = { user }; return cluster; diff --git a/apps/OpenSpace/ext/launcher/src/sgctedit/windowcontrol.cpp b/apps/OpenSpace/ext/launcher/src/sgctedit/windowcontrol.cpp index 27c9cf99ff..b1bdd0b3ae 100644 --- a/apps/OpenSpace/ext/launcher/src/sgctedit/windowcontrol.cpp +++ b/apps/OpenSpace/ext/launcher/src/sgctedit/windowcontrol.cpp @@ -2,7 +2,7 @@ * * * OpenSpace * * * - * Copyright (c) 2014-2022 * + * Copyright (c) 2014-2023 * * * * 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 * @@ -52,10 +52,10 @@ namespace { }; constexpr std::array DefaultWindowSizes = { - QRectF{ 50.f, 50.f, 1280.f, 720.f }, - QRectF{ 150.f, 150.f, 1280.f, 720.f }, - QRectF{ 50.f, 50.f, 1280.f, 720.f }, - QRectF{ 150.f, 150.f, 1280.f, 720.f } + QRectF(50.f, 50.f, 1280.f, 720.f), + QRectF(150.f, 150.f, 1280.f, 720.f), + QRectF(50.f, 50.f, 1280.f, 720.f), + QRectF(150.f, 150.f, 1280.f, 720.f) }; constexpr int LineEditWidthFixedWindowSize = 50; @@ -707,17 +707,17 @@ sgct::config::Projections WindowControl::generateProjectionInformation() const { sgct::config::Window WindowControl::generateWindowInformation() const { sgct::config::Window window; - window.size = { _sizeX->text().toInt(), _sizeY->text().toInt() }; + window.size = sgct::ivec2(_sizeX->text().toInt(), _sizeY->text().toInt()); QRect resolution = _monitorResolutions[_monitor->currentIndex()]; - window.pos = { + window.pos = sgct::ivec2( resolution.x() + _offsetX->text().toInt(), resolution.y() + _offsetY->text().toInt() - }; + ); sgct::config::Viewport vp; vp.isTracked = true; - vp.position = { 0.f, 0.f }; - vp.size = { 1.f, 1.f }; + vp.position = sgct::vec2(0.f, 0.f); + vp.size = sgct::vec2(1.f, 1.f); vp.projection = generateProjectionInformation(); window.viewports.push_back(vp); diff --git a/apps/OpenSpace/ext/sgct b/apps/OpenSpace/ext/sgct index f48a48307f..4a555d7922 160000 --- a/apps/OpenSpace/ext/sgct +++ b/apps/OpenSpace/ext/sgct @@ -1 +1 @@ -Subproject commit f48a48307fa76c0ec9a9db0423ae417cf301f76f +Subproject commit 4a555d7922d161a0ada27e060e3741cfd6c336fa diff --git a/apps/OpenSpace/main.cpp b/apps/OpenSpace/main.cpp index 3ef64126fc..d012932ca5 100644 --- a/apps/OpenSpace/main.cpp +++ b/apps/OpenSpace/main.cpp @@ -2,7 +2,7 @@ * * * OpenSpace * * * - * Copyright (c) 2014-2022 * + * Copyright (c) 2014-2023 * * * * 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 * @@ -33,6 +33,7 @@ #include #include #include +#include #include #include #include @@ -912,7 +913,9 @@ void setSgctDelegateFunctions() { sgctDelegate.setHorizFieldOfView = [](float hFovDeg) { ZoneScoped - Engine::instance().windows().front()->setHorizFieldOfView(hFovDeg); + for (std::unique_ptr const& w : Engine::instance().windows()) { + w->setHorizFieldOfView(hFovDeg); + } }; #ifdef WIN32 sgctDelegate.getNativeWindowHandle = [](size_t windowIndex) -> void* { @@ -1106,7 +1109,7 @@ int main(int argc, char* argv[]) { "current working directory" )); - parser.addCommand(std::make_unique>( + parser.addCommand(std::make_unique>( commandlineArguments.configurationOverride, "--config", "-c", "Provides the ability to pass arbitrary Lua code to the application that will be " "evaluated after the configuration file has been loaded but before the other " @@ -1179,10 +1182,14 @@ int main(int argc, char* argv[]) { // Loading configuration from disk LDEBUG("Loading configuration from disk"); + std::string override; + for (const std::string& arg : commandlineArguments.configurationOverride) { + override += arg + ";"; + } *global::configuration = configuration::loadConfigurationFromFile( configurationFilePath.string(), size, - commandlineArguments.configurationOverride + override ); // Determining SGCT configuration file diff --git a/apps/Sync/CMakeLists.txt b/apps/Sync/CMakeLists.txt index 9aca731357..63800783e1 100644 --- a/apps/Sync/CMakeLists.txt +++ b/apps/Sync/CMakeLists.txt @@ -22,7 +22,7 @@ # OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. # ########################################################################################## -include(${OPENSPACE_CMAKE_EXT_DIR}/application_definition.cmake) +include(${PROJECT_SOURCE_DIR}/support/cmake/application_definition.cmake) set_source_files_properties( ${CMAKE_CURRENT_SOURCE_DIR}/openspace.icns @@ -47,7 +47,7 @@ if (OPENSPACE_MODULE_WEBBROWSER AND CEF_ROOT) set(CMAKE_BUILD_TYPE Debug CACHE STRING "CMAKE_BUILD_TYPE") if (WIN32) - set(RESOURCE_FILE ${OPENSPACE_APPS_DIR}/OpenSpace/openspace.rc) + set(RESOURCE_FILE openspace.rc) endif () # Add the CEF binary distribution's cmake/ directory to the module path and diff --git a/apps/Sync/main.cpp b/apps/Sync/main.cpp index 255c587ee0..2de95d3440 100644 --- a/apps/Sync/main.cpp +++ b/apps/Sync/main.cpp @@ -2,7 +2,7 @@ * * * OpenSpace * * * - * Copyright (c) 2014-2022 * + * Copyright (c) 2014-2023 * * * * 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 017ee293c7..d22fd966fa 100644 --- a/apps/TaskRunner/CMakeLists.txt +++ b/apps/TaskRunner/CMakeLists.txt @@ -22,7 +22,7 @@ # OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. # ########################################################################################## -include(${OPENSPACE_CMAKE_EXT_DIR}/application_definition.cmake) +include(${PROJECT_SOURCE_DIR}/support/cmake/application_definition.cmake) set_source_files_properties( ${CMAKE_CURRENT_SOURCE_DIR}/openspace.icns @@ -47,7 +47,7 @@ if (OPENSPACE_MODULE_WEBBROWSER AND CEF_ROOT) set(CMAKE_BUILD_TYPE Debug CACHE STRING "CMAKE_BUILD_TYPE") if (WIN32) - set(RESOURCE_FILE ${OPENSPACE_APPS_DIR}/OpenSpace/openspace.rc) + set(RESOURCE_FILE openspace.rc) endif () # Add the CEF binary distribution's cmake/ directory to the module path and diff --git a/apps/TaskRunner/main.cpp b/apps/TaskRunner/main.cpp index 663e27140d..bc4190f4f6 100644 --- a/apps/TaskRunner/main.cpp +++ b/apps/TaskRunner/main.cpp @@ -2,7 +2,7 @@ * * * OpenSpace * * * - * Copyright (c) 2014-2022 * + * Copyright (c) 2014-2023 * * * * 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/actions/planets/planet_lighting.asset b/data/assets/actions/planets/planet_lighting.asset index dc7f692ccc..509988774d 100644 --- a/data/assets/actions/planets/planet_lighting.asset +++ b/data/assets/actions/planets/planet_lighting.asset @@ -1,16 +1,16 @@ local function getIlluminationCommand(node, global) local commandString = "local node = \"" .. node .. "\"\n" - if (node == "Current Focus") then + if (node == "Current Focus") then commandString = "local node = openspace.navigation.getNavigationState().Anchor\n" end if (global) then commandString = commandString .. [[ -if (openspace.hasProperty("Scene."..node..".Renderable.UseAccurateNormals")) then +if (openspace.hasProperty("Scene."..node..".Renderable.UseAccurateNormals")) then local list = openspace.getProperty("Scene." .. node .. ".Renderable.Layers.NightLayers.*.Enabled") if (#list > 0) then openspace.setPropertyValue("Scene." .. node .. ".Renderable.Layers.NightLayers.*.Enabled", false) else - openspace.setPropertyValueSingle("Scene." .. node .. ".Renderable.PerformShading", false) + openspace.setPropertyValueSingle("Scene." .. node .. ".Renderable.PerformShading", false) end if openspace.hasSceneGraphNode(node .. "Atmosphere") then openspace.setPropertyValueSingle("Scene." .. node .. "Atmosphere.Renderable.SunFollowingCamera", true) diff --git a/data/assets/actions/trails/on_off_all_minor_moons.asset b/data/assets/actions/trails/on_off_all_minor_moons.asset new file mode 100644 index 0000000000..b9d74ac2aa --- /dev/null +++ b/data/assets/actions/trails/on_off_all_minor_moons.asset @@ -0,0 +1,70 @@ +local minormoons_on = { + Identifier = "os_default.minormoons_on", + Name = "Turn ON minor moons and trails", + Command = [[ + local trails = openspace.getProperty('{moonTrail_minor}.Renderable.Enabled'); + local trails_fade = openspace.getProperty('{moonTrail_minor}.Renderable.Fade'); + + local moons = openspace.getProperty('{moon_minor}.Renderable.Enabled'); + local moons_fade = openspace.getProperty('{moon_minor}.Renderable.Fade'); + + for i, v in pairs(trails_fade) do + openspace.setPropertyValueSingle(trails[i], true) + openspace.setPropertyValueSingle(v, 1, 2, 'Linear') + end + + for i, v in pairs(moons_fade) do + openspace.setPropertyValueSingle(moons[i], true) + openspace.setPropertyValueSingle(v, 1, 2, 'Linear') + end + ]], + Documentation = "Turn ON minor moons and their trails for all planets in the solar system", + GuiPath = "/Solar System/Minor Moons", + IsLocal = true +} + +local minormoons_off = { + Identifier = "os_default.minormoons_off", + Name = "Turn OFF minor moons and trails", + Command = [[ + local trails = openspace.getProperty('{moonTrail_minor}.Renderable.Enabled'); + local trails_fade = openspace.getProperty('{moonTrail_minor}.Renderable.Fade'); + + local moons = openspace.getProperty('{moon_minor}.Renderable.Enabled'); + local moons_fade = openspace.getProperty('{moon_minor}.Renderable.Fade'); + + for i, v in pairs(trails_fade) do + openspace.setPropertyValueSingle(v, 0, 2, 'Linear', "openspace.setPropertyValueSingle('" .. trails[i] .. "', false)" ) + end + + for i, v in pairs(moons_fade) do + openspace.setPropertyValueSingle(v, 0, 2, 'Linear', "openspace.setPropertyValueSingle('" .. moons[i] .. "', false)" ) + end + ]], + Documentation = "Turn OFF minor moons and their trails for all planets in the solar system", + GuiPath = "/Solar System/Minor Moons", + IsLocal = true +} + +asset.export("minormoons_on", minormoons_on.Identifier) +asset.export("minormoons_off", minormoons_off.Identifier) + +asset.onInitialize(function() + openspace.action.registerAction(minormoons_on) + openspace.action.registerAction(minormoons_off) +end) + +asset.onDeinitialize(function() + openspace.action.removeAction(minormoons_off) + openspace.action.removeAction(minormoons_on) +end) + + +asset.meta = { + Name = "Actions - Turn ON/OFF all Minor Moons", + Version = "1.0", + Description = "Asset providing actions to turn ON/OFF all minor moons and their trails", + Author = "OpenSpace Team", + URL = "http://openspaceproject.com", + License = "MIT license" +} diff --git a/data/assets/actions/trails/toggle_all_minor_moon_trails.asset b/data/assets/actions/trails/toggle_all_minor_moon_trails.asset new file mode 100644 index 0000000000..369f3365cf --- /dev/null +++ b/data/assets/actions/trails/toggle_all_minor_moon_trails.asset @@ -0,0 +1,32 @@ +local toggle_minormoon_trails = { + Identifier = "os_default.toggle_minormoon_trails", + Name = "Toggle Minor Moon Trails", + Command = [[ + local list = openspace.getProperty('{moonTrail_minor}.Renderable.Enabled'); + for _,v in pairs(list) do + openspace.setPropertyValueSingle(v, not openspace.getPropertyValue(v)) + end + ]], + Documentation = "Toggle on/off minor moon trails for all planets in the solar system", + GuiPath = "/Trails", + IsLocal = true +} +asset.export("toggle_minormoon_trails", toggle_minormoon_trails.Identifier) + +asset.onInitialize(function() + openspace.action.registerAction(toggle_minormoon_trails) +end) + +asset.onDeinitialize(function() + openspace.action.removeAction(toggle_minormoon_trails) +end) + + +asset.meta = { + Name = "Actions - Toggle Minor Moon Trails", + Version = "1.0", + Description = "Asset providing actions to toggle all minor moon trails on and off", + Author = "OpenSpace Team", + URL = "http://openspaceproject.com", + License = "MIT license" +} diff --git a/data/assets/actions/trails/toggle_all_trails.asset b/data/assets/actions/trails/toggle_all_trails.asset index 7ade2ff9e1..dbe39e362a 100644 --- a/data/assets/actions/trails/toggle_all_trails.asset +++ b/data/assets/actions/trails/toggle_all_trails.asset @@ -2,8 +2,14 @@ local fade_up_trails = { Identifier = "os.fade_up_trails", Name = "Show All Trails", Command = [[ - openspace.setPropertyValue("Scene.*Trail.Renderable.Fade", 1, 2); - openspace.setPropertyValue("Scene.*trail.Renderable.Fade", 1, 2); + local capList = openspace.getProperty("Scene.*Trail.Renderable.Fade"); + for _,v in ipairs(capList) do + openspace.setPropertyValueSingle(v, 1, 2); + end + local list = openspace.getProperty("Scene.*trail.Renderable.Fade"); + for _,v in ipairs(list) do + openspace.setPropertyValueSingle(v, 1, 2); + end ]], Documentation = "Fade up all enabled trails in the Scene", GuiPath = "/Trails", @@ -15,8 +21,14 @@ local fade_down_trails = { Identifier = "os.fade_down_trails", Name = "Hide All Trails", Command = [[ - openspace.setPropertyValue("Scene.*Trail.Renderable.Fade", 0, 2); - openspace.setPropertyValue("Scene.*trail.Renderable.Fade", 0, 2); + local capList = openspace.getProperty("Scene.*Trail.Renderable.Fade"); + for _,v in ipairs(capList) do + openspace.setPropertyValueSingle(v, 0, 2); + end + local list = openspace.getProperty("Scene.*trail.Renderable.Fade"); + for _,v in ipairs(list) do + openspace.setPropertyValueSingle(v, 0, 2); + end ]], Documentation = "Fade down all enabled trails in the Scene", GuiPath = "/Trails", diff --git a/data/assets/actions/trails/toggle_all_trails_planets_moons_instant.asset b/data/assets/actions/trails/toggle_all_trails_planets_moons_instant.asset index 4c657af07c..a9bbd70335 100644 --- a/data/assets/actions/trails/toggle_all_trails_planets_moons_instant.asset +++ b/data/assets/actions/trails/toggle_all_trails_planets_moons_instant.asset @@ -4,14 +4,14 @@ local 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 - + 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 = "/Solar System", IsLocal = false, -} +} asset.onInitialize(function() openspace.action.registerAction(toggle_trails) diff --git a/data/assets/actions/trails/toggle_trail.asset b/data/assets/actions/trails/toggle_trail.asset index 5f9f6c6c15..ab5db95231 100644 --- a/data/assets/actions/trails/toggle_trail.asset +++ b/data/assets/actions/trails/toggle_trail.asset @@ -56,7 +56,7 @@ local hide_trail = { else node = openspace.navigation.getNavigationState().Anchor end - + if openspace.hasSceneGraphNode(node .. "Trail") then openspace.setPropertyValueSingle("Scene." .. node .. "Trail.Renderable.Fade", 0.0, 1.0) elseif openspace.hasSceneGraphNode(node .. "_trail") then @@ -81,7 +81,7 @@ local show_trail = { else node = openspace.navigation.getNavigationState().Anchor end - + if openspace.hasSceneGraphNode(node .. "Trail") then openspace.setPropertyValueSingle("Scene." .. node .. "Trail.Renderable.Fade", 1.0, 1.0) elseif openspace.hasSceneGraphNode(node .. "_trail") then diff --git a/data/assets/base.asset b/data/assets/base.asset index b9d3164422..5d304ca709 100644 --- a/data/assets/base.asset +++ b/data/assets/base.asset @@ -4,10 +4,6 @@ asset.require("./base_blank") --- Modules and component settings -asset.require("modules/exoplanets/exoplanets") -asset.require("modules/skybrowser/skybrowser") - -- Specifying which other assets should be loaded in this scene asset.require("scene/solarsystem/sun/sun") asset.require("scene/solarsystem/sun/glare") @@ -67,7 +63,7 @@ local 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 - + local moonlist = openspace.getProperty("{moonTrail_solarSystem}.Renderable.Enabled"); for _,v in pairs(moonlist) do openspace.setPropertyValueSingle(v, not openspace.getPropertyValue(v)) end ]], diff --git a/data/assets/base_blank.asset b/data/assets/base_blank.asset index ddd8ebe9ed..00611bc658 100644 --- a/data/assets/base_blank.asset +++ b/data/assets/base_blank.asset @@ -1,7 +1,5 @@ -- This is a blank scene that that just sets up the default menus/dasboard/keys, etc. -local propertyHelper = asset.require("util/property_helper") - -- Specifying which other assets should be loaded in this scene asset.require("spice/base") @@ -18,6 +16,11 @@ asset.require("util/dpiscaling") -- Load the images required for the launcher to show up asset.require("util/launcher_images") +-- Modules and component settings +asset.require("modules/exoplanets/exoplanets") +asset.require("modules/skybrowser/skybrowser") + + asset.onInitialize(function () webGui.setCefRoute("onscreen") openspace.setDefaultGuiSorting() diff --git a/data/assets/customization/localbookmarks.csv b/data/assets/customization/localbookmarks.csv index 138adef2cf..d12976e610 100644 --- a/data/assets/customization/localbookmarks.csv +++ b/data/assets/customization/localbookmarks.csv @@ -1,2 +1,2 @@ Group (optional),Name (required),Globe (optional),Lat (required if globe),Lon (required if globe),Altitude (optional if globe),x (required if not globe),y (required if not globe),z (required if not globe),Scale (optional),LineWidth (optional) -NASA,Kenedy Space Center,Earth,28.6658276,-80.70282839,,,,,, +NASA,Kennedy Space Center,Earth,28.6658276,-80.70282839,,,,,, diff --git a/data/assets/educational/scale/eiffeltower.asset b/data/assets/educational/scale/eiffeltower.asset index 226a41b6d5..097da8f3b5 100644 --- a/data/assets/educational/scale/eiffeltower.asset +++ b/data/assets/educational/scale/eiffeltower.asset @@ -65,12 +65,36 @@ local updatePositionAction = { IsLocal = false } +local resetPositionAction = { + Identifier = "os.reset_eiffel_tower", + Name = "Reset Eiffel Tower position", + Command = [[ + -- same position as above + local lat = 48.85824 + local lon = 2.29448 + local globe = ']] .. earthAsset.Earth.Identifier .. [[' + openspace.setParent('eiffelTower', globe) + openspace.setPropertyValueSingle('Scene.eiffelTower.Translation.Globe', globe); + openspace.setPropertyValueSingle('Scene.eiffelTower.Translation.Latitude', lat); + openspace.setPropertyValueSingle('Scene.eiffelTower.Translation.Longitude', lon); + openspace.setPropertyValueSingle('Scene.eiffelTower.Rotation.Globe', globe); + openspace.setPropertyValueSingle('Scene.eiffelTower.Rotation.Latitude', lat); + openspace.setPropertyValueSingle('Scene.eiffelTower.Rotation.Longitude', lon); + ]], + Documentation = "Updates the Eiffel Tower position based on the globe location of the camera", + GuiPath = "/Scale Objects", + IsLocal = false +} + + asset.onInitialize(function() openspace.addSceneGraphNode(eiffelTower) openspace.action.registerAction(updatePositionAction) + openspace.action.registerAction(resetPositionAction) end) asset.onDeinitialize(function() + openspace.action.removeAction(resetPositionAction) openspace.action.removeAction(updatePositionAction) openspace.removeSceneGraphNode(eiffelTower) end) diff --git a/data/assets/examples/approachevents.asset b/data/assets/examples/approachevents.asset index ceac006790..821a40e6e3 100644 --- a/data/assets/examples/approachevents.asset +++ b/data/assets/examples/approachevents.asset @@ -43,7 +43,7 @@ local obj = { OnApproach = { "os.example.generic" }, OnReach = { "os.example.generic" }, OnRecede = { "os.example.generic" }, - OnExit = { "os.example.generic" }, + OnExit = { "os.example.generic" }, GUI = { Name = "Example Event Model", Path = "/Example", diff --git a/data/assets/examples/dashboarditems.asset b/data/assets/examples/dashboarditems.asset index ba5138ba6b..a5216dbb19 100644 --- a/data/assets/examples/dashboarditems.asset +++ b/data/assets/examples/dashboarditems.asset @@ -58,7 +58,12 @@ local elapsed_time = { ReferenceTime = "2022-10-12 12:00:00" } -asset.onInitialize(function() +local input_state = { + Type = "DashboardItemInputState", + Identifier = "InputState" +} + +asset.onInitialize(function() openspace.dashboard.addDashboardItem(angle) openspace.dashboard.addDashboardItem(date) openspace.dashboard.addDashboardItem(simulation_increment) @@ -68,9 +73,11 @@ asset.onInitialize(function() openspace.dashboard.addDashboardItem(mission) openspace.dashboard.addDashboardItem(property_value) openspace.dashboard.addDashboardItem(elapsed_time) + openspace.dashboard.addDashboardItem(input_state) end) asset.onDeinitialize(function() + openspace.dashboard.removeDashboardItem(input_state) openspace.dashboard.removeDashboardItem(elapsed_time) openspace.dashboard.removeDashboardItem(property_value) openspace.dashboard.removeDashboardItem(mission) diff --git a/data/assets/examples/grids.asset b/data/assets/examples/grids.asset index 6c32a1be5a..a3cdd4cd88 100644 --- a/data/assets/examples/grids.asset +++ b/data/assets/examples/grids.asset @@ -97,14 +97,14 @@ asset.onInitialize(function() 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) diff --git a/data/assets/examples/modelshader/model_fs.glsl b/data/assets/examples/modelshader/model_fs.glsl index dbe7871d9a..be9f2558fc 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-2022 * + * Copyright (c) 2014-2023 * * * * 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 * @@ -68,8 +68,8 @@ Fragment getFragment() { frag.color.rgb = normalize(vs_normalViewSpace); } frag.color.a = 1.0; - frag.gPosition = vs_positionCameraSpace; - frag.gNormal = vec4(vs_normalViewSpace, 0.0); + frag.gPosition = vs_positionCameraSpace; + frag.gNormal = vec4(vs_normalViewSpace, 0.0); frag.disableLDR2HDR = true; return frag; } diff --git a/data/assets/examples/modelshader/model_vs.glsl b/data/assets/examples/modelshader/model_vs.glsl index 21cc03ede2..8413d4f4c1 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-2022 * + * Copyright (c) 2014-2023 * * * * 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 * @@ -51,7 +51,7 @@ void main() { gl_Position = positionScreenSpace; vs_st = in_st; vs_screenSpaceDepth = positionScreenSpace.w; - + vs_normalViewSpace = normalize(mat3(normalTransform) * (mat3(meshNormalTransform) * in_normal)); // TBN matrix for normal mapping diff --git a/data/assets/examples/modelshader/modelshader.asset b/data/assets/examples/modelshader/modelshader.asset index 969d3521cb..9cab18baf0 100644 --- a/data/assets/examples/modelshader/modelshader.asset +++ b/data/assets/examples/modelshader/modelshader.asset @@ -39,9 +39,9 @@ local 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 61080e73b3..1fc7e208a0 100644 --- a/data/assets/examples/primitives.asset +++ b/data/assets/examples/primitives.asset @@ -48,11 +48,11 @@ 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 645eac919e..9624a51668 100644 --- a/data/assets/examples/renderableplaneimageonline.asset +++ b/data/assets/examples/renderableplaneimageonline.asset @@ -24,9 +24,9 @@ local RenderablePlaneImageOnline = { asset.onInitialize(function() openspace.addSceneGraphNode(RenderablePlaneImageOnline) end) - + asset.onDeinitialize(function() openspace.removeSceneGraphNode(RenderablePlaneImageOnline) end) - + asset.export(RenderablePlaneImageOnline) diff --git a/data/assets/examples/screenspacespout.asset b/data/assets/examples/screenspacespout.asset index f20f09b303..1c32c68fb6 100644 --- a/data/assets/examples/screenspacespout.asset +++ b/data/assets/examples/screenspacespout.asset @@ -23,9 +23,9 @@ local Spout = { 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 7765a9b8bd..299903646b 100644 --- a/data/assets/examples/slidedeck.asset +++ b/data/assets/examples/slidedeck.asset @@ -4,7 +4,7 @@ local deck = nil asset.onInitialize(function () deck = helper.createDeck("example", { UseRadiusAzimuthElevation = true, - RadiusAzimuthElevation = {1.0, 0.0, 0.0}, -- use for dome + RadiusAzimuthElevation = { 1.0, 0.0, 0.0 }, -- use for dome UsePerspectiveProjection = true, FaceCamera = true, Scale = 0.7 @@ -17,7 +17,7 @@ asset.onInitialize(function () -- Add global functions for controlling slide deck and bind to keys rawset(_G, "nextSlide", function() - helper.goToNextSlide(deck, interpolationDuration) + helper.goToNextSlide(deck, interpolationDuration) end) rawset(_G, "previousSlide", function() diff --git a/data/assets/examples/spheres.asset b/data/assets/examples/spheres.asset index 935bb7a82a..8c63ab7ed0 100644 --- a/data/assets/examples/spheres.asset +++ b/data/assets/examples/spheres.asset @@ -39,7 +39,7 @@ asset.onInitialize(function() openspace.addSceneGraphNode(n) end end) - + asset.onDeinitialize(function() for _, n in ipairs(spheres) do openspace.removeSceneGraphNode(n) diff --git a/data/assets/examples/statemachine.asset b/data/assets/examples/statemachine.asset index adb2740172..ce15cd46eb 100644 --- a/data/assets/examples/statemachine.asset +++ b/data/assets/examples/statemachine.asset @@ -1,11 +1,11 @@ -- Create a state machine with a few different states. The state machine can be controlled through -- the scripting commands from the state machine module. -local targetNode = function(nodeIdentifier) +local targetNode = function(nodeIdentifier) return [[ openspace.setPropertyValueSingle("NavigationHandler.OrbitalNavigator.RetargetAnchor", nil) openspace.setPropertyValueSingle( - "NavigationHandler.OrbitalNavigator.Anchor", + "NavigationHandler.OrbitalNavigator.Anchor", "]] .. nodeIdentifier .. [[" ) openspace.setPropertyValueSingle("NavigationHandler.OrbitalNavigator.Aim", "") diff --git a/data/assets/examples/temperature_land_highres.asset b/data/assets/examples/temperature_land_highres.asset index b3b67fff8d..dd5faa846f 100644 --- a/data/assets/examples/temperature_land_highres.asset +++ b/data/assets/examples/temperature_land_highres.asset @@ -40,7 +40,7 @@ local layer_folder = { Description = "Temporal coverage: 01 Jan 1981 - 31 Dec 2020" } -asset.onInitialize(function() +asset.onInitialize(function() openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer_prototype) openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer_folder) end) diff --git a/data/assets/examples/volume/generated/cartesian.asset b/data/assets/examples/volume/generated/cartesian.asset index 1b6fbb4b1b..34ef0cc2a1 100644 --- a/data/assets/examples/volume/generated/cartesian.asset +++ b/data/assets/examples/volume/generated/cartesian.asset @@ -9,36 +9,36 @@ 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("cartesian"), - 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, + Transform = { + Scale = { + Type = "StaticScale", + Scale = 1000 * sunRadius } + }, + Renderable = { + Type = "RenderableTimeVaryingVolume", + SourceDirectory = asset.localResource("cartesian"), + 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" + } } 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 3430cc9b9f..2316a91fc3 100644 --- a/data/assets/examples/volume/generated/cartesiansequence.asset +++ b/data/assets/examples/volume/generated/cartesiansequence.asset @@ -36,7 +36,7 @@ local volume = { asset.onInitialize(function() openspace.addSceneGraphNode(volume) end) - + asset.onDeinitialize(function() openspace.removeSceneGraphNode(volume) end) diff --git a/data/assets/examples/volume/generated/spherical.asset b/data/assets/examples/volume/generated/spherical.asset index e80d514272..1355cab920 100644 --- a/data/assets/examples/volume/generated/spherical.asset +++ b/data/assets/examples/volume/generated/spherical.asset @@ -11,6 +11,12 @@ local astronomicalUnit = 149597870700 local volume = { Identifier = "GeneratedVolume", Parent = transforms.SolarSystemBarycenter.Identifier, + Transform = { + Scale = { + Type = "StaticScale", + Scale = astronomicalUnit + } + }, Renderable = { Type = "RenderableTimeVaryingVolume", SourceDirectory = asset.localResource("spherical"), @@ -24,19 +30,13 @@ local volume = { }, GUI = { Path = "/Examples" - }, - Transform = { - Scale = { - Type = "StaticScale", - Scale = astronomicalUnit - } } } asset.onInitialize(function() openspace.addSceneGraphNode(volume) end) - + asset.onDeinitialize(function() openspace.removeSceneGraphNode(volume) end) diff --git a/data/assets/examples/volume/toyvolume.asset b/data/assets/examples/volume/toyvolume.asset index 3312e03844..d4f2c7a41a 100644 --- a/data/assets/examples/volume/toyvolume.asset +++ b/data/assets/examples/volume/toyvolume.asset @@ -20,9 +20,9 @@ local ToyVolume = { 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 3543a8cbb7..781614d7da 100644 --- a/data/assets/global/localbookmarks.asset +++ b/data/assets/global/localbookmarks.asset @@ -5,16 +5,18 @@ local nodes = bookmarkHelper.getBookmarks("Local Bookmarks", "${ASSETS}/customiz asset.onInitialize(function() for _, n in ipairs(nodes) do - openspace.addSceneGraphNode(n) + pcall(openspace.addSceneGraphNode, n) end end) - + asset.onDeinitialize(function() for _, n in ipairs(nodes) do - openspace.removeSceneGraphNode(n) + if openspace.hasSceneGraphNode(n.Identifier) then + openspace.removeSceneGraphNode(n) + end end end) - + for _, n in ipairs(nodes) do asset.export(n) end diff --git a/data/assets/modules/exoplanets/default_settings.asset b/data/assets/modules/exoplanets/default_settings.asset index 88a5c2f448..bece6270b6 100644 --- a/data/assets/modules/exoplanets/default_settings.asset +++ b/data/assets/modules/exoplanets/default_settings.asset @@ -1,4 +1,4 @@ -asset.onInitialize(function () +asset.onInitialize(function () openspace.setPropertyValueSingle("Modules.Exoplanets.Enabled", true) openspace.setPropertyValueSingle("Modules.Exoplanets.ShowComparisonCircle", false) openspace.setPropertyValueSingle("Modules.Exoplanets.ShowHabitableZone", true) diff --git a/data/assets/modules/exoplanets/exoplanets_data.asset b/data/assets/modules/exoplanets/exoplanets_data.asset index ecf3d4bd1f..686196593c 100644 --- a/data/assets/modules/exoplanets/exoplanets_data.asset +++ b/data/assets/modules/exoplanets/exoplanets_data.asset @@ -12,7 +12,7 @@ local colormaps = asset.syncedResource({ Version = 3 }) -asset.onInitialize(function () +asset.onInitialize(function () -- Set the default data files used for the exoplanet system creation -- (Check if already set, to not override value set in another file) local p = "Modules.Exoplanets.DataFolder"; @@ -31,9 +31,9 @@ asset.export("DataPath", DataPath) asset.meta = { Name = "Exoplanet Data", Version = "3.0", - Description = [[The data that is used for the exoplanet systems. The data has been - derived from the 'Planetary Systems Composite Data' dataset from the NASA Exoplanet - Archive]], + Description = [[The data that is used for the exoplanet systems. The data has been + derived from the 'Planetary Systems Composite Data' dataset from the NASA Exoplanet + Archive]], Author = "OpenSpace Team", URL = "https://exoplanetarchive.ipac.caltech.edu/docs/data.html", License = "MIT license" diff --git a/data/assets/modules/skybrowser/default_settings.asset b/data/assets/modules/skybrowser/default_settings.asset index cd17650430..c5ce08a4fd 100644 --- a/data/assets/modules/skybrowser/default_settings.asset +++ b/data/assets/modules/skybrowser/default_settings.asset @@ -1,4 +1,4 @@ -asset.onInitialize(function () +asset.onInitialize(function () openspace.setPropertyValueSingle("Modules.SkyBrowser.Enabled", true) openspace.setPropertyValueSingle("Modules.SkyBrowser.ShowTitleInGuiBrowser", false) -- More settings are available, but for now using the default values diff --git a/data/assets/modules/skybrowser/hoverCircle.asset b/data/assets/modules/skybrowser/hoverCircle.asset index 0618873b49..a9afe795a7 100644 --- a/data/assets/modules/skybrowser/hoverCircle.asset +++ b/data/assets/modules/skybrowser/hoverCircle.asset @@ -21,8 +21,8 @@ local circle = { }, GUI = { Name = "Hover Circle", - Description = [[A circular marker that shows the position on the night sky - of the object hovered in the sky browser UI. The circle will hide/show up + Description = [[A circular marker that shows the position on the night sky + of the object hovered in the sky browser UI. The circle will hide/show up dynamically, depending on the interaction with the items in the UI]], Path = "/SkyBrowser" } @@ -42,7 +42,7 @@ asset.export(circle) asset.meta = { Name = "SkyBrowser Hover Circle", Version = "1.0", - Description = [[Includes a circular marker that shows the position on the night sky + Description = [[Includes a circular marker that shows the position on the night sky of the object hovered in the sky browser UI]], Author = "OpenSpace Team", URL = "http://openspaceproject.com", diff --git a/data/assets/scene/digitaluniverse/2dF.asset b/data/assets/scene/digitaluniverse/2dF.asset index 5cf19a4096..e8b97fa514 100644 --- a/data/assets/scene/digitaluniverse/2dF.asset +++ b/data/assets/scene/digitaluniverse/2dF.asset @@ -53,11 +53,11 @@ local object = { asset.onInitialize(function() openspace.addSceneGraphNode(object) end) - + asset.onDeinitialize(function() openspace.removeSceneGraphNode(object) end) - + asset.export(object) diff --git a/data/assets/scene/digitaluniverse/2mass.asset b/data/assets/scene/digitaluniverse/2mass.asset index c03d84df55..8e589af253 100644 --- a/data/assets/scene/digitaluniverse/2mass.asset +++ b/data/assets/scene/digitaluniverse/2mass.asset @@ -48,11 +48,11 @@ local object = { asset.onInitialize(function() openspace.addSceneGraphNode(object) end) - + asset.onDeinitialize(function() openspace.removeSceneGraphNode(object) end) - + asset.export(object) diff --git a/data/assets/scene/digitaluniverse/6dF.asset b/data/assets/scene/digitaluniverse/6dF.asset index 8d6d0fb0a9..8af90893d8 100644 --- a/data/assets/scene/digitaluniverse/6dF.asset +++ b/data/assets/scene/digitaluniverse/6dF.asset @@ -50,11 +50,11 @@ local object = { asset.onInitialize(function() openspace.addSceneGraphNode(object) end) - + asset.onDeinitialize(function() openspace.removeSceneGraphNode(object) end) - + asset.export(object) diff --git a/data/assets/scene/digitaluniverse/abell.asset b/data/assets/scene/digitaluniverse/abell.asset index 649fbf182a..0c1796a1d2 100644 --- a/data/assets/scene/digitaluniverse/abell.asset +++ b/data/assets/scene/digitaluniverse/abell.asset @@ -63,11 +63,11 @@ local object = { asset.onInitialize(function() openspace.addSceneGraphNode(object) end) - + asset.onDeinitialize(function() openspace.removeSceneGraphNode(object) end) - + asset.export(object) diff --git a/data/assets/scene/digitaluniverse/backgroundradiation.asset b/data/assets/scene/digitaluniverse/backgroundradiation.asset index b088e2b642..4b6c8f00e2 100644 --- a/data/assets/scene/digitaluniverse/backgroundradiation.asset +++ b/data/assets/scene/digitaluniverse/backgroundradiation.asset @@ -125,14 +125,14 @@ asset.onInitialize(function() 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) diff --git a/data/assets/scene/digitaluniverse/backgroundradiation_multiverse.asset b/data/assets/scene/digitaluniverse/backgroundradiation_multiverse.asset index 2e377c4175..736a1e416e 100644 --- a/data/assets/scene/digitaluniverse/backgroundradiation_multiverse.asset +++ b/data/assets/scene/digitaluniverse/backgroundradiation_multiverse.asset @@ -132,14 +132,14 @@ asset.onInitialize(function() 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) diff --git a/data/assets/scene/digitaluniverse/deepsky.asset b/data/assets/scene/digitaluniverse/deepsky.asset index d9fd9cad1b..cf126c5829 100644 --- a/data/assets/scene/digitaluniverse/deepsky.asset +++ b/data/assets/scene/digitaluniverse/deepsky.asset @@ -81,7 +81,7 @@ local deepSkyImages = { Name = "Deep Sky Objects Images", Path = "/Universe/Galaxies", Description = [[Census: 63 images and labels. DU Version 1.3.
These data are - 2-D images of Messier objects placed in 3-D space. Not only do we place these + 2-D images of Messier objects placed in 3-D space. Not only do we place these images at the proper location and give them the correct orientation, we also size them accurately so that you can fly to the globular cluster M13, for example, and see just how small the cluster of hundreds of thousands of stars diff --git a/data/assets/scene/digitaluniverse/digitaluniverse.asset b/data/assets/scene/digitaluniverse/digitaluniverse.asset index 0506ccf4f5..98f534c4b1 100644 --- a/data/assets/scene/digitaluniverse/digitaluniverse.asset +++ b/data/assets/scene/digitaluniverse/digitaluniverse.asset @@ -39,7 +39,7 @@ 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 + 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", diff --git a/data/assets/scene/digitaluniverse/globularclusters.asset b/data/assets/scene/digitaluniverse/globularclusters.asset index a4476dc6da..de1c936e6a 100644 --- a/data/assets/scene/digitaluniverse/globularclusters.asset +++ b/data/assets/scene/digitaluniverse/globularclusters.asset @@ -46,7 +46,7 @@ local object = { abundance of stars brighter than the Sun. The globular clusters form one of the most complete data sets in the Atlas. Data for the clusters represent almost all the clusters in our Galaxy—several on the opposite side of Galactic - center may be invisible to us. The clusters orbit the Milky Way in random + center may be invisible to us. The clusters orbit the Milky Way in random orientations, as comets orbit the Sun.(Description from URL)

Data Reference: Properties of Galactic Globular Clusters, C. Francis+ (U Cambridge)]], @@ -69,16 +69,16 @@ asset.meta = { Name = "Globular Clusters", 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 - near their center are within a light year of one another). These clusters are - typically 30 to 100 light years in diameter. If Earth were located inside one of these - clusters, our sky would be lit by an abundance of stars brighter than the Sun. The - globular clusters form one of the most complete data sets in the Atlas. Data for the - clusters represent almost all the clusters in our Galaxy—several on the opposite side - of Galactic center may be invisible to us. The clusters orbit the Milky Way in random - orientations, as comets orbit the Sun.(Description from URL)

Data Reference: - Properties of Galactic Globular Clusters, C. Francis+ (U Cambridge)]], + 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 + near their center are within a light year of one another). These clusters are + typically 30 to 100 light years in diameter. If Earth were located inside one of these + clusters, our sky would be lit by an abundance of stars brighter than the Sun. The + globular clusters form one of the most complete data sets in the Atlas. Data for the + clusters represent almost all the clusters in our Galaxy—several on the opposite side + of Galactic center may be invisible to us. The clusters orbit the Milky Way in random + orientations, as comets orbit the Sun.(Description from URL)

Data Reference: + 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" diff --git a/data/assets/scene/digitaluniverse/grids.asset b/data/assets/scene/digitaluniverse/grids.asset index dccad41868..97ae62244f 100644 --- a/data/assets/scene/digitaluniverse/grids.asset +++ b/data/assets/scene/digitaluniverse/grids.asset @@ -17,9 +17,10 @@ local speck = asset.syncedResource({ Name = "Grids Speck Files", Type = "HttpSynchronization", Identifier = "digitaluniverse_grids_speck", - Version = 2 + Version = 3 }) +local lightHour = 1.0792528488E12 local lightDay = 2.59020684E13 local lightMonth = 7.771E14 local lightYear = 9.4605284E15 @@ -33,7 +34,7 @@ local radio = { -- First TV signals strong enough to leave the ionosphere ReferenceDate = "1936 AUG 01 12:00:00", Speed = 299792458 -- c - }, + }, Rotation = { Type = "StaticRotation", Rotation = equatorialRotationMatrix @@ -59,7 +60,7 @@ local oort = { Scale = { Type = "StaticScale", Scale = 7.47989845E15 - }, + }, Rotation = { Type = "StaticRotation", Rotation = eclipticRotationMatrix @@ -85,7 +86,7 @@ local ecliptic = { Scale = { Type = "StaticScale", Scale = 9.46377307652E17 - }, + }, Rotation = { Type = "StaticRotation", Rotation = eclipticRotationMatrix @@ -141,7 +142,7 @@ local equatorial = { Scale = { Type = "StaticScale", Scale = 4.28601E17; - }, + }, Rotation = { Type = "StaticRotation", Rotation = equatorialRotationMatrix @@ -236,6 +237,37 @@ local galacticLabels = { } } +local plane1lh = { + Identifier = "1lhGrid", + Parent = transforms.SolarSystemBarycenter.Name, + Transform = { + Rotation = { + Type = "StaticRotation", + Rotation = eclipticRotationMatrix + } + }, + Renderable = { + Type = "RenderableGrid", + Enabled = false, + Labels = { + File = speck .. "1lh.label", + Color = { 0.0, 0.2, 0.5 }, + Size = 9.5, + MinMaxSize = { 0, 30 }, + Unit = "Km" + }, + Opacity = 0.4, + Color = { 0.1, 0.5, 0.6 }, + LineWidth = 2.0, + Segments = { 20, 20 }, + Size = { 2*lightHour, 2*lightHour } + }, + GUI = { + Name = "1lh Grid", + Path = "/Other/Grids" + } +} + local plane1ld = { Identifier = "1ldGrid", Parent = transforms.SolarSystemBarycenter.Name, @@ -585,7 +617,7 @@ local plane20Gly = { local nodes = { radio, oort, ecliptic, eclipticLabels, equatorial, equatorialLabels, - galactic, galacticLabels, plane1ld, plane1lm, plane1ly, plane10ly, + galactic, galacticLabels, plane1lh, plane1ld, plane1lm, plane1ly, plane10ly, plane100ly, plane1kly, plane10kly, plane100kly, plane1Mly, plane10Mly, plane100Mly, plane20Gly } diff --git a/data/assets/scene/digitaluniverse/hdf.asset b/data/assets/scene/digitaluniverse/hdf.asset index 77b599a8ec..8c40bfb0e1 100644 --- a/data/assets/scene/digitaluniverse/hdf.asset +++ b/data/assets/scene/digitaluniverse/hdf.asset @@ -49,11 +49,11 @@ local object = { asset.onInitialize(function() openspace.addSceneGraphNode(object) end) - + asset.onDeinitialize(function() openspace.removeSceneGraphNode(object) end) - + asset.export(object) diff --git a/data/assets/scene/digitaluniverse/kepler.asset b/data/assets/scene/digitaluniverse/kepler.asset index 5c2309c985..7e6f9b56b7 100644 --- a/data/assets/scene/digitaluniverse/kepler.asset +++ b/data/assets/scene/digitaluniverse/kepler.asset @@ -47,11 +47,11 @@ local object = { asset.onInitialize(function() openspace.addSceneGraphNode(object) end) - + asset.onDeinitialize(function() openspace.removeSceneGraphNode(object) end) - + asset.export(object) diff --git a/data/assets/scene/digitaluniverse/milkyway.asset b/data/assets/scene/digitaluniverse/milkyway.asset index 4b35bf87a6..4f17197c00 100644 --- a/data/assets/scene/digitaluniverse/milkyway.asset +++ b/data/assets/scene/digitaluniverse/milkyway.asset @@ -31,7 +31,7 @@ local plane = { }, GUI = { Name = "Milky Way Galaxy Image", - Path = "/Universe/Galaxies", + Path = "/Milky Way", Description = [[Census: 1 image. DU Version 2.2.
The exterior view of the Milky Way is simply a two-dimensional image. The image is that of NGC 1232, a galaxy thought to resemble our Milky Way. The image has been properly sized @@ -46,11 +46,11 @@ local plane = { asset.onInitialize(function() openspace.addSceneGraphNode(plane) end) - + asset.onDeinitialize(function() openspace.removeSceneGraphNode(plane) end) - + asset.export(plane) diff --git a/data/assets/scene/digitaluniverse/milkyway_arm_labels.asset b/data/assets/scene/digitaluniverse/milkyway_arm_labels.asset index 36daaf41c4..5346301b1b 100644 --- a/data/assets/scene/digitaluniverse/milkyway_arm_labels.asset +++ b/data/assets/scene/digitaluniverse/milkyway_arm_labels.asset @@ -31,7 +31,7 @@ local plane = { }, GUI = { Name = "Milky Way Arms Labels", - Path = "/Universe/Galaxies", + Path = "/Milky Way", Description = [[Census: 1 image. DU Version: 1.2. This image contains labels for the Milky Way's spiral arms. We label them in this manner ("hard coding" the labels into an image rather than having native labels) so that they can retain @@ -43,11 +43,11 @@ local plane = { asset.onInitialize(function() openspace.addSceneGraphNode(plane) end) - + asset.onDeinitialize(function() openspace.removeSceneGraphNode(plane) end) - + asset.export(plane) diff --git a/data/assets/scene/digitaluniverse/milkyway_sphere.asset b/data/assets/scene/digitaluniverse/milkyway_sphere.asset index 5e900f12ab..2cde64e74a 100644 --- a/data/assets/scene/digitaluniverse/milkyway_sphere.asset +++ b/data/assets/scene/digitaluniverse/milkyway_sphere.asset @@ -38,11 +38,11 @@ local sphere = { asset.onInitialize(function() openspace.addSceneGraphNode(sphere) end) - + asset.onDeinitialize(function() openspace.removeSceneGraphNode(sphere) end) - + asset.export(sphere) diff --git a/data/assets/scene/digitaluniverse/openclusters.asset b/data/assets/scene/digitaluniverse/openclusters.asset index 06dfbf3219..e0a18922c0 100644 --- a/data/assets/scene/digitaluniverse/openclusters.asset +++ b/data/assets/scene/digitaluniverse/openclusters.asset @@ -37,21 +37,18 @@ local object = { GUI = { Name = "Open Star Clusters", Path = "/Milky Way", - Description = [[Census: 2,040 clusters. DU Version 5.7.
- An open star cluster is a loose assemblage of stars numbering from - hundreds to thousands that are bound by their mutual gravitation. - Astronomers know from their stellar spectra that stars in open clusters - are typically young. (With a star's spectrum, we can determine - the spectral type and the luminosity class, revealing the star's age.) - Because these are young stars, we expect to see them in the - star-forming regions of our Galaxy, namely in the spiral arms. For - this reason, open clusters exist, for the most part, in the plane of the - Galaxy, where we view the arms edge-on as that band of light in - the night sky. Because of this, open clusters were originally known - as Galactic clusters, but this term fell out of favor once astronomers - began to understand that the Galaxy includes objects beyond the - Milky Way's disk.

Data Reference: Optically - visible open clusters and Candidates (Dias+ 2002-2015)]] + Description = [[Census: 2,040 clusters. DU Version 5.7.
An open star cluster is a + loose assemblage of stars numbering from hundreds to thousands that are bound by + their mutual gravitation. Astronomers know from their stellar spectra that stars in + open clusters are typically young. (With a star's spectrum, we can determine the + spectral type and the luminosity class, revealing the star's age.) Because these are + young stars, we expect to see them in the star-forming regions of our Galaxy, namely + in the spiral arms. For this reason, open clusters exist, for the most part, in the + plane of the Galaxy, where we view the arms edge-on as that band of light in the + night sky. Because of this, open clusters were originally known as Galactic + clusters, but this term fell out of favor once astronomers began to understand that + the Galaxy includes objects beyond the Milky Way's disk.

Data Reference: + Optically visible open clusters and Candidates (Dias+ 2002-2015)]] } } diff --git a/data/assets/scene/digitaluniverse/quasars.asset b/data/assets/scene/digitaluniverse/quasars.asset index 6a9b575edf..529561df07 100644 --- a/data/assets/scene/digitaluniverse/quasars.asset +++ b/data/assets/scene/digitaluniverse/quasars.asset @@ -55,11 +55,11 @@ local object = { asset.onInitialize(function() openspace.addSceneGraphNode(object) end) - + asset.onDeinitialize(function() openspace.removeSceneGraphNode(object) end) - + asset.export(object) diff --git a/data/assets/scene/digitaluniverse/sdss.asset b/data/assets/scene/digitaluniverse/sdss.asset index 2f1af244ea..a6de370c5b 100644 --- a/data/assets/scene/digitaluniverse/sdss.asset +++ b/data/assets/scene/digitaluniverse/sdss.asset @@ -58,11 +58,11 @@ local object = { asset.onInitialize(function() openspace.addSceneGraphNode(object) end) - + asset.onDeinitialize(function() openspace.removeSceneGraphNode(object) end) - + asset.export(object) diff --git a/data/assets/scene/digitaluniverse/starorbits.asset b/data/assets/scene/digitaluniverse/starorbits.asset index 958499cd3c..d23aa45a40 100644 --- a/data/assets/scene/digitaluniverse/starorbits.asset +++ b/data/assets/scene/digitaluniverse/starorbits.asset @@ -172,7 +172,7 @@ asset.onInitialize(function() openspace.addSceneGraphNode(node) end end) - + asset.onDeinitialize(function() for i = #nodes, 1, -1 do local node = nodes[i] diff --git a/data/assets/scene/digitaluniverse/stars.asset b/data/assets/scene/digitaluniverse/stars.asset index 069e59b0ab..11a7df0414 100644 --- a/data/assets/scene/digitaluniverse/stars.asset +++ b/data/assets/scene/digitaluniverse/stars.asset @@ -100,12 +100,12 @@ 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) diff --git a/data/assets/scene/milkyway/gaia/apogee.asset b/data/assets/scene/milkyway/gaia/apogee.asset index abc8c1cb7f..bec4709de4 100644 --- a/data/assets/scene/milkyway/gaia/apogee.asset +++ b/data/assets/scene/milkyway/gaia/apogee.asset @@ -34,7 +34,7 @@ local gaia_abundance_apogee = { ColorRange = { { -0.8, 0.6 } }, -- ShapeTexture = textures .. "disc.png", ColorMap = colormaps .. "colorbv.cmap", - OtherDataColorMap = colormaps .. "RainbowGradient.cmap", + OtherDataColorMap = colormaps .. "rainbowgradient.cmap", StaticFilter = -9999, StaticFilterReplacement = 0.0, DataMapping = { @@ -58,11 +58,11 @@ local 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) 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 b83394f81e..357723674f 100644 --- a/data/assets/scene/milkyway/gaia/gaia_dr2_download_stars.asset +++ b/data/assets/scene/milkyway/gaia/gaia_dr2_download_stars.asset @@ -5,12 +5,16 @@ local gaia618Destination = asset.syncedResource({ Name = "Gaia DR2 618M Octree", Type = "HttpSynchronization", Identifier = "gaia_stars_618M_octree", - Version = 1 + Version = 1, + Unzip = { + UnzipFiles = true, + Destination = "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). +-- From these files new subsets can be created with the ConstructOctreeTask (gaia_octree.task). -- Total size of download is 151 GB. local gaiaFull = asset.syncedResource({ Name = "Gaia DR2 Full Raw", @@ -19,13 +23,6 @@ local gaiaFull = asset.syncedResource({ Version = 1 }) -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) - end -end) - asset.export("GaiaDR2_618M", gaia618DestinationExtracted) asset.export("GaiaFullDataset", gaiaFull) diff --git a/data/assets/scene/milkyway/gaia/gaiastars.asset b/data/assets/scene/milkyway/gaia/gaiastars.asset index 7ed47dc838..881b826934 100644 --- a/data/assets/scene/milkyway/gaia/gaiastars.asset +++ b/data/assets/scene/milkyway/gaia/gaiastars.asset @@ -65,11 +65,11 @@ local GaiaStars = { asset.onInitialize(function() openspace.addSceneGraphNode(GaiaStars) end) - + asset.onDeinitialize(function() openspace.removeSceneGraphNode(GaiaStars) end) - + asset.export(GaiaStars) diff --git a/data/assets/scene/milkyway/gaia/galah.asset b/data/assets/scene/milkyway/gaia/galah.asset index 8fa9fecdea..aa879fae3b 100644 --- a/data/assets/scene/milkyway/gaia/galah.asset +++ b/data/assets/scene/milkyway/gaia/galah.asset @@ -33,7 +33,7 @@ local gaia_abundance_galah = { ColorOption = "Other Data", OtherData = "FeH", ColorMap = colormaps .. "colorbv.cmap", - OtherDataColorMap = colormaps .. "RainbowGradient.cmap", + OtherDataColorMap = colormaps .. "rainbowgradient.cmap", ColorRange = { { -0.8, 0.6 } }, StaticFilter = -9999, StaticFilterReplacement = 0.0, @@ -58,11 +58,11 @@ local 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) diff --git a/data/assets/scene/milkyway/milkyway/eso.asset b/data/assets/scene/milkyway/milkyway/eso.asset index 0599938a3a..190fa46693 100644 --- a/data/assets/scene/milkyway/milkyway/eso.asset +++ b/data/assets/scene/milkyway/milkyway/eso.asset @@ -35,11 +35,11 @@ local object = { asset.onInitialize(function() openspace.addSceneGraphNode(object) end) - + asset.onDeinitialize(function() openspace.removeSceneGraphNode(object) end) - + asset.export(object) diff --git a/data/assets/scene/milkyway/milkyway/volume.asset b/data/assets/scene/milkyway/milkyway/volume.asset index 52a6602a30..a69f446b5e 100644 --- a/data/assets/scene/milkyway/milkyway/volume.asset +++ b/data/assets/scene/milkyway/milkyway/volume.asset @@ -53,11 +53,11 @@ local MilkyWayVolumeGalaxy = { asset.onInitialize(function() openspace.addSceneGraphNode(MilkyWayVolumeGalaxy) end) - + asset.onDeinitialize(function() openspace.removeSceneGraphNode(MilkyWayVolumeGalaxy) end) - + asset.export(MilkyWayVolumeGalaxy) diff --git a/data/assets/scene/milkyway/objects/orionnebula/cluster.asset b/data/assets/scene/milkyway/objects/orionnebula/cluster.asset index 7ffdd40758..e507f89499 100644 --- a/data/assets/scene/milkyway/objects/orionnebula/cluster.asset +++ b/data/assets/scene/milkyway/objects/orionnebula/cluster.asset @@ -53,11 +53,11 @@ local OrionClusterStars = { asset.onInitialize(function() openspace.addSceneGraphNode(OrionClusterStars) end) - + asset.onDeinitialize(function() openspace.removeSceneGraphNode(OrionClusterStars) end) - + asset.export(OrionClusterStars) diff --git a/data/assets/scene/milkyway/objects/orionnebula/nebula.asset b/data/assets/scene/milkyway/objects/orionnebula/nebula.asset index 43fe0fcec8..74f785af05 100644 --- a/data/assets/scene/milkyway/objects/orionnebula/nebula.asset +++ b/data/assets/scene/milkyway/objects/orionnebula/nebula.asset @@ -92,7 +92,7 @@ local OrionNebulaShocksModel = { Renderable = { Type = "RenderableModel", GeometryFile = sync .. "orishocks.obj", - Opacity = 1.0, + Opacity = 1.0, DisableFaceCulling = false, SpecularIntensity = 0.0, AmbientIntensity = 0.0, @@ -128,7 +128,7 @@ local OrionNebulaProplydsModel = { Renderable = { Type = "RenderableModel", GeometryFile = sync .. "proplyds.obj", - Opacity = 1.0, + Opacity = 1.0, DisableFaceCulling = false, SpecularIntensity = 0.0, AmbientIntensity = 0.0, @@ -158,14 +158,14 @@ asset.onInitialize(function() 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) diff --git a/data/assets/scene/milkyway/objects/orionnebula/transforms.asset b/data/assets/scene/milkyway/objects/orionnebula/transforms.asset index 1f6f25ad2d..2ed07ad0b6 100644 --- a/data/assets/scene/milkyway/objects/orionnebula/transforms.asset +++ b/data/assets/scene/milkyway/objects/orionnebula/transforms.asset @@ -26,11 +26,11 @@ local NebulaPosition = { asset.onInitialize(function() openspace.addSceneGraphNode(NebulaPosition) end) - + asset.onDeinitialize(function() openspace.removeSceneGraphNode(NebulaPosition) end) - + asset.export(NebulaPosition) diff --git a/data/assets/scene/milkyway/stars/denver.asset b/data/assets/scene/milkyway/stars/denver.asset index 68775657c9..614f190094 100644 --- a/data/assets/scene/milkyway/stars/denver.asset +++ b/data/assets/scene/milkyway/stars/denver.asset @@ -49,11 +49,11 @@ local object = { asset.onInitialize(function() openspace.addSceneGraphNode(object) end) - + asset.onDeinitialize(function() openspace.removeSceneGraphNode(object) end) - + asset.export(object) 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 91ea8d781c..bb1fcc84a0 100644 --- a/data/assets/scene/solarsystem/dwarf_planets/pluto/charon/charon.asset +++ b/data/assets/scene/solarsystem/dwarf_planets/pluto/charon/charon.asset @@ -50,14 +50,41 @@ local Charon = { } } +local CharonLabel = { + Identifier = "CharonLabel", + Parent = Charon.Identifier, + Renderable = { + Enabled = false, + Type = "RenderableLabel", + Text = "Charon", + FontSize = 70.0, + Size = 6.0, + MinMaxSize = { 1, 25 }, + OrientationOption = "Camera View Direction", + BlendMode = "Normal", + EnableFading = true, + FadeUnit = "Mm", + FadeDistances = { 250.0, 500.0 }, + FadeWidths = { 150.0, 250.0 } + }, + Tag = { "solarsystem_labels", "moon_labels", "major_moon_labels" }, + GUI = { + Name = "Charon Label", + Path = "/Solar System/Dwarf Planets/Pluto/Moons", + Description = "Label for Pluto's moon Charon" + } +} + asset.onInitialize(function() openspace.addSceneGraphNode(Charon) + openspace.addSceneGraphNode(CharonLabel) end) - + asset.onDeinitialize(function() + openspace.removeSceneGraphNode(CharonLabel) openspace.removeSceneGraphNode(Charon) end) - + asset.export(Charon) 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 909163cf61..9e1a0107f1 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 @@ -16,10 +16,10 @@ local CharonTrailBarycentric = { Period = 6.38723, Resolution = 1000 }, - Tag = { - "moonTrail_solarSystem", - "moonTrail_dwarf", - "moonTrail_pluto", + Tag = { + "moonTrail_solarSystem", + "moonTrail_dwarf", + "moonTrail_pluto", "moonTrail_minor" }, GUI = { @@ -31,11 +31,11 @@ local CharonTrailBarycentric = { asset.onInitialize(function() openspace.addSceneGraphNode(CharonTrailBarycentric) end) - + asset.onDeinitialize(function() openspace.removeSceneGraphNode(CharonTrailBarycentric) end) - + asset.export(CharonTrailBarycentric) 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 b0e1d68425..ee0400a9f6 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 @@ -7,7 +7,7 @@ local layer = { FilePath = "WMS:https://planetarymaps.usgs.gov/cgi-bin/mapserv?map=/maps/pluto/charon_simp_cyl.map&SERVICE=WMS&VERSION=1.1.1&REQUEST=GetMap&LAYERS=NEWHORIZONS_CHARON_MOSAIC&SRS=EPSG:4326&BBOX=-180,-90.0003,359.972,90", } -asset.onInitialize(function () +asset.onInitialize(function () openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer) end) 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 4f31344644..63ba1fc696 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 @@ -7,7 +7,7 @@ local layer = { FilePath = "WMS:https://planetarymaps.usgs.gov/cgi-bin/mapserv?map=/maps/pluto/pluto_simp_cyl.map&SERVICE=WMS&VERSION=1.1.1&REQUEST=GetMap&LAYERS=NEWHORIZONS_PLUTO_MOSAIC&SRS=EPSG:4326&BBOX=-180,-90,360,90", } -asset.onInitialize(function () +asset.onInitialize(function () openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer) end) @@ -31,7 +31,7 @@ asset.meta = { 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 + heights.The mosaic is available in Equirectangular projection at an equatorial pixel scale of 300 meters per pixel (m). (Description from URL)]], Author = "USGS", URL = "https://astrogeology.usgs.gov/search/map/Pluto/NewHorizons/" .. 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 8eb2810076..f78c88fe79 100644 --- a/data/assets/scene/solarsystem/dwarf_planets/pluto/minor/hydra.asset +++ b/data/assets/scene/solarsystem/dwarf_planets/pluto/minor/hydra.asset @@ -40,10 +40,10 @@ local HydraTrail = { Period = 38.20177, Resolution = 1000 }, - Tag = { - "moonTrail_solarSystem", - "moonTrail_dwarf", - "moonTrail_pluto", + Tag = { + "moonTrail_solarSystem", + "moonTrail_dwarf", + "moonTrail_pluto", "moonTrail_minor" }, GUI = { @@ -52,16 +52,43 @@ local HydraTrail = { } } +local HydraLabel = { + Identifier = "HydraLabel", + Parent = Hydra.Identifier, + Renderable = { + Enabled = false, + Type = "RenderableLabel", + Text = "Hydra", + FontSize = 70.0, + Size = 6.0, + MinMaxSize = { 1, 25 }, + OrientationOption = "Camera View Direction", + BlendMode = "Normal", + EnableFading = true, + FadeUnit = "Mm", + FadeDistances = { 250.0, 1000.0 }, + FadeWidths = { 150.0, 500.0 } + }, + Tag = { "solarsystem_labels", "moon_labels", "minor_moon_labels" }, + GUI = { + Name = "Cheron Label", + Path = "/Solar System/Dwarf Planets/Pluto/Moons", + Description = "Label for Pluto's moon Hydra" + } +} + asset.onInitialize(function() openspace.addSceneGraphNode(Hydra) openspace.addSceneGraphNode(HydraTrail) + openspace.addSceneGraphNode(HydraLabel) end) - + asset.onDeinitialize(function() + openspace.removeSceneGraphNode(HydraLabel) openspace.removeSceneGraphNode(HydraTrail) openspace.removeSceneGraphNode(Hydra) end) - + asset.export(Hydra) asset.export(HydraTrail) 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 f169d62ddb..b10d3575c3 100644 --- a/data/assets/scene/solarsystem/dwarf_planets/pluto/minor/kerberos.asset +++ b/data/assets/scene/solarsystem/dwarf_planets/pluto/minor/kerberos.asset @@ -39,10 +39,10 @@ local KerberosTrail = { Period = 32.16756, Resolution = 1000 }, - Tag = { - "moonTrail_solarSystem", - "moonTrail_dwarf", - "moonTrail_pluto", + Tag = { + "moonTrail_solarSystem", + "moonTrail_dwarf", + "moonTrail_pluto", "moonTrail_minor" }, GUI = { @@ -51,16 +51,43 @@ local KerberosTrail = { } } +local KerberosLabel = { + Identifier = "KerberosLabel", + Parent = Kerberos.Identifier, + Renderable = { + Enabled = false, + Type = "RenderableLabel", + Text = "Kerberos", + FontSize = 70.0, + Size = 6.0, + MinMaxSize = { 1, 25 }, + OrientationOption = "Camera View Direction", + BlendMode = "Normal", + EnableFading = true, + FadeUnit = "Mm", + FadeDistances = { 250.0, 1000.0 }, + FadeWidths = { 150.0, 500.0 } + }, + Tag = { "solarsystem_labels", "moon_labels", "minor_moon_labels" }, + GUI = { + Name = "Cheron Label", + Path = "/Solar System/Dwarf Planets/Pluto/Moons", + Description = "Label for Pluto's moon Kerberos" + } +} + asset.onInitialize(function() openspace.addSceneGraphNode(Kerberos) openspace.addSceneGraphNode(KerberosTrail) + openspace.addSceneGraphNode(KerberosLabel) end) - + asset.onDeinitialize(function() + openspace.removeSceneGraphNode(KerberosLabel) openspace.removeSceneGraphNode(KerberosTrail) openspace.removeSceneGraphNode(Kerberos) end) - + asset.export(Kerberos) asset.export(KerberosTrail) 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 474ea25bb8..928ae5b498 100644 --- a/data/assets/scene/solarsystem/dwarf_planets/pluto/minor/nix.asset +++ b/data/assets/scene/solarsystem/dwarf_planets/pluto/minor/nix.asset @@ -39,10 +39,10 @@ local NixTrail = { Period = 24.85463, Resolution = 1000 }, - Tag = { - "moonTrail_solarSystem", - "moonTrail_dwarf", - "moonTrail_pluto", + Tag = { + "moonTrail_solarSystem", + "moonTrail_dwarf", + "moonTrail_pluto", "moonTrail_minor" }, GUI = { @@ -51,16 +51,43 @@ local NixTrail = { } } +local NixLabel = { + Identifier = "NixLabel", + Parent = Nix.Identifier, + Renderable = { + Enabled = false, + Type = "RenderableLabel", + Text = "Nix", + FontSize = 70.0, + Size = 6.0, + MinMaxSize = { 1, 25 }, + OrientationOption = "Camera View Direction", + BlendMode = "Normal", + EnableFading = true, + FadeUnit = "Mm", + FadeDistances = { 250.0, 1000.0 }, + FadeWidths = { 150.0, 500.0 } + }, + Tag = { "solarsystem_labels", "moon_labels", "minor_moon_labels" }, + GUI = { + Name = "Cheron Label", + Path = "/Solar System/Dwarf Planets/Pluto/Moons", + Description = "Label for Pluto's moon Nix" + } +} + asset.onInitialize(function() openspace.addSceneGraphNode(Nix) openspace.addSceneGraphNode(NixTrail) + openspace.addSceneGraphNode(NixLabel) end) - + asset.onDeinitialize(function() + openspace.removeSceneGraphNode(NixLabel) openspace.removeSceneGraphNode(NixTrail) openspace.removeSceneGraphNode(Nix) end) - + asset.export(Nix) asset.export(NixTrail) 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 2f0e120c65..0e7f122c95 100644 --- a/data/assets/scene/solarsystem/dwarf_planets/pluto/minor/styx.asset +++ b/data/assets/scene/solarsystem/dwarf_planets/pluto/minor/styx.asset @@ -38,10 +38,10 @@ local StyxTrail = { Period = 20.16155, Resolution = 1000 }, - Tag = { - "moonTrail_solarSystem", - "moonTrail_dwarf", - "moonTrail_pluto", + Tag = { + "moonTrail_solarSystem", + "moonTrail_dwarf", + "moonTrail_pluto", "moonTrail_minor" }, GUI = { @@ -50,16 +50,43 @@ local StyxTrail = { } } +local StyxLabel = { + Identifier = "StyxLabel", + Parent = Styx.Identifier, + Renderable = { + Enabled = false, + Type = "RenderableLabel", + Text = "Styx", + FontSize = 70.0, + Size = 6.0, + MinMaxSize = { 1, 25 }, + OrientationOption = "Camera View Direction", + BlendMode = "Normal", + EnableFading = true, + FadeUnit = "Mm", + FadeDistances = { 250.0, 1000.0 }, + FadeWidths = { 150.0, 500.0 } + }, + Tag = { "solarsystem_labels", "moon_labels", "minor_moon_labels" }, + GUI = { + Name = "Cheron Label", + Path = "/Solar System/Dwarf Planets/Pluto/Moons", + Description = "Label for Pluto's moon Styx" + } +} + asset.onInitialize(function() openspace.addSceneGraphNode(Styx) openspace.addSceneGraphNode(StyxTrail) + openspace.addSceneGraphNode(StyxLabel) end) - + asset.onDeinitialize(function() + openspace.removeSceneGraphNode(StyxLabel) openspace.removeSceneGraphNode(StyxTrail) openspace.removeSceneGraphNode(Styx) end) - + asset.export(Styx) asset.export(StyxTrail) diff --git a/data/assets/scene/solarsystem/dwarf_planets/pluto/pluto.asset b/data/assets/scene/solarsystem/dwarf_planets/pluto/pluto.asset index 6489f9b3f9..f9a8c5e4eb 100644 --- a/data/assets/scene/solarsystem/dwarf_planets/pluto/pluto.asset +++ b/data/assets/scene/solarsystem/dwarf_planets/pluto/pluto.asset @@ -57,10 +57,14 @@ local PlutoLabel = { Type = "RenderableLabel", Text = "Pluto", FontSize = 70.0, - Size = 9.05, + Size = 9.10, MinMaxSize = { 1, 100 }, BlendMode = "Additive", - OrientationOption = "Camera View Direction" + OrientationOption = "Camera View Direction", + EnableFading = true, + FadeUnit = "au", + FadeDistances = { 2.0, 120.0 }, + FadeWidths = { 1.0, 150.0 } }, Tag = { "solarsystem_labels" }, GUI = { 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 0ac4ffef77..55df245498 100644 --- a/data/assets/scene/solarsystem/dwarf_planets/pluto/pluto_trail.asset +++ b/data/assets/scene/solarsystem/dwarf_planets/pluto/pluto_trail.asset @@ -27,11 +27,11 @@ local PlutoTrailBarycentric = { asset.onInitialize(function() openspace.addSceneGraphNode(PlutoTrailBarycentric) end) - + asset.onDeinitialize(function() openspace.removeSceneGraphNode(PlutoTrailBarycentric) end) - + asset.export(PlutoTrailBarycentric) 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 fecee05b0f..f029ae1b1a 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 @@ -36,11 +36,11 @@ local PlutoKeplerianTrail = { asset.onInitialize(function() openspace.addSceneGraphNode(PlutoKeplerianTrail) end) - + asset.onDeinitialize(function() openspace.removeSceneGraphNode(PlutoKeplerianTrail) end) - + asset.export(PlutoKeplerianTrail) diff --git a/data/assets/scene/solarsystem/heliosphere/2012/reset_loop_action.asset b/data/assets/scene/solarsystem/heliosphere/2012/reset_loop_action.asset index 8c2e4e3637..7a4b581928 100644 --- a/data/assets/scene/solarsystem/heliosphere/2012/reset_loop_action.asset +++ b/data/assets/scene/solarsystem/heliosphere/2012/reset_loop_action.asset @@ -1,18 +1,18 @@ local resetLoopAction = { - Documentation = "Reset button. Sets time to start of dataset. No loop", - GuiPath = "2012July", - Identifier = "2012july.reset_loop", - IsLocal = false, - Name = "Reset button", - Command = "openspace.time.setTime('2012-JUL-01 07:00:00.00');\nopenspace.time.setDeltaTime(1400);\nopenspace.scriptScheduler.clear();" + Documentation = "Reset button. Sets time to start of dataset. No loop", + GuiPath = "2012July", + Identifier = "2012july.reset_loop", + IsLocal = false, + Name = "Reset button", + Command = "openspace.time.setTime('2012-JUL-01 07:00:00.00');\nopenspace.time.setDeltaTime(1400);\nopenspace.scriptScheduler.clear();" } asset.export(resetLoopAction) asset.onInitialize(function () - openspace.action.registerAction(resetLoopAction) + openspace.action.registerAction(resetLoopAction) end) asset.onDeinitialize(function () - openspace.action.removeAction(resetLoopAction) + openspace.action.removeAction(resetLoopAction) end) diff --git a/data/assets/scene/solarsystem/heliosphere/2012/sun_earth_2012_fieldlines_batsrus.asset b/data/assets/scene/solarsystem/heliosphere/2012/sun_earth_2012_fieldlines_batsrus.asset index b472140ac4..d64a2cdacf 100644 --- a/data/assets/scene/solarsystem/heliosphere/2012/sun_earth_2012_fieldlines_batsrus.asset +++ b/data/assets/scene/solarsystem/heliosphere/2012/sun_earth_2012_fieldlines_batsrus.asset @@ -12,9 +12,16 @@ local fieldlineData = asset.syncedResource({ Name = "Fieldlines Data BATSRUS", Type = "HttpSynchronization", Identifier = "sun_earth_event_july_2012-batsrus", - Version = 1 + Version = 1, + UnzipFiles = true }) +local unzippedDataDestination = { + openClosed = fieldlineData .. "magnetic_fieldlines-open_closed", + velocityFlow = fieldlineData .. "velocity_flowlines-upstream", + asherStatic = fieldlineData .. "ashers_static_seeds" +} + local loop = { Documentation = "Sets time to start of data, sets higher delta time and loops back from start, when at end of data", GuiPath = "2012July", @@ -30,12 +37,6 @@ local batsrusCurrentColorTable = transferFunctions .. "batsrus_current2.txt" local batsrusVelocityColorTable = transferFunctions .. "batsrus_velocity.txt" local batsrusTopologyColorTable = transferFunctions .. "batsrus_topology.txt" -local unzippedDataDestination = { - openClosed = fieldlineData .. "magnetic_fieldlines-open_closed", - velocityFlow = fieldlineData .. "velocity_flowlines-upstream", - asherStatic = fieldlineData .. "ashers_static_seeds" -} - local colorRanges = { { 0, 100000000 }, { 0, 60 }, @@ -131,19 +132,6 @@ local BatsrusAsherStaticSeedsFlowLines = { asset.onInitialize(function () openspace.action.registerAction(loop) - if not openspace.directoryExists(unzippedDataDestination.openClosed) then - openspace.printInfo("Extracting " .. "Fieldlines from Batsrus model of 2012 event") - openspace.unzipFile(fieldlineData .. "magnetic_fieldlines-open_closed.zip", unzippedDataDestination.openClosed, true) - end - if not openspace.directoryExists(unzippedDataDestination.velocityFlow) then - openspace.printInfo("Extracting " .. "Fieldlines from Batsrus model of 2012 event") - openspace.unzipFile(fieldlineData .. "velocity_flowlines-upstream.zip", unzippedDataDestination.velocityFlow, true) - end - if not openspace.directoryExists(unzippedDataDestination.asherStatic) then - openspace.printInfo("Extracting " .. "Fieldlines from Batsrus model of 2012 event") - openspace.unzipFile(fieldlineData .. "ashers_static_seeds.zip", unzippedDataDestination.asherStatic, true) - end - openspace.addSceneGraphNode(BatsrusJ12OpenClosed) openspace.addSceneGraphNode(BatsrusJ12FlowLines) openspace.addSceneGraphNode(BatsrusAsherStaticSeedsFlowLines) diff --git a/data/assets/scene/solarsystem/heliosphere/2012/sun_earth_2012_fieldlines_enlil.asset b/data/assets/scene/solarsystem/heliosphere/2012/sun_earth_2012_fieldlines_enlil.asset index 65ffe33a0b..879251595a 100644 --- a/data/assets/scene/solarsystem/heliosphere/2012/sun_earth_2012_fieldlines_enlil.asset +++ b/data/assets/scene/solarsystem/heliosphere/2012/sun_earth_2012_fieldlines_enlil.asset @@ -8,11 +8,12 @@ local transferFunctions = asset.syncedResource({ Version = 1 }) -local fieldlineData = asset.syncedResource({ +local fieldlineData = asset.syncedResource({ Name = "Fieldlines Data ENLIL", Type = "HttpSynchronization", Identifier = "sun_earth_event_july_2012-enlil", - Version = 1 + Version = 1, + UnzipFiles = true }) local loop = { @@ -187,31 +188,6 @@ local ENLILStereoA = { asset.onInitialize(function () openspace.action.registerAction(loop) - if not openspace.directoryExists(unzippedDataDestination.EqPlane011AU1) then - openspace.printInfo("Extracting " .. "Fieldlines from ENLIL model of 2012 event") - openspace.unzipFile(fieldlineData .. "011AU_eq_plane_1.zip", unzippedDataDestination.EqPlane011AU1, true) - end - if not openspace.directoryExists(unzippedDataDestination.EqPlane011AU2) then - openspace.printInfo("Extracting " .. "Fieldlines from ENLIL model of 2012 event") - openspace.unzipFile(fieldlineData .. "011AU_eq_plane_2.zip", unzippedDataDestination.EqPlane011AU2, true) - end - if not openspace.directoryExists(unzippedDataDestination.Lat4011AU1) then - openspace.printInfo("Extracting " .. "Fieldlines from ENLIL model of 2012 event") - openspace.unzipFile(fieldlineData .. "011AU_lat4_1.zip", unzippedDataDestination.Lat4011AU1, true) - end - if not openspace.directoryExists(unzippedDataDestination.Lat4011AU2) then - openspace.printInfo("Extracting " .. "Fieldlines from ENLIL model of 2012 event") - openspace.unzipFile(fieldlineData .. "011AU_lat4_2.zip", unzippedDataDestination.Lat4011AU2, true) - end - if not openspace.directoryExists(unzippedDataDestination.Earth) then - openspace.printInfo("Extracting " .. "Fieldlines from ENLIL model of 2012 event") - openspace.unzipFile(fieldlineData .. "earth.zip", unzippedDataDestination.Earth, true) - end - if not openspace.directoryExists(unzippedDataDestination.StereoA) then - openspace.printInfo("Extracting " .. "Fieldlines from ENLIL model of 2012 event") - openspace.unzipFile(fieldlineData .. "stereoa.zip", unzippedDataDestination.StereoA, true) - end - openspace.addSceneGraphNode(ENLILSliceEqPlane11AU1) openspace.addSceneGraphNode(ENLILSliceEqPlane11AU2) openspace.addSceneGraphNode(ENLILSliceLat411AU1) diff --git a/data/assets/scene/solarsystem/heliosphere/2012/sun_earth_2012_fieldlines_pfss.asset b/data/assets/scene/solarsystem/heliosphere/2012/sun_earth_2012_fieldlines_pfss.asset index fd3305fc0d..3a7119b376 100644 --- a/data/assets/scene/solarsystem/heliosphere/2012/sun_earth_2012_fieldlines_pfss.asset +++ b/data/assets/scene/solarsystem/heliosphere/2012/sun_earth_2012_fieldlines_pfss.asset @@ -11,7 +11,8 @@ local fieldlineData = asset.syncedResource({ Name = "Fieldlines Data PFSS", Type = "HttpSynchronization", Identifier = "sun_earth_event_july_2012-pfss", - Version = 1 + Version = 1, + UnzipFiles = true }) local darkenSun = { @@ -64,11 +65,6 @@ local PFSS = { asset.onInitialize(function () openspace.action.registerAction(darkenSun) - if not openspace.directoryExists(PFSSPaths.SolarSoft) then - openspace.printInfo("Extracting " .. "Fieldlines from PFSS model of 2012 event") - openspace.unzipFile(fieldlineData .. "leilas_solar_soft.zip", PFSSPaths.SolarSoft, true) - end - openspace.addSceneGraphNode(PFSS) -- openspace.setPropertyValueSingle("Scene.FL_PFSS.Renderable.FlowEnabled", true) diff --git a/data/assets/scene/solarsystem/heliosphere/bastille_day/actions.asset b/data/assets/scene/solarsystem/heliosphere/bastille_day/actions.asset new file mode 100644 index 0000000000..cce8a03967 --- /dev/null +++ b/data/assets/scene/solarsystem/heliosphere/bastille_day/actions.asset @@ -0,0 +1,97 @@ +local bastilleday_setup_startofcme = { + Identifier = "os.events.bastilleday.setup.startofcme", + Name = "Reset to start of CME, no loop", + Command = [[ + openspace.time.setTime('2000-JUL-14 10:03:00.00'); + openspace.scriptScheduler.clear(); + ]], + Documentation = "Button to reset to the the start of the CME", + GuiPath = "/Bastille-Day 2000", + IsLocal = false +} + +local bastilleday_setup_shortloop = { + Identifier = "os.events.bastilleday.setup.shortloop", + Name = "Loop 10:03 - 10:16, at 2 min/second", + Command = [[ + local EndtimeShortLoop = "2000 JUL 14 10:16:00"; + local starttimescriptslowloop = "openspace.time.setTime('2000 JUL 14 10:03:00')"; + openspace.scriptScheduler.clear(); + openspace.time.setDeltaTime(120); + openspace.time.setTime('2000-JUL-14 10:03:00.00'); + openspace.scriptScheduler.loadScheduledScript(EndtimeShortLoop, starttimescriptslowloop); + ]], + Documentation = "New loop: Restarts time at 10:03 and stops at 10:16, sets delta time to 2 min/second (120 seconds/second)", + GuiPath = "/Bastille-Day 2000", + IsLocal = false +} + +local bastilleday_setup_standardloop = { + Identifier = "os.events.bastilleday.setup.standardloop", + Name = "Loop 10:03 - 11:00, at 4 min/second", + Command = [[ + local starttimescriptslowloop = "openspace.time.setTime('2000 JUL 14 10:03:00')"; + openspace.scriptScheduler.clear(); + openspace.time.setDeltaTime(240); + openspace.time.setTime('2000-JUL-14 10:03:00.00'); + openspace.scriptScheduler.loadScheduledScript('2000 JUL 14 11:00:00', starttimescriptslowloop); + ]], + Documentation = "New loop: Restarts time at 10:03 and stops at 11:00, delta time to 4 min/second (240 seconds/second)", + GuiPath = "/Bastille-Day 2000", + IsLocal = false +} + +local bastilleday_setup_fastloop = { + Identifier = "os.events.bastilleday.setup.fastloop", + Name = "Loop 10:03 - 11.48, at 15 min/second", + Command = [[ + local starttimescriptfastloop = "openspace.time.setTime('2000 JUL 14 10:03:00')"; + openspace.scriptScheduler.clear(); + openspace.time.setDeltaTime(900); + openspace.time.setTime('2000-JUL-14 10:03:00.00'); + openspace.scriptScheduler.loadScheduledScript('2000 JUL 14 11:48:00', starttimescriptfastloop); + ]], + Documentation = "Fast loop: Starts from 10:03 and sets delta time to 15 min/second (900 seconds/second)", + GuiPath = "/Bastille-Day 2000", + IsLocal = false +} + +local bastilleday_setup_longloop = { + Identifier = "os.events.bastilleday.setup.longloop", + Name = "Loop 09:30 - 13:00, at 4 min/second", + Command = [[ + local starttimescriptlongloop = "openspace.time.setTime('2000 JUL 14 09:30:00')"; + openspace.scriptScheduler.clear(); + openspace.time.setDeltaTime(240); + openspace.time.setTime('2000-JUL-14 09:30:00.00'); + openspace.scriptScheduler.loadScheduledScript('2000 JUL 14 13:00:00', starttimescriptlongloop); + ]], + Documentation = "Long loop: Restarts time at 09:30 and stops at 11:50, delta time to 4 min/second (240 seconds/second)", + GuiPath = "/Bastille-Day 2000", + IsLocal = false +} + +asset.onInitialize(function() + openspace.action.registerAction(bastilleday_setup_startofcme) + openspace.action.registerAction(bastilleday_setup_shortloop) + openspace.action.registerAction(bastilleday_setup_standardloop) + openspace.action.registerAction(bastilleday_setup_fastloop) + openspace.action.registerAction(bastilleday_setup_longloop) +end) + +asset.onDeinitialize(function() + openspace.action.removeAction(bastilleday_setup_longloop) + openspace.action.removeAction(bastilleday_setup_fastloop) + openspace.action.removeAction(bastilleday_setup_standardloop) + openspace.action.removeAction(bastilleday_setup_shortloop) + openspace.action.removeAction(bastilleday_setup_startofcme) +end) + +asset.meta = { + Name = "Bastille day actions", + Version = "1.0", + Description = "Asset with actions related to Bastille day", + Author = "CCMC, 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 c958d7ec8e..d65a1da26c 100644 --- a/data/assets/scene/solarsystem/heliosphere/bastille_day/density_volume.asset +++ b/data/assets/scene/solarsystem/heliosphere/bastille_day/density_volume.asset @@ -49,7 +49,7 @@ local densityVolume = { } local toggle_volume = { - Identifier = "density_volume.toggle_volume", + Identifier = "os.events.bastilleday.densityvolume.togglevolume", Name = "Toggle volume", Command = propertyHelper.invert("Scene.MAS-MHD-Density-bastille-day-2000.Renderable.Enabled"), Documentation = "Toggle volume rendering of CME", @@ -72,7 +72,7 @@ asset.export(densityVolume) asset.meta = { Name = "Predictive Science Inc. Volume Rendering Bastille Day", - Version = "1.0", + Version = "1.1", Description = "Volumetric rendering for the bastille day CME event", Author = "CCMC, OpenSpace team", URL = "https://dx.doi.org/10.3847/1538-4357/aab36d", diff --git a/data/assets/scene/solarsystem/heliosphere/bastille_day/fieldlines.asset b/data/assets/scene/solarsystem/heliosphere/bastille_day/fieldlines.asset index 7541ff97e7..cfae12d725 100644 --- a/data/assets/scene/solarsystem/heliosphere/bastille_day/fieldlines.asset +++ b/data/assets/scene/solarsystem/heliosphere/bastille_day/fieldlines.asset @@ -48,7 +48,7 @@ local fieldlines = { } local toggle_fieldlines = { - Identifier = "fieldlines.toggle_fieldlines", + Identifier = "os.events.bastilleday.fieldlines.togglefieldlines", Name = "Toggle Fieldlines", Command = propertyHelper.invert("Scene.MAS-MHD-Fieldlines-bastille-day-2000.Renderable.Enabled"), Documentation = "Toggle fieldline rendering of CME", @@ -70,7 +70,7 @@ asset.export(fieldlines) asset.meta = { Name = "Predictive Science Inc. Fieldlines Bastille Day", - Version = "1.0", + Version = "1.1", 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", diff --git a/data/assets/scene/solarsystem/heliosphere/bastille_day/fluxnodes.asset b/data/assets/scene/solarsystem/heliosphere/bastille_day/fluxnodes.asset index a679c7f529..b770439465 100644 --- a/data/assets/scene/solarsystem/heliosphere/bastille_day/fluxnodes.asset +++ b/data/assets/scene/solarsystem/heliosphere/bastille_day/fluxnodes.asset @@ -33,7 +33,7 @@ local fluxNodes = { } local toggle_fluxnodes = { - Identifier = "fluxnodes.toggle_fluxnodes", + Identifier = "os.events.bastilleday.fluxnodes.togglefluxnodes", Name = "Toggle flux nodes", Command = propertyHelper.invert("Scene.MAS-MHD-FluxNodes-bastille-day-2000.Renderable.Enabled"), Documentation = "Toggle flux node rendering of CME", @@ -56,7 +56,7 @@ asset.export(fluxNodes) asset.meta = { Name = "Predictive Science Inc. Flux nodes Bastille Day", - Version = "1.0", + Version = "1.1", 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", diff --git a/data/assets/scene/solarsystem/heliosphere/bastille_day/fluxnodescutplane.asset b/data/assets/scene/solarsystem/heliosphere/bastille_day/fluxnodescutplane.asset index b789e0eec8..62d6bdb192 100644 --- a/data/assets/scene/solarsystem/heliosphere/bastille_day/fluxnodescutplane.asset +++ b/data/assets/scene/solarsystem/heliosphere/bastille_day/fluxnodescutplane.asset @@ -70,7 +70,7 @@ local MeridialCutplane = { } local toggle_equatorial = { - Identifier = "fluxnodescutplane.toggle_equatorial", + Identifier = "os.events.bastilleday.fluxnodescutplane.toggleequatorial", Name = "Toggle equatorial cutplane", Command = propertyHelper.invert("Scene.EquatorialCutplane-bastille-day-2000.Renderable.Enabled"), Documentation = "Toggle equatorial cutplane of CME", @@ -78,7 +78,7 @@ local toggle_equatorial = { IsLocal = false } local toggle_meridial = { - Identifier = "fluxnodescutplane.toggle_meridial", + Identifier = "os.events.bastilleday.fluxnodescutplane.togglemeridial", Name = "Toggle meridial cutplane", Command = propertyHelper.invert("Scene.MeridialCutplane-bastille-day-2000.Renderable.Enabled"), Documentation = "Toggle meridial cutplane of CME", @@ -106,7 +106,7 @@ asset.export(MeridialCutplane) asset.meta = { Name = "Predictive Science Inc. Cutplanes Bastille Days", - Version = "1.0", + Version = "1.1", Description = "Cutplanes for the bastille day CME event", Author = "CCMC, Christian Adamsson, Emilie Ho", URL = "https://dx.doi.org/10.3847/1538-4357/aab36d", diff --git a/data/assets/scene/solarsystem/heliosphere/bastille_day/fluxnodeslegend.asset b/data/assets/scene/solarsystem/heliosphere/bastille_day/fluxnodeslegend.asset index edcdbc6c88..03fa7c43df 100644 --- a/data/assets/scene/solarsystem/heliosphere/bastille_day/fluxnodeslegend.asset +++ b/data/assets/scene/solarsystem/heliosphere/bastille_day/fluxnodeslegend.asset @@ -16,7 +16,7 @@ local legend = { } local show_legend = { - Identifier = "fluxnodelegend.show_legend", + Identifier = "os.events.bastilleday.fluxnodelegend.showlegend", Name = "Show the legend image", Command = [[ openspace.setPropertyValueSingle("ScreenSpace.LegendFluxNodes-bastille-day-2000.Opacity", 0.0); @@ -27,8 +27,9 @@ local show_legend = { GuiPath = "/Bastille-Day 2000", IsLocal = false } + local hide_legend = { - Identifier = "fluxnodelegend.hide_legend", + Identifier = "os.events.bastilleday.fluxnodelegend.hidelegend", Name = "Hides the legend image", Command = [[openspace.setPropertyValueSingle("ScreenSpace.LegendFluxNodes-bastille-day-2000.Opacity", 0.0, 2)]], Documentation = "Hides the legend image", @@ -52,7 +53,7 @@ end) asset.meta = { Name = "Predictive Science Inc. Flux nodes legend for Bastille Days", - Version = "1.0", + Version = "1.1", Description = [[Screen space renderable image legend of flux nodes for the bastille day CME event]], Author = "Christian Adamsson, Emilie Ho", diff --git a/data/assets/scene/solarsystem/heliosphere/bastille_day/lightindicator.asset b/data/assets/scene/solarsystem/heliosphere/bastille_day/lightindicator.asset index 2830ff1952..6e52139d91 100644 --- a/data/assets/scene/solarsystem/heliosphere/bastille_day/lightindicator.asset +++ b/data/assets/scene/solarsystem/heliosphere/bastille_day/lightindicator.asset @@ -32,11 +32,11 @@ local travelSpeedIndicator = { asset.onInitialize(function() openspace.addSceneGraphNode(travelSpeedIndicator) end) - + asset.onDeinitialize(function() openspace.removeSceneGraphNode(travelSpeedIndicator) end) - + asset.export(travelSpeedIndicator) 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 9b5ae913b4..20ee5a17a8 100644 --- a/data/assets/scene/solarsystem/heliosphere/bastille_day/magnetogram_textures.asset +++ b/data/assets/scene/solarsystem/heliosphere/bastille_day/magnetogram_textures.asset @@ -5,7 +5,7 @@ local magnetogramDirectory = asset.require("./magnetogram").TexturesPath; local magnetograms; local switch_color_layer = { - Identifier = "magnetogram_texture.switch_color_layer", + Identifier = "os.events.bastilleday.magnetogramtexture.switchcolorlayer", Name = "Next sun texture", Command = [[ local textureList = openspace.globebrowsing.getLayers("Sun", "ColorLayers"); @@ -59,7 +59,7 @@ end) asset.meta = { Name = "Bastille Day magnetogram textures", - Version = "1.0", + Version = "1.1", 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]], 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 e40eb40aa2..c99fc8b1b1 100644 --- a/data/assets/scene/solarsystem/interstellar/c-2019_q4_borisov.asset +++ b/data/assets/scene/solarsystem/interstellar/c-2019_q4_borisov.asset @@ -55,12 +55,12 @@ 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) diff --git a/data/assets/scene/solarsystem/interstellar/oumuamua.asset b/data/assets/scene/solarsystem/interstellar/oumuamua.asset index 93f5811802..2fdf3686ce 100644 --- a/data/assets/scene/solarsystem/interstellar/oumuamua.asset +++ b/data/assets/scene/solarsystem/interstellar/oumuamua.asset @@ -56,12 +56,12 @@ 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) diff --git a/data/assets/scene/solarsystem/missions/apollo/11/actions.asset b/data/assets/scene/solarsystem/missions/apollo/11/actions.asset new file mode 100644 index 0000000000..e8c5fd8ef9 --- /dev/null +++ b/data/assets/scene/solarsystem/missions/apollo/11/actions.asset @@ -0,0 +1,36 @@ +asset.require("../apollo_globebrowsing") + +local apollo11_setup_landingsite = { + Identifier = "os.missions.apollo11.setup.landingsite", + Name = "Setup Apollo 11 landing site", + Command = [[ + openspace.time.setTime('1969 JUL 20 20:17:40'); + openspace.setPropertyValueSingle('Scene.Moon.Renderable.Layers.HeightLayers.LRO_NAC_Apollo_11.Enabled', true); + openspace.setPropertyValueSingle('Scene.Moon.Renderable.Layers.ColorLayers.A11_M177481212_p_longlat.Enabled', true); + openspace.setPropertyValueSingle('Scene.Moon.Renderable.TargetLodScaleFactor', 20.11); + openspace.setPropertyValue('NavigationHandler.OrbitalNavigator.Anchor', 'Apollo11LemPosition'); + openspace.setPropertyValue('NavigationHandler.OrbitalNavigator.RetargetAnchor', nil); + openspace.setPropertyValueSingle('Scene.Apollo11MoonTrail.Renderable.Enabled', true); + openspace.setPropertyValueSingle('Scene.Apollo11LemTrail.Renderable.Enabled', true); + ]], + Documentation = "Setup for Apollo 11 landing site", + GuiPath = "/Missions/Apollo/11", + IsLocal = false + } + +asset.onInitialize(function() + openspace.action.registerAction(apollo11_setup_landingsite) +end) + +asset.onDeinitialize(function() + openspace.action.removeAction(apollo11_setup_landingsite) +end) + +asset.meta = { + Name = "Apollo 11 Actions", + Version = "1.0", + Description = "Asset with actions related to the Apollo 11 mission", + Author = "OpenSpace Team", + URL = "http://openspaceproject.com", + License = "MIT license" +} diff --git a/data/assets/scene/solarsystem/missions/apollo/11/apollo11.asset b/data/assets/scene/solarsystem/missions/apollo/11/apollo11.asset index f68e13b48b..f701e59aed 100644 --- a/data/assets/scene/solarsystem/missions/apollo/11/apollo11.asset +++ b/data/assets/scene/solarsystem/missions/apollo/11/apollo11.asset @@ -1,3 +1,7 @@ +asset.require("spice/base") +asset.require("../actions") +asset.require("./actions") + local sun = asset.require("scene/solarsystem/sun/sun") local moon_transforms = asset.require("scene/solarsystem/planets/earth/moon/moon") @@ -5,7 +9,6 @@ local descentKeyframes = asset.require("./lem_descent.asset") local descentRotationKeyframes = asset.require("./lem_descent_rotation.asset") local kernels = asset.require("./kernels").kernels -asset.require("spice/base") local models = asset.syncedResource({ Name = "Apollo Models", @@ -254,7 +257,7 @@ asset.onInitialize(function() openspace.addSceneGraphNode(node) end end) - + asset.onDeinitialize(function() for i = #nodes, 1, -1 do local node = nodes[i] diff --git a/data/assets/scene/solarsystem/missions/apollo/11/lem.asset b/data/assets/scene/solarsystem/missions/apollo/11/lem.asset index 9bd947fdaf..167fb9d49d 100644 --- a/data/assets/scene/solarsystem/missions/apollo/11/lem.asset +++ b/data/assets/scene/solarsystem/missions/apollo/11/lem.asset @@ -60,11 +60,11 @@ 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/15/apollo15.asset b/data/assets/scene/solarsystem/missions/apollo/15/apollo15.asset index 4623d140ce..3566107c78 100644 --- a/data/assets/scene/solarsystem/missions/apollo/15/apollo15.asset +++ b/data/assets/scene/solarsystem/missions/apollo/15/apollo15.asset @@ -1,6 +1,7 @@ local moon_transforms = asset.require("scene/solarsystem/planets/earth/moon/moon") local sun = asset.require("scene/solarsystem/sun/sun") asset.require("spice/base") +asset.require("../actions") local models = asset.syncedResource({ Name = "Apollo Models", @@ -84,11 +85,11 @@ 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 320adc553e..6a196db81e 100644 --- a/data/assets/scene/solarsystem/missions/apollo/15/kernels.asset +++ b/data/assets/scene/solarsystem/missions/apollo/15/kernels.asset @@ -32,7 +32,7 @@ local kernels = { -- folder .. "apollo15_panoramic.0001.ti", -- --tspk --- folder .. "de421.bsp", +-- folder .. "de421.bsp", -- folder .. "moon_pa_de421_1900-2050.bpc", -- --iak diff --git a/data/assets/scene/solarsystem/missions/apollo/17/actions.asset b/data/assets/scene/solarsystem/missions/apollo/17/actions.asset new file mode 100644 index 0000000000..40fcfc2ae9 --- /dev/null +++ b/data/assets/scene/solarsystem/missions/apollo/17/actions.asset @@ -0,0 +1,40 @@ +asset.require("../apollo_globebrowsing") + +local apollo17_setup_landingsite = { + Identifier = "os.missions.apollo17.setup.landingsite", + Name = "Setup for Apollo 17 landing site", + Command = [[ + openspace.time.setTime('1972 DEC 12 19:47:11'); + openspace.setPropertyValueSingle('Scene.Moon.Renderable.Layers.ColorLayers.A17_travmap.BlendMode', 0.000000); + openspace.setPropertyValueSingle('Scene.Moon.Renderable.Layers.ColorLayers.A17_travmap.Enabled', true); + openspace.setPropertyValueSingle('Scene.Moon.Renderable.Layers.HeightLayers.LRO_NAC_Apollo_17.Enabled', true); + openspace.setPropertyValueSingle('Scene.Moon.Renderable.Layers.ColorLayers.A17_LEM.Enabled', true); + openspace.setPropertyValueSingle('Scene.Moon.Renderable.Layers.ColorLayers.A17_LEM.BlendMode', 0.000000); + openspace.setPropertyValueSingle('Scene.Moon.Renderable.Layers.ColorLayers.A17_NAC_Alt_p.Enabled', true); + openspace.setPropertyValueSingle('Scene.Moon.Renderable.Layers.ColorLayers.A17_NAC_Alt_p.BlendMode', 0.000000); + openspace.setPropertyValueSingle('Scene.Moon.Renderable.TargetLodScaleFactor', 20.17); + openspace.setPropertyValue('NavigationHandler.OrbitalNavigator.Anchor', 'Apollo17LemModel'); + openspace.setPropertyValue('NavigationHandler.OrbitalNavigator.RetargetAnchor', nil); + openspace.setPropertyValueSingle('Scene.Moon.Renderable.Layers.ColorLayers.A17_station7.BlendMode', 0.000000); + ]], + Documentation = "Setup for Apollo 17 landing site", + GuiPath = "/Missions/Apollo/17", + IsLocal = false +} + +asset.onInitialize(function() + openspace.action.registerAction(apollo17_setup_landingsite) +end) + +asset.onDeinitialize(function() + openspace.action.removeAction(apollo17_setup_landingsite) +end) + +asset.meta = { + Name = "Apollo 17 Actions", + Version = "1.0", + Description = "Asset with actions related to the Apollo 11 mission", + Author = "OpenSpace Team", + URL = "http://openspaceproject.com", + License = "MIT license" +} diff --git a/data/assets/scene/solarsystem/missions/apollo/17/apollo17.asset b/data/assets/scene/solarsystem/missions/apollo/17/apollo17.asset new file mode 100644 index 0000000000..dc40e224af --- /dev/null +++ b/data/assets/scene/solarsystem/missions/apollo/17/apollo17.asset @@ -0,0 +1,3 @@ +asset.require("./lem") +asset.require("./actions") +asset.require("../actions") diff --git a/data/assets/scene/solarsystem/missions/apollo/17/bouldersstation2.asset b/data/assets/scene/solarsystem/missions/apollo/17/bouldersstation2.asset index ea4b2e8cb4..30f2ed29ec 100644 --- a/data/assets/scene/solarsystem/missions/apollo/17/bouldersstation2.asset +++ b/data/assets/scene/solarsystem/missions/apollo/17/bouldersstation2.asset @@ -166,7 +166,7 @@ asset.onInitialize(function() openspace.addSceneGraphNode(node) end end) - + asset.onDeinitialize(function() for i = #nodes, 1, -1 do local node = nodes[i] diff --git a/data/assets/scene/solarsystem/missions/apollo/17/bouldersstation6.asset b/data/assets/scene/solarsystem/missions/apollo/17/bouldersstation6.asset index 65683ec844..bfabdbbf01 100644 --- a/data/assets/scene/solarsystem/missions/apollo/17/bouldersstation6.asset +++ b/data/assets/scene/solarsystem/missions/apollo/17/bouldersstation6.asset @@ -166,7 +166,7 @@ asset.onInitialize(function() openspace.addSceneGraphNode(node) end end) - + asset.onDeinitialize(function() for i = #nodes, 1, -1 do local node = nodes[i] diff --git a/data/assets/scene/solarsystem/missions/apollo/17/bouldersstation7.asset b/data/assets/scene/solarsystem/missions/apollo/17/bouldersstation7.asset index f9016a794c..5ad8cd27dc 100644 --- a/data/assets/scene/solarsystem/missions/apollo/17/bouldersstation7.asset +++ b/data/assets/scene/solarsystem/missions/apollo/17/bouldersstation7.asset @@ -61,11 +61,11 @@ 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 ace02e3cfe..cf37b8df57 100644 --- a/data/assets/scene/solarsystem/missions/apollo/17/lem.asset +++ b/data/assets/scene/solarsystem/missions/apollo/17/lem.asset @@ -60,11 +60,11 @@ 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/actions.asset b/data/assets/scene/solarsystem/missions/apollo/8/actions.asset new file mode 100644 index 0000000000..cd66969245 --- /dev/null +++ b/data/assets/scene/solarsystem/missions/apollo/8/actions.asset @@ -0,0 +1,47 @@ +local apollo8_setup_earthrise = { + Identifier = "os.missions.apollo8.setup.earthrise", + Name = "Set Earthrise time", + Command = [[ + openspace.time.setPause(true); + openspace.time.setDeltaTime(1); + openspace.time.setTime('1968 DEC 24 16:37:31'); + openspace.navigation.setNavigationState({Anchor = 'Apollo8', Position = { 1.494592E1, 3.236777E1, -4.171296E1 }, ReferenceFrame = 'Root', Up = { 0.960608E0, -0.212013E0, 0.179675E0 }}); + openspace.setPropertyValue('*Trail.Renderable.Enabled', false); + ]], + Documentation = "Jump to right before the earthrise photo", + GuiPath = "/Missions/Apollo/8", + IsLocal = false +} + +local apollo8_setup_launch = { + Identifier = "os.missions.apollo8.setup.launch", + Name = "Set Apollo 8 launch time", + Command = [[ + openspace.time.setTime('1968-12-21T12:51:37.00'); + openspace.setPropertyValueSingle('Scene.Apollo8LaunchTrail.Renderable.Enabled', true); + ]], + Documentation = "Jump to time right before Apollo 8 liftoff, with its trail enabled", + GuiPath = "/Missions/Apollo/8", + IsLocal = false +} + + + +asset.onInitialize(function() + openspace.action.registerAction(apollo8_setup_earthrise) + openspace.action.registerAction(apollo8_setup_launch) +end) + +asset.onDeinitialize(function() + openspace.action.removeAction(apollo8_setup_launch) + openspace.action.removeAction(apollo8_setup_earthrise) +end) + +asset.meta = { + Name = "Apollo 8 Actions", + Version = "1.0", + Description = "Asset with actions related to the Apollo 8 mission", + Author = "OpenSpace Team", + URL = "http://openspaceproject.com", + License = "MIT license" +} diff --git a/data/assets/scene/solarsystem/missions/apollo/8/apollo8.asset b/data/assets/scene/solarsystem/missions/apollo/8/apollo8.asset index cf491145b7..6f1d47d3bf 100644 --- a/data/assets/scene/solarsystem/missions/apollo/8/apollo8.asset +++ b/data/assets/scene/solarsystem/missions/apollo/8/apollo8.asset @@ -1,3 +1,5 @@ asset.require("./model") asset.require("./launch_model") asset.require("./trails") +asset.require("./actions") +asset.require("../actions") 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 c66dfd8dc4..fee121656d 100644 --- a/data/assets/scene/solarsystem/missions/apollo/8/launch_model.asset +++ b/data/assets/scene/solarsystem/missions/apollo/8/launch_model.asset @@ -69,11 +69,11 @@ 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 c3ada29c00..c7d134b7bf 100644 --- a/data/assets/scene/solarsystem/missions/apollo/8/model.asset +++ b/data/assets/scene/solarsystem/missions/apollo/8/model.asset @@ -98,13 +98,13 @@ asset.onInitialize(function() 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 978267062d..6bc4398bef 100644 --- a/data/assets/scene/solarsystem/missions/apollo/8/trails.asset +++ b/data/assets/scene/solarsystem/missions/apollo/8/trails.asset @@ -82,13 +82,13 @@ asset.onInitialize(function() 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/actions.asset b/data/assets/scene/solarsystem/missions/apollo/actions.asset new file mode 100644 index 0000000000..21c458a0c7 --- /dev/null +++ b/data/assets/scene/solarsystem/missions/apollo/actions.asset @@ -0,0 +1,57 @@ +local toggle_moon_shading = { + Identifier = "os.missions.apollo.moon.toggleshading", + Name = "Toggle Moon shading", + Command = [[ + openspace.setPropertyValueSingle('Scene.Moon.Renderable.PerformShading', not openspace.getPropertyValue('Scene.Moon.Renderable.PerformShading')); + ]], + Documentation = "Toggles the shading of the Moon", + GuiPath = "/Missions/Apollo", + isLocal = false +} + +local focus_moon = { + Identifier = "os.missions.apollo.moon.focus", + Name = "Focus on Moon", + Command = [[ + openspace.setPropertyValueSingle('NavigationHandler.OrbitalNavigator.Aim', ''); + openspace.setPropertyValueSingle('NavigationHandler.OrbitalNavigator.Anchor', 'Moon'); + openspace.setPropertyValueSingle('NavigationHandler.OrbitalNavigator.RetargetAnchor', nil); + ]], + Documentation = "Set camera focus on the Moon", + GuiPath = "/Missions/Apollo", + isLocal = false +} + +local focus_earth = { + Identifier = "os.missions.apollo.earth.focus", + Name = "Focus on Earth", + Command = [[ + openspace.setPropertyValueSingle('NavigationHandler.OrbitalNavigator.Aim', ''); + openspace.setPropertyValueSingle('NavigationHandler.OrbitalNavigator.Anchor', 'Earth'); + openspace.setPropertyValueSingle('NavigationHandler.OrbitalNavigator.RetargetAnchor', nil); + ]], + Documentation = "Set camera focus on the Earth", + GuiPath = "/Missions/Apollo", + isLocal = false +} + +asset.onInitialize(function() + openspace.action.registerAction(toggle_moon_shading) + openspace.action.registerAction(focus_moon) + openspace.action.registerAction(focus_earth) +end) + +asset.onDeinitialize(function() + openspace.action.registerAction(focus_earth) + openspace.action.registerAction(focus_moon) + openspace.action.removeAction(toggle_moon_shading) +end) + +asset.meta = { + Name = "Actions - Apollo missions", + Version = "1.0", + Description = "Actions related to the Apollo missions", + Author = "OpenSpace Team", + URL = "http://openspaceproject.com", + License = "MIT license" +} diff --git a/data/assets/scene/solarsystem/missions/apollo/apollo_globebrowsing.asset b/data/assets/scene/solarsystem/missions/apollo/apollo_globebrowsing.asset index 93e7be48ca..682462e3b1 100644 --- a/data/assets/scene/solarsystem/missions/apollo/apollo_globebrowsing.asset +++ b/data/assets/scene/solarsystem/missions/apollo/apollo_globebrowsing.asset @@ -28,9 +28,45 @@ local stations = asset.syncedResource({ Version = 1 }) + +local apollo_moon_togglekaguyalayer = { + Identifier = "os.missions.apollo.moon.togglekaguyalayer", + Name = "Toggle Kaguya layer", + Command = [[ + openspace.setPropertyValueSingle('Scene.Moon.Renderable.Layers.ColorLayers.Kaguya_Utah.Enabled', not openspace.getPropertyValue('Scene.Moon.Renderable.Layers.ColorLayers.Kaguya_Utah.Enabled')); + ]], + Documentation = "Toggles Moon Kaguya color layer", + GuiPath = "/Missions/Apollo", + IsLocal = false +} + +local apollo_moon_disableapollosites= { + Identifier = "os.missions.apollo.moon.disableapollosites", + Name = "Disable Apollo sites", + Command = [[ + openspace.setPropertyValue('Scene.Moon.Renderable.Layers.ColorLayers.A17_*.Enabled', false); + openspace.setPropertyValueSingle('Scene.Moon.Renderable.Layers.HeightLayers.LRO_NAC_Apollo_11.Enabled', false); + openspace.setPropertyValueSingle('Scene.Moon.Renderable.Layers.ColorLayers.A11_M177481212_p_longlat.Enabled', false); + openspace.setPropertyValueSingle('Scene.Apollo11MoonTrail.Renderable.Enabled', false); + openspace.setPropertyValueSingle('Scene.Apollo11LemTrail.Renderable.Enabled', false); + openspace.setPropertyValueSingle('Scene.Moon.Renderable.Layers.HeightLayers.LRO_NAC_Apollo_17.Enabled', false); + ]], + Documentation = "Disable apollo site on moon when leaving", + GuiPath = "/Missions/Apollo", + IsLocal = false +} + asset.onInitialize(function () openspace.globebrowsing.addBlendingLayersFromDirectory(heightmaps, moon_transforms.Moon.Identifier) openspace.globebrowsing.addBlendingLayersFromDirectory(basemaps, moon_transforms.Moon.Identifier) openspace.globebrowsing.addBlendingLayersFromDirectory(naclighting, moon_transforms.Moon.Identifier) openspace.globebrowsing.addBlendingLayersFromDirectory(stations, moon_transforms.Moon.Identifier) + + openspace.action.registerAction(apollo_moon_togglekaguyalayer) + openspace.action.registerAction(apollo_moon_disableapollosites) +end) + +asset.onDeinitialize(function () + openspace.action.removeAction(apollo_moon_disableapollosites) + openspace.action.removeAction(apollo_moon_togglekaguyalayer) end) diff --git a/data/assets/scene/solarsystem/missions/apollo/insignias_map.asset b/data/assets/scene/solarsystem/missions/apollo/insignias_map.asset index d8bba76038..291eb01e04 100644 --- a/data/assets/scene/solarsystem/missions/apollo/insignias_map.asset +++ b/data/assets/scene/solarsystem/missions/apollo/insignias_map.asset @@ -101,7 +101,7 @@ local hide_apollo_labels = { IsLocal = true } -asset.onInitialize(function () +asset.onInitialize(function () openspace.action.registerAction(show_apollo_labels) openspace.action.registerAction(hide_apollo_labels) for _, node in ipairs(nodes) do diff --git a/data/assets/scene/solarsystem/missions/dawn/vesta.asset b/data/assets/scene/solarsystem/missions/dawn/vesta.asset index 07cbe93e79..57a1d68144 100644 --- a/data/assets/scene/solarsystem/missions/dawn/vesta.asset +++ b/data/assets/scene/solarsystem/missions/dawn/vesta.asset @@ -70,7 +70,7 @@ local Vesta = { Spice = { "DAWN_FC2" } } }, - Target = { + Target = { Read = { "TARGET_NAME", "INSTRUMENT_HOST_NAME", diff --git a/data/assets/scene/solarsystem/missions/gaia/gaia.asset b/data/assets/scene/solarsystem/missions/gaia/gaia.asset index b9965f122c..9d3e1fd8bb 100644 --- a/data/assets/scene/solarsystem/missions/gaia/gaia.asset +++ b/data/assets/scene/solarsystem/missions/gaia/gaia.asset @@ -26,7 +26,7 @@ local Gaia = { Scale = 10.0 } }, - -- X Orthogonal + -- X Orthogonal Renderable = { Type = "RenderableModel", Body = "GAIA", @@ -49,9 +49,9 @@ local 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 e70473e731..65ed0592eb 100644 --- a/data/assets/scene/solarsystem/missions/gaia/trail.asset +++ b/data/assets/scene/solarsystem/missions/gaia/trail.asset @@ -66,12 +66,12 @@ 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 410ac239dc..a6a3676053 100644 --- a/data/assets/scene/solarsystem/missions/gaia/transforms.asset +++ b/data/assets/scene/solarsystem/missions/gaia/transforms.asset @@ -34,11 +34,11 @@ local 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/actions.asset b/data/assets/scene/solarsystem/missions/insight/actions.asset new file mode 100644 index 0000000000..e54890e4c5 --- /dev/null +++ b/data/assets/scene/solarsystem/missions/insight/actions.asset @@ -0,0 +1,50 @@ +local setup_insight = { + Identifier = "os.missions.insight.setup", + Name = "Setup scene for insight EDL", + Command = [[ + openspace.setPropertyValueSingle('Scene.Mars.Renderable.Layers.HeightLayers.Mola_Utah.Settings.Offset', -469.300000); + openspace.setPropertyValueSingle('Scene.Mars.Renderable.Layers.HeightLayers.HiRISE-LS-DEM.Settings.Offset', -470.850006); + openspace.setPropertyValueSingle('Scene.Mars.Renderable.Layers.HeightLayers.MDEM200M.Settings.Offset', -470.000000); + openspace.setPropertyValueSingle('Scene.Mars.Renderable.Layers.HeightLayers.HiRISE-LS-DEM.Enabled', true); + openspace.setPropertyValueSingle('Scene.Mars.Renderable.Layers.ColorLayers.HiRISE-LS.Enabled', true); + openspace.time.setPause(true); + openspace.time.setTime('2018 NOV 26 19:39:01.68'); + openspace.navigation.setNavigationState({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}); + ]], + Documentation = "Set and goto Insight Landing", + GuiPath = "/Missions/Insight", + isLocal = false +} + +local setup_disablelayers = { + Identifier = "os.missions.insight.setup.disablelayers", + Name = "Disable insight EDL layers", + Command = [[ + openspace.setPropertyValueSingle('Scene.Mars.Renderable.Layers.HeightLayers.Mola_Utah.Settings.Offset', 0); + openspace.setPropertyValueSingle('Scene.Mars.Renderable.Layers.HeightLayers.HiRISE-LS-DEM.Settings.Offset', 0); + openspace.setPropertyValueSingle('Scene.Mars.Renderable.Layers.HeightLayers.HiRISE-LS-DEM.Enabled', false); + openspace.setPropertyValueSingle('Scene.Mars.Renderable.Layers.ColorLayers.HiRISE-LS.Enabled', false); + ]], + Documentation = "Disable Mars layer settings used for insight EDL", + GuiPath = "/Missions/Insight", + isLocal = false +} + +asset.onInitialize(function() + openspace.action.registerAction(setup_insight) + openspace.action.registerAction(setup_disablelayers) +end) + +asset.onDeinitialize(function() + openspace.action.removeAction(setup_disablelayers) + openspace.action.removeAction(setup_insight) +end) + +asset.meta = { + Name = "Insight Actions", + Version = "1.0", + Description = "Actions related to the Insight mission", + Author = "OpenSpace Team", + URL = "http://openspaceproject.com", + License = "MIT license" +} diff --git a/data/assets/scene/solarsystem/missions/insight/edl.asset b/data/assets/scene/solarsystem/missions/insight/edl.asset index 4171b87b3c..1997be29fe 100644 --- a/data/assets/scene/solarsystem/missions/insight/edl.asset +++ b/data/assets/scene/solarsystem/missions/insight/edl.asset @@ -1,6 +1,8 @@ asset.require("spice/base") +asset.require("./actions") local sun = asset.require("scene/solarsystem/sun/sun") local mars = asset.require("scene/solarsystem/planets/mars/mars") +asset.require("scene/solarsystem/planets/mars/default_layers") local models = asset.syncedResource({ Name = "Insight Models Chutes", @@ -810,7 +812,7 @@ asset.onInitialize(function() openspace.addSceneGraphNode(node) end end) - + asset.onDeinitialize(function() for i = #nodes, 1, -1 do openspace.removeSceneGraphNode(nodes[i]) diff --git a/data/assets/scene/solarsystem/missions/juice/fov/swi.asset b/data/assets/scene/solarsystem/missions/juice/fov/swi.asset index 9780c9c6c8..00e3c6a4dc 100644 --- a/data/assets/scene/solarsystem/missions/juice/fov/swi.asset +++ b/data/assets/scene/solarsystem/missions/juice/fov/swi.asset @@ -83,7 +83,7 @@ local SwiFullGCO500 = { -- These translations are eyeballed based on the existing model Position = { 0.465, -0.1, 0.95 } } - }, + }, Renderable = { Type = "RenderableFov", Body = "JUICE", diff --git a/data/assets/scene/solarsystem/missions/juice/model.asset b/data/assets/scene/solarsystem/missions/juice/model.asset index 7e7bdd62bc..67cacd628e 100644 --- a/data/assets/scene/solarsystem/missions/juice/model.asset +++ b/data/assets/scene/solarsystem/missions/juice/model.asset @@ -67,7 +67,7 @@ asset.meta = { Version = "1.0", Description = [[ The model of the JUICE spacecraft. The model file was taken from - https://www.cosmos.esa.int/web/esac-cmso/scifleet. + https://www.cosmos.esa.int/web/esac-cmso/scifleet. ]], Author = "OpenSpace Team", URL = "http://openspaceproject.com", diff --git a/data/assets/scene/solarsystem/missions/juno/juno.asset b/data/assets/scene/solarsystem/missions/juno/juno.asset index e20ef42013..97798dfbb2 100644 --- a/data/assets/scene/solarsystem/missions/juno/juno.asset +++ b/data/assets/scene/solarsystem/missions/juno/juno.asset @@ -196,11 +196,11 @@ 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/actions.asset b/data/assets/scene/solarsystem/missions/jwst/actions.asset new file mode 100644 index 0000000000..e7b967a07e --- /dev/null +++ b/data/assets/scene/solarsystem/missions/jwst/actions.asset @@ -0,0 +1,157 @@ +local toggle_lagrangian_points = { + Identifier = "os.missions.jwst.togglelagrangianpoints", + Name = "Toggle Lagrangian points", + Command = [[ + local list = openspace.getProperty('{lagrange_points_earth}.Renderable.Enabled'); + for _,v in pairs(list) do + openspace.setPropertyValueSingle(v, not openspace.getPropertyValue(v)) + end + ]], + Documentation = "Toggle points and labels for the Lagrangian points for Earth Sun system", + GuiPath = "/JWST", + isLocal = false +} + +local toggle_hudf = { + Identifier = "os.missions.jwst.togglehudf", + Name = "Toggle Hubble Ultra Deep Field", + Command = [[ + local list = openspace.getProperty('{mission_jwst_hudf}.*.Enabled'); + for _,v in pairs(list) do + openspace.setPropertyValueSingle(v, not openspace.getPropertyValue(v)) + end + ]], + Documentation = "Toggle Hubble Ultra Deep Field image and line towards its coordinate", + GuiPath = "/JWST", + isLocal = false +} + +local toggle_l2 = { + Identifier = "os.missions.jwst.togglel2", + Name = "Toggle L2 line and small L2 label", + Command = [[ + local list = openspace.getProperty('{lagrange_points_earth_l2_small}.*.Enabled'); + for _,v in pairs(list) do + openspace.setPropertyValueSingle(v, not openspace.getPropertyValue(v)) + end + ]], + Documentation = "Toggle L2 label, point and line", + GuiPath = "/JWST", + isLocal = false +} + +local toggle_fov = { + Identifier = "os.missions.jwst.togglefov", + Name = "Toggle JWST field of view and view band", + Command = [[ + local list = openspace.getProperty('{mission_jwst_fov}.*.Enabled'); + for _,v in pairs(list) do + openspace.setPropertyValueSingle(v, not openspace.getPropertyValue(v)) + end + ]], + Documentation = "Toggle James Webb Space Telecope field of view and view band", + GuiPath = "/JWST", + isLocal = false +} + +local setup_launch = { + Identifier = "os.missoins.jwst.setup.launch", + Name = "Set to JWST launch time", + Command = [[ + openspace.time.setDeltaTime(1); + openspace.time.setTime('2021-12-25T12:20:01'); + ]], + Documentation = "Set the time to the launch time of JWST", + GuiPath = "/JWST", + isLocal = false +} + +local setup_detach = { + Identifier = "os.missions.jwst.setup.detach", + Name = "Set to JWST detach time", + Command = [[ + openspace.time.setDeltaTime(1); + openspace.time.setTime('2021-12-25T12:50:00'); + ]], + Documentation = "Set the time to the detach time of JWST", + GuiPath = "/JWST", + isLocal = false +} + +local toggle_sun_trail = { + Identifier = "os.missions.jwst.togglesuntrail", + Name = "Toggle JWST Sun trail", + Command = [[ + local value = openspace.getPropertyValue('Scene.JWSTSunTrail.Renderable.Enabled'); + openspace.setPropertyValueSingle('Scene.JWSTSunTrail.Renderable.Enabled', not value); + ]], + Documentation = "Toggle JWST trail relative to the Sun", + GuiPath = "/JWST", + isLocal = false +} + +local toggle_trails_except_moon = { + Identifier = "os.missions.jwst.toggletrialsexceptmoon", + Name = "Toggle trails (except Moon)", + 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 + openspace.setPropertyValueSingle('Scene.MoonTrail.Renderable.Enabled', true) + ]], + Documentation = "Toggle all planet and moon trails, except the Moon", + GuiPath = "/JWST", + isLocal = false +} + +local toggle_jwst_trail = { + Identifier = "os.missions.jwst.togglejwsttrails", + Name = "Toggle JWST trail", + Command = [[ + local list = {'Scene.JWSTTrailLaunch.Renderable.Enabled', 'Scene.JWSTTrailCruise.Renderable.Enabled', 'Scene.JWSTTrailCoRevOrbit.Renderable.Enabled'}; + for _,v in pairs(list) do + openspace.setPropertyValueSingle(v, not openspace.getPropertyValue(v)); + end + ]], + Documentation = "Toggle JWST launch, cruise and L2 co-revolving orbit trails, not the Sun trail", + GuiPath = "/JWST", + isLocal = false +} + +asset.onInitialize(function() + openspace.action.registerAction(toggle_lagrangian_points) + openspace.action.registerAction(toggle_hudf) + openspace.action.registerAction(toggle_l2) + openspace.action.registerAction(toggle_fov) + openspace.action.registerAction(setup_launch) + openspace.action.registerAction(setup_detach) + openspace.action.registerAction(toggle_sun_trail) + openspace.action.registerAction(toggle_trails_except_moon) + openspace.action.registerAction(toggle_jwst_trail) +end) + +asset.onDeinitialize(function() + openspace.action.removeAction(toggle_jwst_trail) + openspace.action.removeAction(toggle_trails_except_moon) + openspace.action.removeAction(toggle_sun_trail) + openspace.action.removeAction(setup_detach) + openspace.action.removeAction(setup_launch) + openspace.action.removeAction(toggle_fov) + openspace.action.removeAction(toggle_l2) + openspace.action.removeAction(toggle_hudf) + openspace.action.removeAction(toggle_lagrangian_points) +end) + +asset.meta = { + Name = "Actions - JWST", + Version = "1.0", + Description = "Actions related to the JWST mission", + Author = "OpenSpace Team", + URL = "http://openspaceproject.com", + License = "MIT license" +} diff --git a/data/assets/scene/solarsystem/missions/jwst/jwst.asset b/data/assets/scene/solarsystem/missions/jwst/jwst.asset index cefeb1e481..2df50e614b 100644 --- a/data/assets/scene/solarsystem/missions/jwst/jwst.asset +++ b/data/assets/scene/solarsystem/missions/jwst/jwst.asset @@ -1,7 +1,11 @@ +asset.require("spice/base") +asset.require("./actions") +asset.require("scene/solarsystem/planets/earth/layers/colorlayers/terra_modis_temporal") +asset.require("scene/solarsystem/planets/earth/layers/colorlayers/esri_viirs_combo") + local sun = asset.require("scene/solarsystem/sun/sun") local sunTransforms = asset.require("scene/solarsystem/sun/transforms") local transforms = asset.require("./transforms") -asset.require("spice/base") local models = asset.syncedResource({ Name = "JWST Model", @@ -216,7 +220,7 @@ asset.export(JWSTLabel) asset.meta = { Name = "James Webb Space Telescope", - Version = "1.0", + Version = "1.1", Description = [[ James Webb Space Telescope animated model, safe viewing band, field of view and label. ]], diff --git a/data/assets/scene/solarsystem/missions/jwst/point_jwst.asset b/data/assets/scene/solarsystem/missions/jwst/point_jwst.asset index 15a985153c..e03c257fc8 100644 --- a/data/assets/scene/solarsystem/missions/jwst/point_jwst.asset +++ b/data/assets/scene/solarsystem/missions/jwst/point_jwst.asset @@ -1,3 +1,5 @@ +asset.require("./jwst") + local point_jwst = { Identifier = "event.jwst.point", Name = "Point JWST", diff --git a/data/assets/scene/solarsystem/missions/jwst/timelapse.asset b/data/assets/scene/solarsystem/missions/jwst/timelapse.asset index 8ebc3c0956..b14dab3ff3 100644 --- a/data/assets/scene/solarsystem/missions/jwst/timelapse.asset +++ b/data/assets/scene/solarsystem/missions/jwst/timelapse.asset @@ -1,4 +1,6 @@ asset.require("spice/base") -- openspace.time.advancedTime depends on SPICE +asset.require("scene/solarsystem/planets/earth/layers/nightlayers/earth_at_night_2012") +asset.require("scene/solarsystem/planets/earth/atmosphere") -- Function to advance a time stamp in the given number of days, hours, minutes and -- seconds. returns the new time stamp @@ -502,7 +504,7 @@ end local function createActions() local playForwards = { - Identifier = "jwst.play.forwards", + Identifier = "os.missions.jwst.play.forwards", Name = "Play JWST from start", Command = [[ openspace.scriptScheduler.clear(0) @@ -518,7 +520,7 @@ local function createActions() } local playFromDetach = { - Identifier = "jwst.play.detach", + Identifier = "os.missions.jwst.play.detach", Name = "Play JWST from detach", Command = [[ openspace.scriptScheduler.clear(0) @@ -536,7 +538,7 @@ local function createActions() } local playBackwards = { - Identifier = "jwst.play.backwards", + Identifier = "os.missions.jwst.play.backwards", Name = "Play JWST from end", Command = [[ openspace.scriptScheduler.clear(0) @@ -552,7 +554,7 @@ local function createActions() } local clearPlay = { - Identifier = "jwst.play.clear", + Identifier = "os.missions.jwst.play.clear", Name = "Clear JWST timelapse", Command = [[ openspace.scriptScheduler.clear(0) @@ -560,7 +562,7 @@ local function createActions() 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 + if deltaTime >= 0 then openspace.time.setDeltaTime(1) else openspace.time.setDeltaTime(-1) @@ -572,7 +574,7 @@ local function createActions() } local togglePlayDirection = { - Identifier = "jwst.toggle.direction", + Identifier = "os.missions.jwst.toggledirection", Name = "Toggle forwards / backwards", Command = [[ -- Flip deltatime @@ -609,7 +611,7 @@ local function createActions() IsLocal = false } - return {playForwards, playFromDetach, playBackwards, clearPlay, togglePlayDirection} + return { playForwards, playFromDetach, playBackwards, clearPlay, togglePlayDirection } end local text = { @@ -621,7 +623,7 @@ local text = { asset.onInitialize(function() actionsList = createActions() - for i, action in ipairs(actionsList) do + for _, action in ipairs(actionsList) do openspace.action.registerAction(action) end @@ -640,7 +642,7 @@ end) asset.meta = { Name = "James Webb Space Telescope Timelapse", - Version = "1.0", + Version = "1.1", Description = [[ Scripts that are scheduled to alter the speed of the simulation time so the deployment of the James Webb Space Telescope looks smoother. diff --git a/data/assets/scene/solarsystem/missions/jwst/transforms.asset b/data/assets/scene/solarsystem/missions/jwst/transforms.asset index 95e3637ed1..edda98ec4f 100644 --- a/data/assets/scene/solarsystem/missions/jwst/transforms.asset +++ b/data/assets/scene/solarsystem/missions/jwst/transforms.asset @@ -1,6 +1,7 @@ local earthTransforms = asset.require("scene/solarsystem/planets/earth/transforms") local sunTransforms = asset.require("scene/solarsystem/sun/transforms") asset.require("spice/base") +asset.require("scene/solarsystem/planets/earth/lagrange_points/L2") local kernels = asset.syncedResource({ Name = "JWST Kernel", @@ -78,8 +79,12 @@ local JWSTRotation = { } } --- Reparent the JWSTPosition node when the data changes at 25 Jan 2022 +-- Reparent the JWSTPosition node when the data changes asset.onInitialize(function() + openspace.addSceneGraphNode(JWSTPosition) + openspace.addSceneGraphNode(JWSTRotation) + + -- Set correct parent during run-time openspace.scriptScheduler.loadScheduledScript( detachTime, [[openspace.setParent("JWSTPosition", "EarthCenter")]], @@ -95,8 +100,15 @@ asset.onInitialize(function() 1 -- Not default group, never clear this script ) - openspace.addSceneGraphNode(JWSTPosition) - openspace.addSceneGraphNode(JWSTRotation) + -- Set correct parent at the start + local now = openspace.time.currentTime(); + if now < openspace.time.convertTime(detachTime) then + openspace.setParent("JWSTPosition", "EarthIAU") + elseif now > openspace.time.convertTime(L2orbitInsertionTime) then + openspace.setParent("JWSTPosition", "L2") + else + openspace.setParent("JWSTPosition", "EarthCenter") + end end) asset.onDeinitialize(function() diff --git a/data/assets/scene/solarsystem/missions/messenger/dashboard.asset b/data/assets/scene/solarsystem/missions/messenger/dashboard.asset index b460d104d9..79dac4be7f 100644 --- a/data/assets/scene/solarsystem/missions/messenger/dashboard.asset +++ b/data/assets/scene/solarsystem/missions/messenger/dashboard.asset @@ -11,7 +11,7 @@ local distance = { 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 576f0b8ed6..b42d772eeb 100644 --- a/data/assets/scene/solarsystem/missions/messenger/mercurymagnetosphere.asset +++ b/data/assets/scene/solarsystem/missions/messenger/mercurymagnetosphere.asset @@ -11,7 +11,7 @@ local localFolder = asset.syncedResource({ local MercuryRadius = 2.4397E6 -local Magnetosphere = { +local Magnetosphere = { Name = "Mercury Magnetosphere", Identifier = "MercuryMagnetosphere", Parent = mercuryTransforms.MercuryBarycenter.Identifier, @@ -56,9 +56,9 @@ local 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 7f8d7597f8..45aebea264 100644 --- a/data/assets/scene/solarsystem/missions/messenger/messengerSC.asset +++ b/data/assets/scene/solarsystem/missions/messenger/messengerSC.asset @@ -234,7 +234,7 @@ asset.onInitialize(function() openspace.addSceneGraphNode(node) end end) - + asset.onDeinitialize(function() for i = #nodes, 1, -1 do openspace.removeSceneGraphNode(nodes[i]) diff --git a/data/assets/scene/solarsystem/missions/newhorizons/actions.asset b/data/assets/scene/solarsystem/missions/newhorizons/actions.asset new file mode 100644 index 0000000000..b93946cd0d --- /dev/null +++ b/data/assets/scene/solarsystem/missions/newhorizons/actions.asset @@ -0,0 +1,244 @@ +local focus_newhorizons = { + Identifier = "os.missions.newhorizons.focus", + Name = "Focus on New Horizons", + Command = [[ + openspace.setPropertyValue('NavigationHandler.OrbitalNavigator.Anchor', 'NewHorizons'); + openspace.setPropertyValue('NavigationHandler.OrbitalNavigator.Aim', ''); + openspace.setPropertyValue('NavigationHandler.OrbitalNavigator.RetargetAnchor', nil); + ]], + Documentation = "Sets the focus of the camera on 'NewHorizons'", + GuiPath = "/Missions/New Horizons", + isLocal = false +} + +local anchor_nh_aim_pluto = { + Identifier = "os.missions.newhorizons.aimpluto", + Name = "Anchor NH, Aim Pluto", + Command = [[ + openspace.setPropertyValue('NavigationHandler.OrbitalNavigator.Anchor', 'NewHorizons'); + openspace.setPropertyValue('NavigationHandler.OrbitalNavigator.Aim', 'Pluto'); + openspace.setPropertyValue('NavigationHandler.OrbitalNavigator.RetargetAnchor', nil) + ]], + Documentation = "Anchor at New Horizons, Aim at Pluto", + GuiPath = "/Missions/New Horizons", + isLocal = false +} + +local focus_pluto = { + Identifier = "os.missions.newhorizons.pluto.focus", + Name = "Focus on Pluto", + Command = [[ + openspace.setPropertyValue('NavigationHandler.OrbitalNavigator.Anchor', 'PlutoProjection'); + openspace.setPropertyValue('NavigationHandler.OrbitalNavigator.Aim', ''); + openspace.setPropertyValue('NavigationHandler.OrbitalNavigator.RetargetAnchor', nil); + ]], + Documentation = "Sets the focus of the camera on 'Pluto'", + GuiPath = "/Missions/New Horizons", + isLocal = false +} + +local focus_charon = { + Identifier = "os.missions.newhorizons.charon.focus", + Name = "Focus on Charon", + Command = [[ + openspace.setPropertyValue('NavigationHandler.OrbitalNavigator.Anchor', 'Charon'); + openspace.setPropertyValue('NavigationHandler.OrbitalNavigator.Aim', ''); + openspace.setPropertyValue('NavigationHandler.OrbitalNavigator.RetargetAnchor', nil); + ]], + Documentation = "Sets the focus of the camera on 'Charon'", + GuiPath = "/Missions/New Horizons", + isLocal = false +} + +local toggle_nh_imageprojection = { + Identifier = "os.missions.newhorizons.toggleimageprojection", + Name = "Toggle NH Image Projection", + Command = [[ + local enabled = openspace.getPropertyValue('Scene.PlutoProjection.Renderable.ProjectionComponent.PerformProjection'); + openspace.setPropertyValue('Scene.PlutoProjection.Renderable.ProjectionComponent.PerformProjection', not enabled); + openspace.setPropertyValue('Scene.CharonProjection.Renderable.ProjectionComponent.PerformProjection', not enabled); + ]], + Documentation = "Toggles New Horizons image projection", + GuiPath = "/Missions/New Horizons", + isLocal = false +} + +local clear_image_projections = { + Identifier = "os.missions.newhorizons.clearimageprojections", + Name = "Clear image projections", + Command = [[ + openspace.setPropertyValue('Scene.PlutoProjection.Renderable.ProjectionComponent.ClearAllProjections', true); + openspace.setPropertyValue('Scene.CharonProjection.Renderable.ProjectionComponent.ClearAllProjections', true); + ]], + Documentation = "Removes all image projections from Pluto and Charon", + GuiPath = "/Missions/New Horizons", + isLocal = false +} + +local approach_time_and_projections = { + Identifier = "os.missions.newhorizons.approach", + Name = "Reset time and projections", + Command = [[ + openspace.time.setTime('2015-07-14T09:00:00.00'); + openspace.setPropertyValue('Scene.PlutoProjection.Renderable.ProjectionComponent.ClearAllProjections', true); + openspace.setPropertyValue('Scene.CharonProjection.Renderable.ProjectionComponent.ClearAllProjections', true); + ]], + Documentation = "Jumps to the 14th of July 2015 at 0900 UTC and clears all projections", + GuiPath = "/Missions/New Horizons", + isLocal = false +} + +local increase_hightmap_pluto = { + Identifier = "os.missions.newhorizons.pluto.increasehightmap", + Name = "Pluto HeightExaggeration +", + Command = [[ + openspace.setPropertyValueSingle("Scene.PlutoProjection.Renderable.HeightExaggeration", openspace.getPropertyValue("Scene.PlutoProjection.Renderable.HeightExaggeration") + 5000); + ]], + Documentation = "Increases the height map exaggeration on Pluto", + GuiPath = "/Missions/New Horizons", + isLocal = false +} + +local decrease_hightmap_pluto = { + Identifier = "os.missions.newhorizons.pluto.decreasehightmap", + Name = "Pluto HeightExaggeration -", + Command = [[ + openspace.setPropertyValueSingle("Scene.PlutoProjection.Renderable.HeightExaggeration", openspace.getPropertyValue("Scene.PlutoProjection.Renderable.HeightExaggeration") - 5000); + ]], + Documentation = "Decreases the height map exaggeration on Pluto", + GuiPath = "/Missions/New Horizons", + isLocal = false +} + +local increase_hightmap_charon = { + Identifier = "os.missions.newhorizons.charon.increasehightmap", + Name = "Charon HeightExaggeration +", + Command = [[ + openspace.setPropertyValueSingle("Scene.CharonProjection.Renderable.HeightExaggeration", openspace.getPropertyValue("Scene.CharonProjection.Renderable.HeightExaggeration") + 5000); + ]], + Documentation = "Increases the height map exaggeration on Charon", + GuiPath = "/Missions/New Horizons", + isLocal = false +} + +local decrease_hightmap_charon = { + Identifier = "os.missions.newhorizons.charon.decreasehightmap", + Name = "Charon HeightExaggeration -", + Command = [[ + openspace.setPropertyValueSingle("Scene.CharonProjection.Renderable.HeightExaggeration", openspace.getPropertyValue("Scene.CharonProjection.Renderable.HeightExaggeration") - 5000); + ]], + Documentation = "Decreases the height map exaggeration on Charon", + GuiPath = "/Missions/New Horizons", + isLocal = false +} + +local toggle_pluto_trail = { + Identifier = "os.missions.newhorizons.pluto.toggletrail", + Name = "Toggle Pluto Trail", + Command = [[ + openspace.setPropertyValueSingle('Scene.PlutoBarycentricTrail.Renderable.Enabled', not openspace.getPropertyValue('Scene.PlutoBarycentricTrail.Renderable.Enabled')); + ]], + Documentation = "Toggles the visibility of the trail behind Pluto", + GuiPath = "/Missions/New Horizons", + isLocal = false +} + +local toggle_pluto_labels = { + Identifier = "os.missions.newhorizons.pluto.togglelabels", + Name = "Toggle Pluto Labels", + Command = [[ + local list = {"Scene.PlutoText.Renderable.Enabled", "Scene.CharonText.Renderable.Enabled", "Scene.HydraText.Renderable.Enabled", "Scene.NixText.Renderable.Enabled", "Scene.KerberosText.Renderable.Enabled", "Scene.StyxText.Renderable.Enabled"}; + for _,v in pairs(list) do + openspace.setPropertyValueSingle(v, not openspace.getPropertyValue(v)) + end + ]], + Documentation = "Toggles the visibility of the text labels of Pluto, Charon, Hydra, Nix, Kerberos, and Styx", + GuiPath = "/Missions/New Horizons", + isLocal = false +} + +local toggle_nh_labels = { + Identifier = "os.missions.newhorizons.togglelabels", + Name = "Toggle New Horizons Labels", + Command = [[ + local v = openspace.getPropertyValue("Scene.Labels.Renderable.Opacity"); + if v <= 0.5 then + openspace.setPropertyValueSingle("Scene.Labels.Renderable.Opacity",1.0,2.0) + else + openspace.setPropertyValueSingle("Scene.Labels.Renderable.Opacity",0.0,2.0) + end + ]], + Documentation = "Toggles the visibility of the labels for the New Horizons instruments", + GuiPath = "/Missions/New Horizons", + isLocal = false +} + +local toggle_shadows = { + Identifier = "os.missions.newhorizons.toggleshadows", + Name = "Toggle Shadows", + Command = [[ + openspace.setPropertyValueSingle('Scene.PlutoShadow.Renderable.Enabled', not openspace.getPropertyValue('Scene.PlutoShadow.Renderable.Enabled')); + openspace.setPropertyValueSingle('Scene.CharonShadow.Renderable.Enabled', not openspace.getPropertyValue('Scene.CharonShadow.Renderable.Enabled')); + ]], + Documentation = "Toggles the visibility of the shadow visualization of Pluto and Charon", + GuiPath = "/Missions/New Horizons", + isLocal = false +} + +local toggle_nh_trail = { + Identifier = "os.missions.newhorizons.toggletrail", + Name = "Toggle NH Trail", + Command = [[ + openspace.setPropertyValueSingle('Scene.NewHorizonsTrailPluto.Renderable.Enabled', not openspace.getPropertyValue('Scene.NewHorizonsTrailPluto.Renderable.Enabled')); + ]], + Documentation = "Toggles the trail of New Horizons", + GuiPath = "/Missions/New Horizons", + isLocal = false +} + +asset.onInitialize(function() + openspace.action.registerAction(focus_newhorizons) + openspace.action.registerAction(anchor_nh_aim_pluto) + openspace.action.registerAction(focus_pluto) + openspace.action.registerAction(focus_charon) + openspace.action.registerAction(toggle_nh_imageprojection) + openspace.action.registerAction(clear_image_projections) + openspace.action.registerAction(approach_time_and_projections) + openspace.action.registerAction(decrease_hightmap_pluto) + openspace.action.registerAction(increase_hightmap_charon) + openspace.action.registerAction(decrease_hightmap_charon) + openspace.action.registerAction(toggle_pluto_trail) + openspace.action.registerAction(toggle_pluto_labels) + openspace.action.registerAction(toggle_nh_labels) + openspace.action.registerAction(toggle_shadows) + openspace.action.registerAction(toggle_nh_trail) + openspace.action.registerAction(increase_hightmap_pluto) +end) + +asset.onDeinitialize(function() + openspace.action.removeAction(increase_hightmap_pluto) + openspace.action.removeAction(toggle_nh_trail) + openspace.action.removeAction(toggle_shadows) + openspace.action.removeAction(toggle_nh_labels) + openspace.action.removeAction(toggle_pluto_labels) + openspace.action.removeAction(toggle_pluto_trail) + openspace.action.removeAction(decrease_hightmap_charon) + openspace.action.removeAction(increase_hightmap_charon) + openspace.action.removeAction(decrease_hightmap_pluto) + openspace.action.removeAction(approach_time_and_projections) + openspace.action.removeAction(clear_image_projections) + openspace.action.removeAction(toggle_nh_imageprojection) + openspace.action.removeAction(focus_charon) + openspace.action.removeAction(focus_pluto) + openspace.action.removeAction(anchor_nh_aim_pluto) + openspace.action.removeAction(focus_newhorizons) +end) + +asset.meta = { + Name = "New Horizons actions", + Version = "1.0", + Description = "Actions for the New Horizons mission", + Author = "OpenSpace Team", + URL = "http://openspaceproject.com", + License = "MIT license" +} diff --git a/data/assets/scene/solarsystem/missions/newhorizons/charon.asset b/data/assets/scene/solarsystem/missions/newhorizons/charon.asset index d11bbc1af5..85bd2bc4f0 100644 --- a/data/assets/scene/solarsystem/missions/newhorizons/charon.asset +++ b/data/assets/scene/solarsystem/missions/newhorizons/charon.asset @@ -45,7 +45,6 @@ local CharonProjection = { Target = "CHARON", Aberration = "NONE", AspectRatio = 2, - Instrument = { Name = "NH_LORRI", Method = "ELLIPSOID", @@ -55,7 +54,6 @@ local CharonProjection = { Near = 0.2, Far = 10000 }, - PotentialTargets = { "PLUTO", "CHARON" @@ -115,13 +113,13 @@ asset.onInitialize(function() 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 3d668bd2cd..38cd160f78 100644 --- a/data/assets/scene/solarsystem/missions/newhorizons/dashboard.asset +++ b/data/assets/scene/solarsystem/missions/newhorizons/dashboard.asset @@ -26,7 +26,7 @@ asset.onInitialize(function() openspace.dashboard.addDashboardItem(distance) openspace.dashboard.addDashboardItem(instruments) end) - + asset.onDeinitialize(function() openspace.dashboard.removeDashboardItem(instruments) openspace.dashboard.removeDashboardItem(distance) diff --git a/data/assets/scene/solarsystem/missions/newhorizons/kernels.asset b/data/assets/scene/solarsystem/missions/newhorizons/kernels.asset index 3400b3299d..252ef95c56 100644 --- a/data/assets/scene/solarsystem/missions/newhorizons/kernels.asset +++ b/data/assets/scene/solarsystem/missions/newhorizons/kernels.asset @@ -15,7 +15,7 @@ local NewHorizonsKernels = { Kernels .. "nh_scispi_2015_pred.bc", Kernels .. "nh_scispi_2015_recon.bc", Kernels .. "nh_lorri_wcs.bc", - + Kernels .. "PLU_LORRI_ALL_161216.bc", Kernels .. "nh_targets_v001.tpc", diff --git a/data/assets/scene/solarsystem/missions/newhorizons/label.asset b/data/assets/scene/solarsystem/missions/newhorizons/label.asset index 646aec1f8f..33e8047448 100644 --- a/data/assets/scene/solarsystem/missions/newhorizons/label.asset +++ b/data/assets/scene/solarsystem/missions/newhorizons/label.asset @@ -27,9 +27,9 @@ local 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 ef6ce125f5..85a6898932 100644 --- a/data/assets/scene/solarsystem/missions/newhorizons/model.asset +++ b/data/assets/scene/solarsystem/missions/newhorizons/model.asset @@ -31,9 +31,9 @@ local NewHorizons = { 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 5b54845b72..84128fff70 100644 --- a/data/assets/scene/solarsystem/missions/newhorizons/newhorizons.asset +++ b/data/assets/scene/solarsystem/missions/newhorizons/newhorizons.asset @@ -8,6 +8,8 @@ asset.require("./charon") asset.require("./othermoons") +asset.require("./actions") + local mission = asset.localResource("newhorizons.mission") local missionName diff --git a/data/assets/scene/solarsystem/missions/newhorizons/othermoons.asset b/data/assets/scene/solarsystem/missions/newhorizons/othermoons.asset index 0c0c7124a9..c8a19ac902 100644 --- a/data/assets/scene/solarsystem/missions/newhorizons/othermoons.asset +++ b/data/assets/scene/solarsystem/missions/newhorizons/othermoons.asset @@ -123,14 +123,14 @@ asset.onInitialize(function() 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) diff --git a/data/assets/scene/solarsystem/missions/newhorizons/pluto.asset b/data/assets/scene/solarsystem/missions/newhorizons/pluto.asset index 2dcab6bebc..2469643335 100644 --- a/data/assets/scene/solarsystem/missions/newhorizons/pluto.asset +++ b/data/assets/scene/solarsystem/missions/newhorizons/pluto.asset @@ -99,7 +99,7 @@ local PlutoProjection = { DetectorType = "Scanner", StopCommand = "END_NOM", Spice = { "NH_RALPH_LEISA" } - }, + }, RALPH_MVIC_PAN1 = { DetectorType = "Scanner", StopCommand = "END_NOM", @@ -109,7 +109,7 @@ local PlutoProjection = { DetectorType = "Scanner", StopCommand = "END_NOM", Spice = { "NH_RALPH_MVIC_PAN2" } - }, + }, ALICE_Use_AIRGLOW = { DetectorType = "Scanner", StopCommand = "ALICE_END_PIXELLIST", @@ -136,7 +136,7 @@ local PlutoProjection = { Spice = { "NH_REX" } } }, - Target ={ + Target ={ Read = { "TARGET_NAME", "INSTRUMENT_HOST_NAME", @@ -153,7 +153,6 @@ local PlutoProjection = { } } }, - Instrument = { Name = "NH_LORRI", Method = "ELLIPSOID", @@ -163,7 +162,6 @@ local PlutoProjection = { Near = 0.2, Far = 10000 }, - PotentialTargets = { "PLUTO", "CHARON", @@ -225,7 +223,7 @@ local PlutoShadow = { Renderable = { Type = "RenderableShadowCylinder", Opacity = 0.25, - TerminatorType = "PENUMBRAL", + TerminatorType = "PENUMBRAL", LightSource = "SUN", Observer = "NEW HORIZONS", Body = "PLUTO", @@ -244,14 +242,14 @@ asset.onInitialize(function() 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) diff --git a/data/assets/scene/solarsystem/missions/newhorizons/trail.asset b/data/assets/scene/solarsystem/missions/newhorizons/trail.asset index aa07cc3711..4419ff247c 100644 --- a/data/assets/scene/solarsystem/missions/newhorizons/trail.asset +++ b/data/assets/scene/solarsystem/missions/newhorizons/trail.asset @@ -31,9 +31,9 @@ local 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 8e4dd6d0a4..c8be212212 100644 --- a/data/assets/scene/solarsystem/missions/newhorizons/transforms.asset +++ b/data/assets/scene/solarsystem/missions/newhorizons/transforms.asset @@ -49,11 +49,11 @@ 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/actions.asset b/data/assets/scene/solarsystem/missions/osirisrex/actions.asset new file mode 100644 index 0000000000..91161f838d --- /dev/null +++ b/data/assets/scene/solarsystem/missions/osirisrex/actions.asset @@ -0,0 +1,113 @@ +local focus_osirisrex = { + Identifier = "os.missions.osirisrex.focus", + Name = "Focus on OsirisRex", + Command = [[ + openspace.setPropertyValue('NavigationHandler.OrbitalNavigator.Anchor', 'OsirisRex'); + openspace.setPropertyValue('NavigationHandler.OrbitalNavigator.Aim', ''); + openspace.setPropertyValue('NavigationHandler.OrbitalNavigator.RetargetAnchor', nil); + ]], + Documentation = "Sets the focus of the camera on 'OsirisRex'", + GuiPath = "/Missions/Osiris Rex", + isLocal = false +} + +local focus_bennu = { + Identifier = "os.missions.osirisrex.bennu.focus", + Name = "Focus on Bennu", + Command = [[ + openspace.setPropertyValue('NavigationHandler.OrbitalNavigator.Anchor', 'BennuBarycenter'); + openspace.setPropertyValue('NavigationHandler.OrbitalNavigator.Aim', ''); + openspace.setPropertyValue('NavigationHandler.OrbitalNavigator.RetargetAnchor', nil); + ]], + Documentation = "Sets the focus of the camera on 'Bennu'", + GuiPath = "/Missions/Osiris Rex", + isLocal = false +} + +local bennu_approach_time = { + Identifier = "os.missions.osirisrex.setup.bennuapproach", + Name = "Set Bennu approach time", + Command = [[ + openspace.printInfo('Set time: Approach'); + openspace.time.setTime('2018-SEP-11 21:31:01.183'); + ]], + Documentation = "Sets the time to the approach at Bennu", + GuiPath = "/Missions/Osiris Rex", + isLocal = false +} + +local bennu_survey_time = { + Identifier = "os.missions.osirisrex.setup.bennusurvey", + Name = "Set Bennu survey time", + Command = [[ + openspace.printInfo('Set time: Preliminary Survey'); + openspace.time.setTime('2018-NOV-20 01:13:12.183'); + ]], + Documentation = "Sets the time to the preliminary survey of Bennu", + GuiPath = "/Missions/Osiris Rex", + isLocal = false +} + +local bennu_event_b = { + Identifier = "os.missions.osirisrex.setup.bennueventb", + Name = "Set orbital B event time", + Command = [[ + openspace.printInfo('Set time: Orbital B'); + openspace.time.setTime('2019-APR-08 10:35:27.186'); + ]], + Documentation = "Sets the time to the orbital B event", + GuiPath = "/Missions/Osiris Rex", + isLocal = false +} + +local bennu_recon_event = { + Identifier = "os.missions.osirisrex.setup.bennureconevent", + Name = "Set recon event time", + Command = [[ + openspace.printInfo('Set time: Recon'); + openspace.time.setTime('2019-MAY-25 03:50:31.195'); + ]], + Documentation = "Sets the time to the recon event", + GuiPath = "/Missions/Osiris Rex", + isLocal = false +} + +local toggle_sun_marker = { + Identifier = "os.missions.osirisrex.togglesunmarker", + Name = "Toggle Sun marker", + Command = [[ + openspace.setPropertyValueSingle('Scene.SunMarker.Renderable.Enabled', not openspace.getPropertyValue('Scene.SunMarker.Renderable.Enabled')); + ]], + Documentation = "Toggles the visibility of the text marking the location of the Sun", + GuiPath = "/Missions/Osiris Rex", + isLocal = false +} + +asset.onInitialize(function() + openspace.action.registerAction(focus_osirisrex) + openspace.action.registerAction(focus_bennu) + openspace.action.registerAction(bennu_approach_time) + openspace.action.registerAction(bennu_survey_time) + openspace.action.registerAction(bennu_event_b) + openspace.action.registerAction(bennu_recon_event) + openspace.action.registerAction(toggle_sun_marker) +end) + +asset.onDeinitialize(function() + openspace.action.removeAction(toggle_sun_marker) + openspace.action.removeAction(bennu_recon_event) + openspace.action.removeAction(bennu_event_b) + openspace.action.removeAction(bennu_survey_time) + openspace.action.removeAction(bennu_approach_time) + openspace.action.removeAction(focus_bennu) + openspace.action.removeAction(focus_osirisrex) +end) + +asset.meta = { + Name = "OsirisRex Actions", + Version = "1.0", + Description = "Actions related to the OsirisRex mission", + Author = "OpenSpace Team", + URL = "http://openspaceproject.com", + License = "MIT license" +} diff --git a/data/assets/scene/solarsystem/missions/osirisrex/bennu.asset b/data/assets/scene/solarsystem/missions/osirisrex/bennu.asset index 700edd5f2b..58b90555d9 100644 --- a/data/assets/scene/solarsystem/missions/osirisrex/bennu.asset +++ b/data/assets/scene/solarsystem/missions/osirisrex/bennu.asset @@ -38,9 +38,9 @@ local 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 c4d0935813..686bb6b9a2 100644 --- a/data/assets/scene/solarsystem/missions/osirisrex/bennu_projection.asset +++ b/data/assets/scene/solarsystem/missions/osirisrex/bennu_projection.asset @@ -53,7 +53,7 @@ local BennuProjection = { Spice = { "ORX_OCAMS_POLYCAM" }, }, }, - Target = { + Target = { Read = { "TARGET_NAME", "INSTRUMENT_HOST_NAME", @@ -109,11 +109,11 @@ 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 723ef7967b..16a6c37603 100644 --- a/data/assets/scene/solarsystem/missions/osirisrex/dashboard.asset +++ b/data/assets/scene/solarsystem/missions/osirisrex/dashboard.asset @@ -26,7 +26,7 @@ asset.onInitialize(function() openspace.dashboard.addDashboardItem(distance) openspace.dashboard.addDashboardItem(instruments) end) - + asset.onDeinitialize(function() openspace.dashboard.removeDashboardItem(instruments) openspace.dashboard.removeDashboardItem(distance) diff --git a/data/assets/scene/solarsystem/missions/osirisrex/imageplane.asset b/data/assets/scene/solarsystem/missions/osirisrex/imageplane.asset index 97837c5c87..0b8b1903e8 100644 --- a/data/assets/scene/solarsystem/missions/osirisrex/imageplane.asset +++ b/data/assets/scene/solarsystem/missions/osirisrex/imageplane.asset @@ -42,9 +42,9 @@ local 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 ba1c27cfae..1c768f7ccc 100644 --- a/data/assets/scene/solarsystem/missions/osirisrex/kernels.asset +++ b/data/assets/scene/solarsystem/missions/osirisrex/kernels.asset @@ -4,7 +4,7 @@ local kernels = asset.syncedResource({ Identifier = "osirisrex_kernels", Version = 4 }) - + local OsirisRexKernels = { kernels .. "orx_v14.tf", kernels .. "orx_ocams_v07.ti", diff --git a/data/assets/scene/solarsystem/missions/osirisrex/model.asset b/data/assets/scene/solarsystem/missions/osirisrex/model.asset index 2e15fc5aed..70c2dd8a08 100644 --- a/data/assets/scene/solarsystem/missions/osirisrex/model.asset +++ b/data/assets/scene/solarsystem/missions/osirisrex/model.asset @@ -116,7 +116,7 @@ local Rexis = { } local PolyCamFov = { - Identifier = "POLYCAM FOV", + Identifier = "POLYCAM_FOV", Parent = PolyCam.Identifier, Renderable = { Type = "RenderableFov", @@ -171,11 +171,11 @@ local nodes = { } asset.onInitialize(function() - for i, node in ipairs(nodes) do + for _, node in ipairs(nodes) do openspace.addSceneGraphNode(node) end end) - + asset.onDeinitialize(function() for i = #nodes, 1, -1 do openspace.removeSceneGraphNode(nodes[i]) diff --git a/data/assets/scene/solarsystem/missions/osirisrex/osirisrex.asset b/data/assets/scene/solarsystem/missions/osirisrex/osirisrex.asset index 389b3d1103..b050d9687d 100644 --- a/data/assets/scene/solarsystem/missions/osirisrex/osirisrex.asset +++ b/data/assets/scene/solarsystem/missions/osirisrex/osirisrex.asset @@ -5,6 +5,7 @@ asset.require("./trail") asset.require("scene/solarsystem/sun/marker") asset.require("./script_schedule") +asset.require("./actions") local mission = asset.localResource("osirisrex.mission") local missionName diff --git a/data/assets/scene/solarsystem/missions/osirisrex/osirisrex.mission b/data/assets/scene/solarsystem/missions/osirisrex/osirisrex.mission index 2693825cdf..3fb16b30e6 100644 --- a/data/assets/scene/solarsystem/missions/osirisrex/osirisrex.mission +++ b/data/assets/scene/solarsystem/missions/osirisrex/osirisrex.mission @@ -13,9 +13,9 @@ References: [3] Source : SPICE kernel data coverage Date : 2016-08-23 Comment : The spice data is split up into across different files. These files - seems to represent different phases. A script was used to extract the + seems to represent different phases. A script was used to extract the SPICE coverage from all .bc files and use the names of the files as - mission names and associate the name with the time coverage. + mission names and associate the name with the time coverage. Script used: support/mission/ckbrief2mission.js [4] Source : Visual interpretation of SPICE kernel data coverage @@ -27,12 +27,12 @@ References: return { Name = "OSIRIS-REx", Phases = { - -- All 1-level phases based on [1] + -- All 1-level phases based on [1] { Name = "Planning and Fabrication", TimeRange = { Start = "2012 JAN 01 00:00:00", End = "2016 SEP 08 23:05:00" } }, - { + { Name = "Outbound Cruise", TimeRange = { Start = "2016 SEP 03 00:00:00", End = "2018 SEP 01 01:00:00" }, Phases = { @@ -41,19 +41,19 @@ return { Name = "Pre Launch", TimeRange = { Start = "2016 SEP 03 01:00:00", End = "2016 SEP 08 23:05:05" } }, - { + { Name = "Launch", TimeRange = { Start = "2016 SEP 08 23:05:05", End = "2016 SEP 08 23:09:00" } }, - { + { Name = "Earth Orbit", TimeRange = { Start = "2016 SEP 08 23:09:00", End = "2016 SEP 08 23:45:00" } }, - { + { Name = "Solar Orbit", TimeRange = { Start = "2016 SEP 08 23:45:00", End = "2018 SEP 01 00:00:00" } }, - { + { Name = "Upcoming Gravity Assist", TimeRange = { Start = "2017 JAN 22 15:00:00", End = "2017 SEP 22 15:00:00" } }, - { + { Name = "Gravity Assist", TimeRange = { Start = "2017 SEP 22 15:00:00", End = "2017 SEP 22 21:00:00" } } } @@ -64,10 +64,10 @@ return { -- Nested Levels from [3] { Name = "03_Approach", Phases = { - { + { Name = "DustSearch_v1", Phases = { - { + { Name = "Phase03_AP_DustSearch_1.bc", TimeRange = { Start = "2018-SEP-11 21:31:01.183", End = "2018-SEP-12 02:18:41.183" } } diff --git a/data/assets/scene/solarsystem/missions/osirisrex/trail.asset b/data/assets/scene/solarsystem/missions/osirisrex/trail.asset index 5238d3f6a9..e2c60b0b49 100644 --- a/data/assets/scene/solarsystem/missions/osirisrex/trail.asset +++ b/data/assets/scene/solarsystem/missions/osirisrex/trail.asset @@ -75,13 +75,13 @@ asset.onInitialize(function() 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 cb7d63a118..409f47d542 100644 --- a/data/assets/scene/solarsystem/missions/osirisrex/transforms.asset +++ b/data/assets/scene/solarsystem/missions/osirisrex/transforms.asset @@ -23,9 +23,9 @@ local 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/actions.asset b/data/assets/scene/solarsystem/missions/perseverance/actions.asset new file mode 100644 index 0000000000..534f8d8dfd --- /dev/null +++ b/data/assets/scene/solarsystem/missions/perseverance/actions.asset @@ -0,0 +1,34 @@ +local setup_perseverance = { + Identifier = "os.missions.perseverance.setup", + Name = "Setup and Goto Perseverance", + Command = [[ + openspace.setPropertyValueSingle('Scene.Mars.Renderable.Layers.HeightLayers.Mola_Utah.Settings.Offset', -1685.5); + openspace.setPropertyValueSingle('Scene.Mars.Renderable.Layers.HeightLayers.HiRISE-LS-DEM.Settings.Offset', -1686.0); + openspace.setPropertyValueSingle('Scene.Mars.Renderable.Layers.HeightLayers.MDEM200M.Settings.Offset', -1686); + openspace.time.setPause(true); + openspace.time.setTime('2021 FEB 18 20:32:16'); + openspace.setPropertyValueSingle('Scene.Mars.Renderable.Layers.HeightLayers.HiRISE-LS-DEM.Enabled', true); + openspace.setPropertyValueSingle('Scene.Mars.Renderable.Layers.ColorLayers.HiRISE-LS.Enabled', true); + openspace.navigation.setNavigationState({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}); + ]], + Documentation = "Sets time and layers for Perseverance landing", + GuiPath = "/Missions/Perseverance", + isLocal = false +} + +asset.onInitialize(function() + openspace.action.registerAction(setup_perseverance) +end) + +asset.onDeinitialize(function() + openspace.action.removeAction(setup_perseverance) +end) + +asset.meta = { + Name = "Perseverance Actions", + Version = "1.0", + Description = "Actions related to the Perseverance mission", + Author = "OpenSpace Team", + URL = "http://openspaceproject.com", + License = "MIT license" +} \ No newline at end of file diff --git a/data/assets/scene/solarsystem/missions/perseverance/model.asset b/data/assets/scene/solarsystem/missions/perseverance/model.asset index 31e5be7cee..09285e73c6 100644 --- a/data/assets/scene/solarsystem/missions/perseverance/model.asset +++ b/data/assets/scene/solarsystem/missions/perseverance/model.asset @@ -1,6 +1,7 @@ local trail = asset.require("./trail") local marsTransforms = asset.require("scene/solarsystem/planets/mars/transforms") local sun = asset.require("scene/solarsystem/sun/sun") +local spice = asset.require("./spice") local models = asset.syncedResource({ Name = "Perseverance Model", @@ -9,10 +10,86 @@ local models = asset.syncedResource({ Version = 2 }) +local TranslationKeyframes = { + ["1850 JAN 01 00:00:00"] = { + Type = "SpiceTranslation", + Target = spice.ID, + Observer = "MARS", + Kernels = spice.Kernels, + Frame = "IAU_MARS", + FixedDate = "2020 JUL 17 13:56:43" + }, + ["2020 JUL 17 13:56:42"] = { + Type = "SpiceTranslation", + Target = spice.ID, + Observer = "MARS", + Kernels = spice.Kernels, + Frame = "IAU_MARS", + FixedDate = "2020 JUL 17 13:56:43" + }, + ["2020 JUL 17 13:56:43"] = { + Type = "SpiceTranslation", + Target = spice.ID, + Observer = "MARS", + Frame = "IAU_MARS", + Kernels = spice.Kernels + }, + ["2020 JUL 17 13:56:44"] = { + Type = "SpiceTranslation", + Target = spice.ID, + Observer = "MARS", + Frame = "IAU_MARS", + Kernels = spice.Kernels + }, + ["2021 FEB 18 20:43:48"] = { + Type = "SpiceTranslation", + Target = spice.ID, + Observer = "MARS", + Frame = "IAU_MARS", + Kernels = spice.Kernels, + }, + ["2021 FEB 18 20:43:49"] = { + Type = "SpiceTranslation", + Target = spice.ID, + Observer = "MARS", + Frame = "IAU_MARS", + Kernels = spice.Kernels, + FixedDate = "2021 FEB 18 20:43:48" + }, +} + +local PerseveranceNode = { + Identifier = "PerseveranceNode", + Parent = marsTransforms.MarsBarycenter.Identifier, + Transform = { + Translation = { + Type = "SpiceTranslation", + Target = "MARS", + Observer = "MARS BARYCENTER" + }, + Rotation = { + Type = "SpiceRotation", + SourceFrame = "IAU_MARS", + DestinationFrame = "GALACTIC" + } + }, + GUI = { + Name = "Perseverance Node", + Path = "/Solar System/Missions/Perseverance", + Hidden = true + } +} + -- Perseverance Model -- local Perseverance = { Identifier = "Perseverance", - Parent = trail.PerseveranceNode.Identifier, + Parent = PerseveranceNode.Identifier, + Transform = { + Translation = { + Type = "TimelineTranslation", + Keyframes = TranslationKeyframes + } + }, GUI = { Name = "Perseverance", Path = "/Solar System/Missions/Perseverance" @@ -46,29 +123,30 @@ local Body = { Intensity = 0.5 } }, - PerformShading = false, - RotationVector = {65.940000,201.389999,263.980011} + RotationVector = {19.19,0.0,348.08} }, GUI = { Name = "Perseverance Model Body", Path = "/Solar System/Missions/Perseverance/Model", - Hidden = true + -- Hidden = true } } asset.onInitialize(function() + openspace.addSceneGraphNode(PerseveranceNode) openspace.addSceneGraphNode(Perseverance) openspace.addSceneGraphNode(PerseveranceModel) openspace.addSceneGraphNode(Body) end) - + asset.onDeinitialize(function() openspace.removeSceneGraphNode(Body) openspace.removeSceneGraphNode(PerseveranceModel) openspace.removeSceneGraphNode(Perseverance) + openspace.removeSceneGraphNode(PerseveranceNode) 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 0e9df57fa6..3378ce1803 100644 --- a/data/assets/scene/solarsystem/missions/perseverance/perseverance.asset +++ b/data/assets/scene/solarsystem/missions/perseverance/perseverance.asset @@ -1,2 +1,5 @@ asset.require("./model") asset.require("./trail") +asset.require("./actions") +asset.require("scene/solarsystem/planets/mars/mars") +asset.require("scene/solarsystem/planets/mars/default_layers") diff --git a/data/assets/scene/solarsystem/missions/perseverance/spice.asset b/data/assets/scene/solarsystem/missions/perseverance/spice.asset new file mode 100644 index 0000000000..65ed32bc04 --- /dev/null +++ b/data/assets/scene/solarsystem/missions/perseverance/spice.asset @@ -0,0 +1,25 @@ +local kernels = asset.syncedResource({ + Name = "Mars 2020 Kernels", + Type = "HttpSynchronization", + Identifier = "perseverance_kernels", + Version = 2 +}) + +local m2020_kernels = { + kernels .. "m2020.tf", + kernels .. "m2020.tsc", + kernels .. "m2020_v04.tf", + + kernels .. "m2020_cruise_recon_nospin_v1.bc", + kernels .. "m2020_cruise_recon_rawrt_v1.bc", + kernels .. "m2020_cruise_recon_raweng_v1.bc", + kernels .. "m2020_edl_v01.bc", + + kernels .. "m2020_cruise_od138_v1.bsp", + kernels .. "m2020_edl_v01.bsp", + kernels .. "m2020_surf_rover_loc_0000_0089_v1.bsp" +} + +asset.export("Kernels", m2020_kernels) +asset.export("ID", -168) + diff --git a/data/assets/scene/solarsystem/missions/perseverance/trail.asset b/data/assets/scene/solarsystem/missions/perseverance/trail.asset index 2df94fa738..9b9fb46c9d 100644 --- a/data/assets/scene/solarsystem/missions/perseverance/trail.asset +++ b/data/assets/scene/solarsystem/missions/perseverance/trail.asset @@ -1,67 +1,21 @@ 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", - Type = "HttpSynchronization", - Identifier = "perseverance_kernels", - Version = 2 -}) - -local perseverance_id = -168 - -local m2020_kernels = { - kernels .. "m2020.tf", - kernels .. "m2020.tsc", - kernels .. "m2020_v04.tf", - - kernels .. "m2020_cruise_recon_nospin_v1.bc", - kernels .. "m2020_cruise_recon_rawrt_v1.bc", - kernels .. "m2020_cruise_recon_raweng_v1.bc", - kernels .. "m2020_edl_v01.bc", - - kernels .. "m2020_cruise_od138_v1.bsp", - kernels .. "m2020_edl_v01.bsp", - kernels .. "m2020_surf_rover_loc_0000_0089_v1.bsp" -} +local spice = asset.require("./spice") local startTime = "2020 JUL 17 13:56:42" local approachMars = "2021 FEB 11 20:32:16" local endTime = "2021 FEB 18 20:32:16" -local PerseveranceNode = { - Identifier = "PerseveranceNode", - Parent = sunTransforms.SolarSystemBarycenter.Identifier, - Transform = { - Translation = { - Type = "SpiceTranslation", - Target = perseverance_id, - Observer = "SSB", - Kernels = m2020_kernels - } - }, - GUI = { - Name = "Perseverance Node", - Path = "/Solar System/Missions/Perseverance", - Hidden = true - }, - TimeFrame = { - Type = "TimeFrameInterval", - Start = "2020 JUL 30 12:52:43.643", - End = "2021 FEB 18 20:43:48" - } -} - local PerseveranceTrailSun = { Identifier = "PerseveranceTrailSun", Parent = sunTransforms.SolarSystemBarycenter.Identifier, Renderable = { Type = "RenderableTrailTrajectory", - Translation = { + Translation = { Type = "SpiceTranslation", - Target = perseverance_id, + Target = spice.ID, Observer = "SSB", - Kernels = m2020_kernels + Kernels = spice.Kernels }, Color = { 0.2, 0.7, 0.1 }, StartTime = startTime, @@ -82,9 +36,9 @@ local PerseveranceTrailMars = { Type = "RenderableTrailTrajectory", Translation = { Type = "SpiceTranslation", - Target = perseverance_id, + Target = spice.ID, Observer = "MARS BARYCENTER", - Kernels = m2020_kernels + Kernels = spice.Kernels }, Color = { 0.7, 0.9, 0.6 }, StartTime = approachMars, @@ -99,17 +53,14 @@ local 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 210e6091b6..7a26da8500 100644 --- a/data/assets/scene/solarsystem/missions/pioneer/pioneer10.asset +++ b/data/assets/scene/solarsystem/missions/pioneer/pioneer10.asset @@ -47,7 +47,7 @@ local Pioneer10Trail = { StartTime = "1972 MAR 03 02:04:00", EndTime = "1990 JAN 02 00:00:00", EnableFade = false, - SampleInterval = 6545 * 2 + SampleInterval = 6545 * 2 -- 6545 is the number of days between the Start and End time (aka sample every 2d) }, GUI = { @@ -62,12 +62,12 @@ 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) diff --git a/data/assets/scene/solarsystem/missions/pioneer/pioneer11.asset b/data/assets/scene/solarsystem/missions/pioneer/pioneer11.asset index 53903a88c1..aab6def066 100644 --- a/data/assets/scene/solarsystem/missions/pioneer/pioneer11.asset +++ b/data/assets/scene/solarsystem/missions/pioneer/pioneer11.asset @@ -50,7 +50,7 @@ local Pioneer11Trail = { StartTime = "1973 APR 06 02:25:00.000", EndTime = "1990 JAN 02 00:00:00.000", EnableFade = false, - SampleInterval = 6087 * 2 + SampleInterval = 6087 * 2 --6087 is the number of days between the Start and End time (so sample every 2d) }, GUI = { @@ -65,12 +65,12 @@ 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) diff --git a/data/assets/scene/solarsystem/missions/rosetta/67p.asset b/data/assets/scene/solarsystem/missions/rosetta/67p.asset index 1d412a61cd..2c694b7059 100644 --- a/data/assets/scene/solarsystem/missions/rosetta/67p.asset +++ b/data/assets/scene/solarsystem/missions/rosetta/67p.asset @@ -20,10 +20,11 @@ local images = asset.syncedResource({ Name = "Rosetta Images", Type = "HttpSynchronization", Identifier = "rosettaimages", - Version = 2 + Version = 2, + UnzipFiles = true }) -local imagesDestination = images .. "images" +local imagesDestination = images .. "images_v1_v2" local Barycenter = { Identifier = "67PBarycenter", @@ -70,7 +71,7 @@ local Comet67P = { Spice = { "ROS_NAVCAM-A" } } }, - Target = { + Target = { Read = { "TARGET_NAME", "INSTRUMENT_HOST_NAME", @@ -130,27 +131,63 @@ 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) - end -end) +-- actions +local focus_67p = { + Identifier = "os.missions.rosetta.67p.focus", + Name = "Focus on 67P", + Command = [[ + openspace.setPropertyValue('NavigationHandler.OrbitalNavigator.Anchor', '67P'); + openspace.setPropertyValue('NavigationHandler.OrbitalNavigator.Aim', ''); + openspace.setPropertyValue('NavigationHandler.OrbitalNavigator.RetargetAnchor', nil); + ]], + Documentation = "Sets the focus of the camera on 67P", + GuiPath = "/Missions/Rosetta", + isLocal = false +} +local clear_image_projections_67p = { + Identifier = "os.missions.rosetta.67p.clearimageprojections", + Name = "Clear 67P projections", + Command = [[ + openspace.setPropertyValue('Scene.67P.Renderable.ProjectionComponent.ClearAllProjections', true); + ]], + Documentation = "Removes all image projections from 67P", + GuiPath = "/Missions/Rosetta", + isLocal = false +} + +local toggle_67p_projection = { + Identifier = "os.missions.rosetta.toggle67pprojection", + Name = "Toggle 67P projection", + Command = [[ + openspace.setPropertyValueSingle('Scene.67P.Renderable.ProjectionComponent.PerformProjection', not openspace.getPropertyValue('Scene.67P.Renderable.ProjectionComponent.PerformProjection')); + ]], + Documentation = "Enables or disables the image projection on 67P", + GuiPath = "/Missions/Rosetta", + isLocal = false +} asset.onInitialize(function() openspace.addSceneGraphNode(Barycenter) openspace.addSceneGraphNode(Comet67P) openspace.addSceneGraphNode(Trail67P) + + openspace.action.registerAction(focus_67p) + openspace.action.registerAction(clear_image_projections_67p) + openspace.action.registerAction(toggle_67p_projection) end) - + asset.onDeinitialize(function() + openspace.action.removeAction(toggle_67p_projection) + openspace.action.removeAction(clear_image_projections_67p) + openspace.action.removeAction(focus_67p) + 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 diff --git a/data/assets/scene/solarsystem/missions/rosetta/actions.asset b/data/assets/scene/solarsystem/missions/rosetta/actions.asset new file mode 100644 index 0000000000..f8fda4a8f2 --- /dev/null +++ b/data/assets/scene/solarsystem/missions/rosetta/actions.asset @@ -0,0 +1,30 @@ +local toggle_outer_planetary_trails = { + Identifier = "os.missions.rosetta.toggleouterplanetarytrails", + Name = "Toggle outer planetary trails", + Command = [[ + local list = openspace.getProperty('{planetTrail_giants}.Renderable.Enabled'); + for _,v in pairs(list) do + openspace.setPropertyValueSingle(v, not openspace.getPropertyValue(v)) + end + ]], + Documentation = "Toggles the visibility of all trails further from the Sun than 67P", + GuiPath = "/Missions/Rosetta", + isLocal = false +} + +asset.onInitialize(function() + openspace.action.registerAction(toggle_outer_planetary_trails) +end) + +asset.onDeinitialize(function() + openspace.action.removeAction(toggle_outer_planetary_trails) +end) + +asset.meta = { + Name = "Rosetta actions", + Version = "1.0", + Description = "Actions related to the rosetta mission", + Author = "OpenSpace Team", + URL = "http://openspaceproject.com", + License = "MIT license" +} diff --git a/data/assets/scene/solarsystem/missions/rosetta/dashboard.asset b/data/assets/scene/solarsystem/missions/rosetta/dashboard.asset index 4bb458e8f0..96c087773a 100644 --- a/data/assets/scene/solarsystem/missions/rosetta/dashboard.asset +++ b/data/assets/scene/solarsystem/missions/rosetta/dashboard.asset @@ -26,7 +26,7 @@ asset.onInitialize(function() openspace.dashboard.addDashboardItem(distance) openspace.dashboard.addDashboardItem(instruments) end) - + asset.onDeinitialize(function() openspace.dashboard.removeDashboardItem(instruments) openspace.dashboard.removeDashboardItem(distance) diff --git a/data/assets/scene/solarsystem/missions/rosetta/rosetta.asset b/data/assets/scene/solarsystem/missions/rosetta/rosetta.asset index 6b9280501a..e0fa4248cf 100644 --- a/data/assets/scene/solarsystem/missions/rosetta/rosetta.asset +++ b/data/assets/scene/solarsystem/missions/rosetta/rosetta.asset @@ -2,7 +2,6 @@ local sun = asset.require("scene/solarsystem/sun/sun") local sunTransforms = asset.require("scene/solarsystem/sun/transforms") local transforms = asset.require("./67p") - local models = asset.syncedResource({ Name = "Rosetta Models", Type = "HttpSynchronization", @@ -28,7 +27,7 @@ local RosettaKernels = { 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", @@ -38,7 +37,7 @@ local RosettaKernels = { kernels .. "ROS_STRUCT_V5.BSP", kernels .. "ROS_NAVCAM_V01.TI", - + kernels .. "ROS_CHURYUMOV_V01.TF", kernels .. "ROS_V26.TF", @@ -81,7 +80,7 @@ local Rosetta = { Target = "ROSETTA", Observer = "SSB", Kernels = RosettaKernels - }, + }, Rotation = { Type = "SpiceRotation", SourceFrame = "ROS_SPACECRAFT", @@ -556,13 +555,70 @@ local nodes = { PhilaeTrail } +-- actions +local focus_rosetta = { + Identifier = "os.missions.rosetta.focus", + Name = "Focus on Rosetta", + Command = [[ + openspace.setPropertyValue('NavigationHandler.OrbitalNavigator.Anchor', 'Rosetta'); + openspace.setPropertyValue('NavigationHandler.OrbitalNavigator.Aim', ''); + openspace.setPropertyValue('NavigationHandler.OrbitalNavigator.RetargetAnchor', nil); + ]], + Documentation = "Sets the focus of the camera on Rosetta", + GuiPath = "/Missions/Rosetta", + isLocal = false +} + +local setup_lander_release_time = { + Identifier = "os.missions.rosetta.setup.landerrelease", + Name = "Set lander release time", + Command = [[ + openspace.time.setTime('2014-11-12T08:20:00.00'); + ]], + Documentation = "Jumps to the time when the Philae lander is released", + GuiPath = "/Missions/Rosetta", + isLocal = false +} + +local toggle_image_plane = { + Identifier = "os.missions.rosetta.toggleimageplane", + Name = "Toggle image plane", + Command = [[ + openspace.setPropertyValueSingle('Scene.ImagePlaneRosetta.Renderable.Enabled', not openspace.getPropertyValue('Scene.ImagePlaneRosetta.Renderable.Enabled')); + ]], + Documentation = "Toggles the visibility of the free floating image plane", + GuiPath = "/Missions/Rosetta", + isLocal = false +} + +local toggle_philae_trail = { + Identifier = "os.mission.rosetta.togglephilaetrail", + Name = "Toggle Philae trail", + Command = [[ + openspace.setPropertyValueSingle('Scene.PhilaeTrail.Renderable.Enabled', not openspace.getPropertyValue('Scene.PhilaeTrail.Renderable.Enabled')); + ]], + Documentation = "Toggles the visibility of Philae's trail", + GuiPath = "/Missions/Rosetta", + isLocal = false +} + asset.onInitialize(function () - for i, node in ipairs(nodes) do + for _, node in ipairs(nodes) do openspace.addSceneGraphNode(node) end + + openspace.action.registerAction(focus_rosetta) + openspace.action.registerAction(setup_lander_release_time) + openspace.action.registerAction(toggle_image_plane) + openspace.action.registerAction(toggle_philae_trail) end) asset.onDeinitialize(function () + openspace.action.removeAction(toggle_philae_trail) + openspace.action.removeAction(toggle_image_plane) + openspace.action.removeAction(setup_lander_release_time) + openspace.action.removeAction(focus_rosetta) + for i = #nodes, 1, -1 do openspace.removeSceneGraphNode(nodes[i]) end diff --git a/data/assets/scene/solarsystem/missions/voyager/actions.asset b/data/assets/scene/solarsystem/missions/voyager/actions.asset new file mode 100644 index 0000000000..2a061362b7 --- /dev/null +++ b/data/assets/scene/solarsystem/missions/voyager/actions.asset @@ -0,0 +1,86 @@ +local jupiter_approach = { + Identifier = "os.missions.voyager.setup.jupiterapproach", + Name = "Set Jupiter Approach", + Command = [[ + openspace.time.setTime('1979-01-20T01:32:07.914') + ]], + Documentation = "Sets the time for Voyager's approach to Jupiter", + GuiPath = "/Missions/Voyager", + isLocal = false +} + +local saturn_approach = { + Identifier = "os.missions.voyager.setup.saturnapproach", + Name = "Set Saturn Approach", + Command = [[ + openspace.time.setTime('1980-10-20T07:43:42.645'); + ]], + Documentation = "Sets the time for Voyager's approach to Saturn", + GuiPath = "/Missions/Voyager", + isLocal = false +} + +local focus_jupiter = { + Identifier = "os.missions.voyager.jupiter.focus", + Name = "Focus on Jupiter", + Command = [[ + openspace.setPropertyValueSingle('NavigationHandler.OrbitalNavigator.RetargetAnchor', nil); + openspace.setPropertyValueSingle('NavigationHandler.OrbitalNavigator.Anchor', 'Jupiter'); + openspace.setPropertyValueSingle('NavigationHandler.OrbitalNavigator.Aim', ''); + ]], + Documentation = "Set the camera focus to Jupiter", + GuiPath = "/Missions/Voyager", + isLocal = false +} + +local focus_saturn = { + Identifier = "os.missions.voyager.saturn.focus", + Name = "Focus on Saturn", + Command = [[ + openspace.setPropertyValueSingle('NavigationHandler.OrbitalNavigator.RetargetAnchor', nil); + openspace.setPropertyValueSingle('NavigationHandler.OrbitalNavigator.Anchor', 'Saturn'); + openspace.setPropertyValueSingle('NavigationHandler.OrbitalNavigator.Aim', ''); + ]], + Documentation = "Sets the camera focus on Saturn", + GuiPath = "/Missions/Voyager", + isLocal = false +} + +local toggle_minormoon_trails = { + Identifier = "os.missions.voyager.toggleminormoontrails", + Name = "Toggle minor trails", + Command = [[ + local list = openspace.getProperty('{moonTrail_minor}.Renderable.Enabled'); + for _,v in pairs(list) do + openspace.setPropertyValueSingle(v, not openspace.getPropertyValue(v)) + end + ]], + Documentation = "Toggles the trails of the minor moons", + GuiPath = "/Trails", + isLocal = false +} + +asset.onInitialize(function() + openspace.action.registerAction(jupiter_approach) + openspace.action.registerAction(saturn_approach) + openspace.action.registerAction(focus_jupiter) + openspace.action.registerAction(focus_saturn) + openspace.action.registerAction(toggle_minormoon_trails) +end) + +asset.onDeinitialize(function() + openspace.action.removeAction(toggle_minormoon_trails) + openspace.action.removeAction(focus_saturn) + openspace.action.removeAction(focus_jupiter) + openspace.action.removeAction(saturn_approach) + openspace.action.removeAction(jupiter_approach) +end) + +asset.meta = { + Name = "Voyager Actions", + Version = "1.0", + Description = "Actions related to the Voyager 1 and 2 missions", + Author = "OpenSpace Team", + URL = "http://openspaceproject.com", + License = "MIT license" +} diff --git a/data/assets/scene/solarsystem/missions/voyager/dashboard.asset b/data/assets/scene/solarsystem/missions/voyager/dashboard.asset index be4e9c3b51..ae99e94d5b 100644 --- a/data/assets/scene/solarsystem/missions/voyager/dashboard.asset +++ b/data/assets/scene/solarsystem/missions/voyager/dashboard.asset @@ -22,7 +22,7 @@ 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) diff --git a/data/assets/scene/solarsystem/missions/voyager/voyager1.asset b/data/assets/scene/solarsystem/missions/voyager/voyager1.asset index 768a42bcfb..4fb122d45a 100644 --- a/data/assets/scene/solarsystem/missions/voyager/voyager1.asset +++ b/data/assets/scene/solarsystem/missions/voyager/voyager1.asset @@ -211,8 +211,8 @@ local VoyagerTrailCruiseSaturnInf = { EnableFade = false, Color = { 0.70, 0.50, 0.20 }, StartTime = "1980 NOV 16", - EndTime = "2021 JAN 01", - SampleInterval = 14656 * 2 -- 14656 is the number of days between the Start and End time + EndTime = "2300 JAN 01", + SampleInterval = 116558 * 2 -- 116558 is the number of days between the Start and End time }, GUI = { Name = "Voyager 1 Trail Cruise Saturn-Inf", @@ -231,13 +231,34 @@ local nodes = { VoyagerTrailCruiseSaturnInf } +-- Actions + +local focus_voyager1 = { + Identifier = "os.missions.voyager.v1.focus", + Name = "Focus on Voyager 1", + Command = [[ + openspace.setPropertyValueSingle('NavigationHandler.OrbitalNavigator.RetargetAnchor', nil); + openspace.setPropertyValueSingle('NavigationHandler.OrbitalNavigator.Anchor', 'Voyager_1'); + openspace.setPropertyValueSingle('NavigationHandler.OrbitalNavigator.Aim', '') + ]], + Documentation = "Set camera focus to Voyager 1", + GuiPath = "/Missions/Voyager", + isLocal = false +} + +-- Initialize + asset.onInitialize(function() for i, node in ipairs(nodes) do openspace.addSceneGraphNode(node) end + + openspace.action.registerAction(focus_voyager1) end) - + asset.onDeinitialize(function() + openspace.action.removeAction(focus_voyager1) + for i = #nodes, 1, -1 do openspace.removeSceneGraphNode(nodes[i]) end diff --git a/data/assets/scene/solarsystem/missions/voyager/voyager2.asset b/data/assets/scene/solarsystem/missions/voyager/voyager2.asset index e90d726106..46ba813ab6 100644 --- a/data/assets/scene/solarsystem/missions/voyager/voyager2.asset +++ b/data/assets/scene/solarsystem/missions/voyager/voyager2.asset @@ -307,8 +307,8 @@ local VoyagerTrailCruiseNeptuneInf = { EnableFade = false, Color = { 0.70, 0.50, 0.20 }, StartTime = "1989 AUG 26", - EndTime = "2021 JAN 01", - SampleInterval = 11451 * 2 -- 11451 is the number of days between the Start and End time + EndTime = "2300 JAN 01", + SampleInterval = 113353 * 2 -- 113353 is the number of days between the Start and End time }, GUI = { Name = "Voyager 2 Trail Cruise Neptune-Inf", @@ -331,16 +331,38 @@ local nodes = { VoyagerTrailCruiseNeptuneInf } + +-- Actions + +local focus_voyager2 = { + Identifier = "os.missions.voyager.v2.focus", + Name = "Focus on Voyager 2", + Command = [[ + openspace.setPropertyValueSingle('NavigationHandler.OrbitalNavigator.RetargetAnchor', nil); + openspace.setPropertyValueSingle('NavigationHandler.OrbitalNavigator.Anchor', 'Voyager_2'); + openspace.setPropertyValueSingle('NavigationHandler.OrbitalNavigator.Aim', '') + ]], + Documentation = "Set camera focus to Voyager 2", + GuiPath = "/Missions/Voyager", + isLocal = false +} + +-- Initialize + asset.onInitialize(function() for i, node in ipairs(nodes) do openspace.addSceneGraphNode(node) end + + openspace.action.registerAction(focus_voyager2) end) - + asset.onDeinitialize(function() for i = #nodes, 1, -1 do openspace.removeSceneGraphNode(nodes[i]) end + + openspace.action.removeAction(focus_voyager2) end) for i, node in ipairs(nodes) do 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 f4ede21e72..ee21045e91 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 @@ -140,14 +140,14 @@ asset.onInitialize(function() 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) diff --git a/data/assets/scene/solarsystem/planets/earth/atmosphere.asset b/data/assets/scene/solarsystem/planets/earth/atmosphere.asset index 3d9de9330c..9b6b7561d4 100644 --- a/data/assets/scene/solarsystem/planets/earth/atmosphere.asset +++ b/data/assets/scene/solarsystem/planets/earth/atmosphere.asset @@ -1,5 +1,6 @@ local transforms = asset.require("./earth") - +asset.require("scene/solarsystem/sun/sun") +asset.require("./moon/moon") -- local earthEllipsoid = { 6378137.0, 6378137.0, 6356752.314245 } @@ -29,7 +30,7 @@ local Atmosphere = { --[[ Ozone = { Coefficients = { - -- Extinction coefficients + -- Extinction coefficients Extinction = {3.426, 8.298, 0.356} }, H_O = 8.0, @@ -91,11 +92,11 @@ local Atmosphere = { asset.onInitialize(function() openspace.addSceneGraphNode(Atmosphere) end) - + asset.onDeinitialize(function() openspace.removeSceneGraphNode(Atmosphere) end) - + asset.export(Atmosphere) diff --git a/data/assets/scene/solarsystem/planets/earth/default_layers.asset b/data/assets/scene/solarsystem/planets/earth/default_layers.asset index a9ce0a5e6d..812ff4446f 100644 --- a/data/assets/scene/solarsystem/planets/earth/default_layers.asset +++ b/data/assets/scene/solarsystem/planets/earth/default_layers.asset @@ -1,16 +1,14 @@ -- Color layers asset.require("./layers/colorlayers/blue_marble", false) asset.require("./layers/colorlayers/esri_viirs_combo", true) -asset.require("./layers/colorlayers/esri_world_imagery", false) -asset.require("./layers/colorlayers/esri_imagery_world_2D", false) +asset.require("./layers/colorlayers/esri_world_imagery", false) asset.require("./layers/colorlayers/viirs_snpp_temporal", false) asset.require("./layers/colorlayers/aqua_modis_temporal", false) asset.require("./layers/colorlayers/terra_modis_temporal", false) asset.require("./layers/colorlayers/bmng_utah", false) asset.require("./layers/colorlayers/bmng_sweden", false) -asset.require("./layers/colorlayers/amsr2_gcom_w1_sea_ice_concentration_temporal", false) +asset.require("./layers/colorlayers/amsr2_gcom_w1_sea_ice_concentration_temporal", false) asset.require("./layers/colorlayers/modis_terra_chlorophyll_a_temporal", false) -asset.require("./layers/colorlayers/ghrsst_l4_g1sst_sea_surface_temperature_temporal", false) asset.require("./layers/colorlayers/ghrsst_l4_mur_sea_surface_temperature_temporal", false) -- Height layers diff --git a/data/assets/scene/solarsystem/planets/earth/earth.asset b/data/assets/scene/solarsystem/planets/earth/earth.asset index bf366bd6ef..70cf21bfd3 100644 --- a/data/assets/scene/solarsystem/planets/earth/earth.asset +++ b/data/assets/scene/solarsystem/planets/earth/earth.asset @@ -56,14 +56,14 @@ local EarthLabel = { Type = "RenderableLabel", Text = "Earth", FontSize = 70.0, - Size = 8.77, - MinMaxSize = { 1, 100 }, + Size = 8.50, + MinMaxSize = { 1, 50 }, OrientationOption = "Camera View Direction", BlendMode = "Additive", EnableFading = true, FadeUnit = "au", - FadeDistances = { 1.5, 15.0 }, - FadeWidths = { 1.0, 25.0 } + FadeDistances = { 1.5, 30.0 }, + FadeWidths = { 1.0, 40.0 } }, Tag = { "solarsystem_labels" }, GUI = { @@ -73,16 +73,49 @@ local EarthLabel = { } } +local focus_earth = { + Identifier = "os.solarsystem.earth.focus", + Name = "Focus on Earth", + Command = [[ + openspace.setPropertyValueSingle('NavigationHandler.OrbitalNavigator.Aim', ''); + openspace.setPropertyValueSingle('NavigationHandler.OrbitalNavigator.Anchor', 'Earth'); + openspace.setPropertyValueSingle('NavigationHandler.OrbitalNavigator.RetargetAnchor', nil); + ]], + Documentation = "Set camera focus on the Earth", + GuiPath = "/Solar System/Earth", + isLocal = false +} + +local toggle_earth_satellitetrails = { + Identifier = "os.solarsystem.earth.togglesatellitetrails", + Name = "Toggle satellite trails", + Command = [[ + local list = openspace.getProperty('{earth_satellites}.Renderable.Enabled'); + for _,v in pairs(list) do + openspace.setPropertyValueSingle(v, not openspace.getPropertyValue(v)) + end + ]], + Documentation = "Toggle trails on or off for satellites around Earth", + GuiPath = "/Solar System/Earth", + isLocal = false +} + asset.onInitialize(function() openspace.addSceneGraphNode(Earth) openspace.addSceneGraphNode(EarthLabel) + + openspace.action.registerAction(focus_earth) + openspace.action.registerAction(toggle_earth_satellitetrails) end) - + asset.onDeinitialize(function() + openspace.action.removeAction(toggle_earth_satellitetrails) + openspace.action.removeAction(focus_earth) + openspace.removeSceneGraphNode(EarthLabel) openspace.removeSceneGraphNode(Earth) end) - + asset.export(Earth) asset.export(EarthLabel) @@ -90,7 +123,7 @@ asset.export(EarthLabel) asset.meta = { Name = "Earth", - Version = "1.0", + Version = "1.1", Description = "Earth is a special planet with special needs", Author = "OpenSpace Team", URL = "http://openspaceproject.com", diff --git a/data/assets/scene/solarsystem/planets/earth/grids.asset b/data/assets/scene/solarsystem/planets/earth/grids.asset new file mode 100644 index 0000000000..5ad7739003 --- /dev/null +++ b/data/assets/scene/solarsystem/planets/earth/grids.asset @@ -0,0 +1,88 @@ +local transforms = asset.require("./transforms") + +local eclipticRotationMatrix = { + -0.05487554, 0.4941095, -0.8676661, + -0.9938214 , -0.1109906, -0.0003515167, + -0.09647644, 0.8622859, 0.4971472 +} + +local lightSecond = 299792458 +local lightMinute = 1.798754748E10 + +local plane1lsec = { + Identifier = "1lsecGrid", + Transform = { + Rotation = { + Type = "StaticRotation", + Rotation = eclipticRotationMatrix + }, + Translation = { + Type = "SpiceTranslation", + Target = "EARTH BARYCENTER", + Observer = "SSB" + } + }, + Renderable = { + Type = "RenderableGrid", + Enabled = false, + Opacity = 0.4, + Color = { 0.1, 0.5, 0.6 }, + LineWidth = 2.0, + Segments = { 20, 20 }, + Size = { 2*lightSecond, 2*lightSecond } + }, + GUI = { + Name = "1lsec Grid", + Path = "/Solar System/Planets/Earth" + } +} + +local plane1lmin = { + Identifier = "1lminGrid", + Transform = { + Rotation = { + Type = "StaticRotation", + Rotation = eclipticRotationMatrix + }, + Translation = { + Type = "SpiceTranslation", + Target = "EARTH BARYCENTER", + Observer = "SSB" + } + }, + Renderable = { + Type = "RenderableGrid", + Enabled = false, + Opacity = 0.4, + Color = { 0.1, 0.5, 0.6 }, + LineWidth = 2.0, + Segments = { 20, 20 }, + Size = { 2*lightMinute, 2*lightMinute } + }, + GUI = { + Name = "1lmin Grid", + Path = "/Solar System/Planets/Earth" + } +} + +asset.onInitialize(function() + openspace.addSceneGraphNode(plane1lsec) + openspace.addSceneGraphNode(plane1lmin) +end) + +asset.onDeinitialize(function() + openspace.removeSceneGraphNode(plane1lmin) + openspace.removeSceneGraphNode(plane1lsec) +end) + +asset.export(plane1lsec) +asset.export(plane1lmin) + + +asset.meta = { + Name = "Earth Grid", + Version = "1.0", + Description = [[Grids that are useful to show distances around Earth]], + Author = "OpenSpace Team", + 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 9f97bb8603..bae8099049 100644 --- a/data/assets/scene/solarsystem/planets/earth/lagrange_points/L2.asset +++ b/data/assets/scene/solarsystem/planets/earth/lagrange_points/L2.asset @@ -1,4 +1,5 @@ local transforms = asset.require("scene/solarsystem/sun/transforms") +asset.require("scene/solarsystem/sun/sun") asset.require("spice/base") local circle = asset.syncedResource({ 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 997e418a9c..b73afa9394 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 @@ -17,7 +17,7 @@ local layer = { "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 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 b0b496bc6b..fe6f496e4f 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 @@ -25,7 +25,7 @@ local layer = { The images are natural-looking images of land surface, oceanic and atmospheric features. The downside of this set of bands is that they tend to produce a hazy image. The MODIS Corrected Reflectance imagery is available only as near real-time imagery. - The imagery can be visualized in Worldview and the Global Imagery Browse Services + The imagery can be visualized in Worldview and the Global Imagery Browse Services (GIBS). The sensor resolution is 500 m and 250 m (Bands 1 and 2 have a sensor resolution of 250 m, Bands 3 - 7 have a sensor resolution of 500m, and Bands 8 - 36 are 1 km. Band 1 is used to sharpen Band 3, 4, 6, and 7), imagery resolution is 250 m, 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 184dbf880a..417cde22c1 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 @@ -6,7 +6,7 @@ local layer = { Enabled = asset.enabled, 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]], + is hosted on the OpenSpace servers in Utah]], } asset.onInitialize(function() 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 deleted file mode 100644 index 4fca4e1ccc..0000000000 --- a/data/assets/scene/solarsystem/planets/earth/layers/colorlayers/esri_imagery_world_2D.asset +++ /dev/null @@ -1,38 +0,0 @@ -local globeIdentifier = asset.require("../../earth").Earth.Identifier - -local layer = { - Identifier = "ESRI_Imagery_World_2D", - Name = "ESRI Imagery World 2D", - Enabled = asset.enabled, - 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 - imagery at small scales (above 1:1,000,000), i-cubed 15m eSAT imagery at - medium-to-large scales (down to 1:70,000) for the world, and USGS 15m Landsat - imagery for Antarctica. It also includes 1m i-cubed Nationwide Select imagery for - the continental United States, and GeoEye IKONOS 1m resolution imagery for Hawaii, - parts of Alaska, and several hundred metropolitan areas around the world. - (Description from URL)]], -} - -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.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" -} diff --git a/data/assets/scene/solarsystem/planets/earth/layers/colorlayers/esri_imagery_world_2D.wms b/data/assets/scene/solarsystem/planets/earth/layers/colorlayers/esri_imagery_world_2D.wms deleted file mode 100644 index ed9f9b6905..0000000000 --- a/data/assets/scene/solarsystem/planets/earth/layers/colorlayers/esri_imagery_world_2D.wms +++ /dev/null @@ -1,17 +0,0 @@ - - - http://services.arcgisonline.com/ArcGIS/rest/services/ESRI_Imagery_World_2D/MapServer/tile/${z}/${y}/${x} - - - 15 - 2 - 1 - top - - EPSG:4326 - 512 - 512 - 3 - 5 - 5 - 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 deleted file mode 100644 index 9bd2aba398..0000000000 --- a/data/assets/scene/solarsystem/planets/earth/layers/colorlayers/ghrsst_l4_g1sst_sea_surface_temperature_temporal.asset +++ /dev/null @@ -1,46 +0,0 @@ -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)", - Enabled = asset.enabled, - Type = "TemporalTileLayer", - 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() - 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.1", - Description = "GIBS hosted layer", - 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/layers/colorlayers/terra_texture_spout.asset b/data/assets/scene/solarsystem/planets/earth/layers/colorlayers/terra_texture_spout.asset index a565e71d4f..824efe53dc 100644 --- a/data/assets/scene/solarsystem/planets/earth/layers/colorlayers/terra_texture_spout.asset +++ b/data/assets/scene/solarsystem/planets/earth/layers/colorlayers/terra_texture_spout.asset @@ -7,7 +7,7 @@ local layer = { Type = "SpoutImageTileLayer" } -asset.onInitialize(function () +asset.onInitialize(function () openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer) end) diff --git a/data/assets/scene/solarsystem/planets/earth/markers.asset b/data/assets/scene/solarsystem/planets/earth/markers.asset index ce7527babf..941bea2224 100644 --- a/data/assets/scene/solarsystem/planets/earth/markers.asset +++ b/data/assets/scene/solarsystem/planets/earth/markers.asset @@ -29,11 +29,11 @@ local EarthMarker = { asset.onInitialize(function() openspace.addSceneGraphNode(EarthMarker) end) - + asset.onDeinitialize(function() openspace.removeSceneGraphNode(EarthMarker) end) - + asset.export(EarthMarker) 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 baa85036c7..71b36d42a1 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 @@ -9,9 +9,9 @@ local layer = { 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). + 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)]] } @@ -30,7 +30,7 @@ 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 + 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", 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 1ac65f4c7f..3821b0d9cf 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 @@ -9,9 +9,9 @@ local layer = { 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). + 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)]] } 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 bee0495f21..18685fa6f8 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 @@ -9,8 +9,8 @@ local layer = { 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 + 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]] } 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 15c9fa3413..0a902859fe 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 @@ -9,8 +9,8 @@ local layer = { 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 + 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]] } 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 6c0599dc0c..6abc3a7443 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 @@ -4,13 +4,13 @@ local layer = { Identifier = "Lola_Clr_Shade_Sweden", Name = "LRO LOLA Color Shaded Relief 388m v4 [Sweden]", Enabled = asset.enabled, - 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 + 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") } @@ -30,7 +30,7 @@ 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 + 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", 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 2444a38eb7..0c6c6281eb 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 @@ -4,13 +4,13 @@ local layer = { Identifier = "Lola_Clr_Shade_Utah", Name = "LRO LOLA Color Shaded Relief 388m v4 [Utah]", Enabled = asset.enabled, - 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 + 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") } 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 b7b44db40a..0388e805ef 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 @@ -4,13 +4,13 @@ local layer = { Identifier = "Lola_Shade_Sweden", Name = "Lola Shade [Sweden]", Enabled = asset.enabled, - 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 + 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") } @@ -30,7 +30,7 @@ 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 + 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", 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 a36ede57a7..4465f5069b 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 @@ -4,13 +4,13 @@ local layer = { Identifier = "Lola_Shade_Utah", Name = "Lola Shade [Utah]", Enabled = asset.enabled, - 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 + 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") } @@ -31,7 +31,7 @@ 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 + 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", 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 574a39a18a..44e94194ed 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 @@ -9,8 +9,8 @@ local layer = { 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 + 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 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 daab96416e..0bdb0417dd 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 @@ -9,8 +9,8 @@ local layer = { 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 + 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 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 026c6db942..116e382fa5 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 @@ -7,11 +7,11 @@ local layer = { FilePath = asset.localResource("loladem_utah.wms"), TilePixelSize = 64, 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 + 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)]] } diff --git a/data/assets/scene/solarsystem/planets/earth/moon/moon.asset b/data/assets/scene/solarsystem/planets/earth/moon/moon.asset index 0d95c5f7d0..3a6c45e3c6 100644 --- a/data/assets/scene/solarsystem/planets/earth/moon/moon.asset +++ b/data/assets/scene/solarsystem/planets/earth/moon/moon.asset @@ -37,7 +37,7 @@ local Moon = { Casters = { { Name = earthAsset.Earth.Identifier, Radius = 6.371E6 }, } - }, + }, Labels = { Enabled = false, FileName = labelsPath .. "moon.labels", @@ -56,22 +56,79 @@ local Moon = { } } +local MoonLabel = { + Identifier = "MoonLabel", + Parent = Moon.Identifier, + Renderable = { + Enabled = false, + Type = "RenderableLabel", + Text = "Moon", + FontSize = 70.0, + Size = 6.0, + MinMaxSize = { 1, 40 }, + OrientationOption = "Camera View Direction", + BlendMode = "Additive", + EnableFading = true, + FadeUnit = "Gm", + FadeDistances = { 0.4, 10.0 }, + FadeWidths = { 0.1, 10.0 } + }, + Tag = { "solarsystem_labels", "moon_labels", "major_moon_labels" }, + GUI = { + Name = "Moon Label", + Path = "/Solar System/Planets/Earth/Moon", + Description = "Label for Earth's Moon" + } +} + +local focus_moon = { + Identifier = "os.solarsystem.earth.moon.focus", + Name = "Focus on Moon", + Command = [[ + openspace.setPropertyValueSingle('NavigationHandler.OrbitalNavigator.Aim', ''); + openspace.setPropertyValueSingle('NavigationHandler.OrbitalNavigator.Anchor', 'Moon'); + openspace.setPropertyValueSingle('NavigationHandler.OrbitalNavigator.RetargetAnchor', nil); + ]], + Documentation = "Set camera focus on the Moon", + GuiPath = "/Solar System/Earth/Moon", + isLocal = false +} + +local toggle_moon_shading = { + Identifier = "os.solarsystem.earth.moon.toggleshading", + Name = "Toggle Moon shading", + Command = [[ + openspace.setPropertyValueSingle('Scene.Moon.Renderable.PerformShading', not openspace.getPropertyValue('Scene.Moon.Renderable.PerformShading')); + ]], + Documentation = "Toggles the shading of the Moon", + GuiPath = "/Solar System/Earth/Moon", + isLocal = false +} + asset.onInitialize(function() openspace.addSceneGraphNode(Moon) + openspace.addSceneGraphNode(MoonLabel) + + openspace.action.registerAction(focus_moon) + openspace.action.registerAction(toggle_moon_shading) end) - + asset.onDeinitialize(function() + openspace.action.removeAction(toggle_moon_shading) + openspace.action.removeAction(focus_moon) + + openspace.removeSceneGraphNode(MoonLabel) openspace.removeSceneGraphNode(Moon) end) - + asset.export(Moon) asset.meta = { Name = "Moon", - Version = "1.1", - Description = "Moon globe with labels", + Version = "1.2", + Description = "Moon globe with labels and actions", Author = "OpenSpace Team", URL = "http://openspaceproject.com", License = "MIT license" diff --git a/data/assets/scene/solarsystem/planets/earth/moon/trail.asset b/data/assets/scene/solarsystem/planets/earth/moon/trail.asset index d435690511..16487f9e11 100644 --- a/data/assets/scene/solarsystem/planets/earth/moon/trail.asset +++ b/data/assets/scene/solarsystem/planets/earth/moon/trail.asset @@ -27,11 +27,11 @@ local MoonTrail = { asset.onInitialize(function() openspace.addSceneGraphNode(MoonTrail) end) - + asset.onDeinitialize(function() openspace.removeSceneGraphNode(MoonTrail) end) - + asset.export(MoonTrail) 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 index f4cd453598..bb2b4858f3 100644 --- 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 @@ -19,17 +19,16 @@ local syncedDirectory = asset.syncedResource({ Name = Name, Type = "HttpSynchronization", Identifier = Identifier, - Version = 1 + Version = 1, + UnzipFiles = true }) -local imagesDestination = syncedDirectory .. "images" - local layer = { Identifier = Identifier, Name = Name, Enabled = asset.enabled, Type = "ImageSequenceTileLayer", - FolderPath = imagesDestination, + FolderPath = syncedDirectory .. "1024", Description = Description } @@ -44,13 +43,8 @@ local colorbar = { } 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); + openspace.addScreenSpaceRenderable(colorbar) end) asset.onDeinitialize(function() 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 index a4c5d0647c..f1dff71e2f 100644 --- 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 @@ -3,14 +3,14 @@ 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 +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/" @@ -19,11 +19,10 @@ local syncedDirectory = asset.syncedResource({ Name = Name, Type = "HttpSynchronization", Identifier = Identifier, - Version = 1 + Version = 1, + UnzipFiles = true }) -local imagesDestination = syncedDirectory .. "images" - local layer = { Identifier = Identifier, Name = Name, @@ -31,7 +30,7 @@ local layer = { Type = "TemporalTileLayer", Mode = "Folder", Folder = { - Folder = imagesDestination, + Folder = syncedDirectory .. "2048", -- 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" @@ -40,11 +39,6 @@ local layer = { } 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) 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 index 3cada280c0..aba44b0628 100644 --- 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 @@ -3,10 +3,10 @@ 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 +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/" @@ -15,11 +15,11 @@ local syncedDirectory = asset.syncedResource({ Name = Name, Type = "HttpSynchronization", Identifier = Identifier, - Version = 1 + Version = 1, + UnzipFiles = true, + UnzipFilesDestination = "images" }) -local imagesDestination = syncedDirectory .. "images" - local layer = { Identifier = Identifier, Name = Name, @@ -27,7 +27,7 @@ local layer = { Type = "TemporalTileLayer", Mode = "Folder", Folder = { - Folder = imagesDestination, + Folder = syncedDirectory .. "images", -- 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" @@ -36,27 +36,6 @@ local layer = { } 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) 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 index d884669b41..bc2d528355 100644 --- 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 @@ -3,10 +3,10 @@ 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 +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/" @@ -15,11 +15,10 @@ local syncedDirectory = asset.syncedResource({ Name = Name, Type = "HttpSynchronization", Identifier = Identifier, - Version = 1 + Version = 1, + UnzipFiles = true }) -local imagesDestination = syncedDirectory .. "images" - local layer = { Identifier = Identifier, Name = Name, @@ -27,7 +26,7 @@ local layer = { Type = "TemporalTileLayer", Mode = "Folder", Folder = { - Folder = imagesDestination, + Folder = syncedDirectory .. "2048", -- 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" @@ -35,12 +34,7 @@ local layer = { Description = Description } -asset.onInitialize(function() - if not openspace.directoryExists(imagesDestination) then - openspace.printInfo("Extracting " .. Name) - openspace.unzipFile(syncedDirectory .. "2048.zip", imagesDestination, true) - end - +asset.onInitialize(function() openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer) end) 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 index d66290b22a..49f291858a 100644 --- 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 @@ -3,16 +3,16 @@ 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 +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/" @@ -46,7 +46,7 @@ local layer_sat = { -- 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 } 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 index 7d1e25c850..eb241306d9 100644 --- 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 @@ -3,18 +3,18 @@ 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. +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/" @@ -23,17 +23,16 @@ local syncedDirectory = asset.syncedResource({ Name = Name, Type = "HttpSynchronization", Identifier = Identifier, - Version = 1 + Version = 1, + UnzipFiles = true }) -local imagesDestination = syncedDirectory .. "images" - local layer = { Identifier = Identifier, Name = Name, Enabled = asset.enabled, Type = "ImageSequenceTileLayer", - FolderPath = imagesDestination, + FolderPath = syncedDirectory .. "2048_png", Description = Description } @@ -47,14 +46,9 @@ local colorbar = { 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 - +asset.onInitialize(function() openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer) - openspace.addScreenSpaceRenderable(colorbar); + openspace.addScreenSpaceRenderable(colorbar) end) asset.onDeinitialize(function() 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 index 7c0fe7caaa..ecbb32888b 100644 --- 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 @@ -3,18 +3,18 @@ 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. +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/" @@ -23,17 +23,16 @@ local syncedDirectory = asset.syncedResource({ Name = Name, Type = "HttpSynchronization", Identifier = Identifier, - Version = 1 + Version = 1, + UnzipFiles = true }) -local imagesDestination = syncedDirectory .. "images" - local layer = { Identifier = Identifier, Name = Name, Enabled = asset.enabled, Type = "ImageSequenceTileLayer", - FolderPath = imagesDestination, + FolderPath = syncedDirectory .. "2048_png", Description = Description } @@ -47,14 +46,9 @@ local colorbar = { 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 - +asset.onInitialize(function() openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer) - openspace.addScreenSpaceRenderable(colorbar); + openspace.addScreenSpaceRenderable(colorbar); end) asset.onDeinitialize(function() 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 index fca8a0b080..fb664c9cf6 100644 --- 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 @@ -3,18 +3,18 @@ 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. +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/" @@ -23,17 +23,16 @@ local syncedDirectory = asset.syncedResource({ Name = Name, Type = "HttpSynchronization", Identifier = Identifier, - Version = 1 + Version = 1, + UnzipFiles = true }) -local imagesDestination = syncedDirectory .. "images" - local layer = { Identifier = Identifier, Name = Name, Enabled = asset.enabled, Type = "ImageSequenceTileLayer", - FolderPath = imagesDestination, + FolderPath = syncedDirectory .. "2048_png", Description = Description } @@ -47,14 +46,9 @@ local colorbar = { 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 - +asset.onInitialize(function() openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer) - openspace.addScreenSpaceRenderable(colorbar); + openspace.addScreenSpaceRenderable(colorbar) end) asset.onDeinitialize(function() 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 index 2b8153bd7b..ec194a78e3 100644 --- a/data/assets/scene/solarsystem/planets/earth/noaa-sos/atmosphere/airtraffic.asset +++ b/data/assets/scene/solarsystem/planets/earth/noaa-sos/atmosphere/airtraffic.asset @@ -3,13 +3,13 @@ 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 +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/" @@ -18,28 +18,21 @@ local syncedDirectory = asset.syncedResource({ Name = Name, Type = "HttpSynchronization", Identifier = Identifier, - Version = 1 + Version = 1, + UnzipFiles = true, + UnzipFilesDestination = "images" }) -local imagesDestination = syncedDirectory .. "images" - local layer = { Identifier = Identifier, Name = Name, Enabled = asset.enabled, Type = "ImageSequenceTileLayer", - FolderPath = imagesDestination, + FolderPath = syncedDirectory .. "images", 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 - +asset.onInitialize(function() openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer) end) 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 index bcf4766621..174f57e5be 100644 --- 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 @@ -3,18 +3,18 @@ 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 +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/" @@ -23,26 +23,20 @@ local syncedDirectory = asset.syncedResource({ Name = Name, Type = "HttpSynchronization", Identifier = Identifier, - Version = 1 + Version = 1, + UnzipFiles = true }) -local imagesDestination = syncedDirectory .. "images" - local layer = { Identifier = Identifier, Name = Name, Enabled = asset.enabled, Type = "ImageSequenceTileLayer", - FolderPath = imagesDestination, + FolderPath = syncedDirectory .. "2048", Description = Description } -asset.onInitialize(function() - if not openspace.directoryExists(imagesDestination) then - openspace.printInfo("Extracting " .. Name) - openspace.unzipFile(syncedDirectory .. "2048.zip", imagesDestination, true) - end - +asset.onInitialize(function() openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer) end) 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 index c393395d9d..5b80b36783 100644 --- 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 @@ -3,17 +3,17 @@ 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 +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 +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/" @@ -22,29 +22,21 @@ local syncedDirectory = asset.syncedResource({ Name = Name, Type = "HttpSynchronization", Identifier = Identifier, - Version = 1 + Version = 1, + UnzipFiles = true, + UnzipFilesDestination = "images" }) -local imagesDestination = syncedDirectory .. "images" - local layer = { Identifier = Identifier, Name = Name, Enabled = asset.enabled, Type = "ImageSequenceTileLayer", - FolderPath = imagesDestination, + FolderPath = syncedDirectory .. "images", 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 - +asset.onInitialize(function() openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer) end) 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 index c120476979..950b1daf4a 100644 --- a/data/assets/scene/solarsystem/planets/earth/noaa-sos/atmosphere/carbonflux.asset +++ b/data/assets/scene/solarsystem/planets/earth/noaa-sos/atmosphere/carbonflux.asset @@ -3,16 +3,16 @@ 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 +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/" @@ -21,26 +21,20 @@ local syncedDirectory = asset.syncedResource({ Name = Name, Type = "HttpSynchronization", Identifier = Identifier, - Version = 1 + Version = 1, + UnzipFiles = true }) -local imagesDestination = syncedDirectory .. "images" - local layer = { Identifier = Identifier, Name = Name, Enabled = asset.enabled, Type = "ImageSequenceTileLayer", - FolderPath = imagesDestination, + FolderPath = syncedDirectory .. "2160", Description = Description } -asset.onInitialize(function() - if not openspace.directoryExists(imagesDestination) then - openspace.printInfo("Extracting " .. Name) - openspace.unzipFile(syncedDirectory .. "2160.zip", imagesDestination, true) - end - +asset.onInitialize(function() openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer) end) 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 index a8369b5677..e70e81072f 100644 --- 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 @@ -3,16 +3,16 @@ 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 +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/" @@ -39,7 +39,7 @@ local layer_field = { -- 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 } @@ -53,7 +53,7 @@ local layer_obs = { -- 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 } @@ -68,7 +68,7 @@ local colorbar = { CartesianPosition = { 0.0, -0.5, -2.0 } } -asset.onInitialize(function() +asset.onInitialize(function() if not openspace.directoryExists(fieldDestination) then openspace.printInfo("Extracting " .. Name) openspace.unzipFile(syncedDirectory .. "field-1.zip", fieldDestination, true) @@ -85,10 +85,10 @@ asset.onInitialize(function() 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); + openspace.addScreenSpaceRenderable(colorbar) end) asset.onDeinitialize(function() 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 index 8ce27bd93f..74868afb25 100644 --- 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 @@ -3,16 +3,16 @@ 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 +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/" @@ -38,7 +38,7 @@ local layer_field = { -- 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 } @@ -52,7 +52,7 @@ local layer_obs = { -- 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 } @@ -67,7 +67,7 @@ local colorbar = { CartesianPosition = { 0.0, -0.5, -2.0 } } -asset.onInitialize(function() +asset.onInitialize(function() if not openspace.directoryExists(fieldDestination) then openspace.printInfo("Extracting " .. Name) openspace.unzipFile(syncedDirectory .. "field-1.zip", fieldDestination, true) @@ -86,10 +86,10 @@ asset.onInitialize(function() 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); + openspace.addScreenSpaceRenderable(colorbar) end) asset.onDeinitialize(function() 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 index e6aa2736d7..0fe0bab2e6 100644 --- 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 @@ -3,19 +3,19 @@ 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 +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/" @@ -65,12 +65,12 @@ local colorbar = { } -asset.onInitialize(function() +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); + openspace.addScreenSpaceRenderable(colorbar) end) asset.onDeinitialize(function() 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 index 30504799fe..ec79ecde4f 100644 --- 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 @@ -3,17 +3,17 @@ 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 +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/" @@ -22,11 +22,11 @@ local syncedDirectory = asset.syncedResource({ Name = Name, Type = "HttpSynchronization", Identifier = Identifier, - Version = 1 + Version = 1, + UnzipFiles = true, + UnzipFilesDestination = "images" }) -local imagesDestination = syncedDirectory .. "images" - local layer = { Identifier = Identifier, Name = Name, @@ -34,11 +34,11 @@ local layer = { Type = "TemporalTileLayer", Mode = "Folder", Folder = { - Folder = imagesDestination, + Folder = syncedDirectory .. "images", -- 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 } @@ -53,19 +53,9 @@ local colorbar = { 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 - +asset.onInitialize(function() openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer) - openspace.addScreenSpaceRenderable(colorbar); + openspace.addScreenSpaceRenderable(colorbar) end) asset.onDeinitialize(function() 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 index 703b3f4f64..4114ccf02a 100644 --- 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 @@ -3,13 +3,13 @@ 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 +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/" @@ -18,17 +18,16 @@ local syncedDirectory = asset.syncedResource({ Name = Name, Type = "HttpSynchronization", Identifier = Identifier, - Version = 1 + Version = 1, + UnzipFiles = true }) -local imagesDestination = syncedDirectory .. "images" - local layer = { Identifier = Identifier, Name = Name, Enabled = asset.enabled, Type = "ImageSequenceTileLayer", - FolderPath = imagesDestination, + FolderPath = syncedDirectory .. "composite", Description = Description } @@ -42,14 +41,9 @@ local colorbar = { 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 - +asset.onInitialize(function() openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer) - openspace.addScreenSpaceRenderable(colorbar); + openspace.addScreenSpaceRenderable(colorbar) end) asset.onDeinitialize(function() 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 index aa7669fcbf..3af8fcc1f5 100644 --- 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 @@ -3,20 +3,20 @@ 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 +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/" @@ -25,11 +25,10 @@ local syncedDirectory = asset.syncedResource({ Name = Name, Type = "HttpSynchronization", Identifier = Identifier, - Version = 1 + Version = 1, + UnzipFiles = true }) -local imagesDestination = syncedDirectory .. "images" - local layer = { Identifier = Identifier, Name = Name, @@ -37,11 +36,11 @@ local layer = { Type = "TemporalTileLayer", Mode = "Folder", Folder = { - Folder = imagesDestination, + Folder = syncedDirectory .. "3100", -- 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 } @@ -55,14 +54,9 @@ local colorbar = { 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 - +asset.onInitialize(function() openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer) - openspace.addScreenSpaceRenderable(colorbar); + openspace.addScreenSpaceRenderable(colorbar) end) asset.onDeinitialize(function() 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 index 7d66b7defb..93b5c48b1d 100644 --- a/data/assets/scene/solarsystem/planets/earth/noaa-sos/atmosphere/fukushima.asset +++ b/data/assets/scene/solarsystem/planets/earth/noaa-sos/atmosphere/fukushima.asset @@ -3,12 +3,12 @@ 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 +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/" @@ -17,17 +17,16 @@ local syncedDirectory = asset.syncedResource({ Name = Name, Type = "HttpSynchronization", Identifier = Identifier, - Version = 1 + Version = 1, + UnzipFiles = true }) -local imagesDestination = syncedDirectory .. "images" - local layer = { Identifier = Identifier, Name = Name, Enabled = asset.enabled, Type = "ImageSequenceTileLayer", - FolderPath = imagesDestination, + FolderPath = syncedDirectory .. "2054", Description = Description } @@ -41,14 +40,9 @@ local colorbar = { 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 - +asset.onInitialize(function() openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer) - openspace.addScreenSpaceRenderable(colorbar); + openspace.addScreenSpaceRenderable(colorbar) end) asset.onDeinitialize(function() 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 index 106172467b..ea649d5083 100644 --- 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 @@ -3,16 +3,16 @@ 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 +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/" @@ -21,26 +21,20 @@ local syncedDirectory = asset.syncedResource({ Name = Name, Type = "HttpSynchronization", Identifier = Identifier, - Version = 1 + Version = 1, + UnzipFiles = true }) -local imagesDestination = syncedDirectory .. "images" - local layer = { Identifier = Identifier, Name = Name, Enabled = asset.enabled, Type = "ImageSequenceTileLayer", - FolderPath = imagesDestination, + FolderPath = syncedDirectory .. "2048", Description = Description } -asset.onInitialize(function() - if not openspace.directoryExists(imagesDestination) then - openspace.printInfo("Extracting " .. Name) - openspace.unzipFile(syncedDirectory .. "2048.zip", imagesDestination, true) - end - +asset.onInitialize(function() openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer) end) 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 index 20ef2ba553..a85e3ac642 100644 --- 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 @@ -3,16 +3,16 @@ 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 +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/" @@ -21,26 +21,20 @@ local syncedDirectory = asset.syncedResource({ Name = Name, Type = "HttpSynchronization", Identifier = Identifier, - Version = 1 + Version = 1, + UnzipFiles = true }) -local imagesDestination = syncedDirectory .. "images" - local layer = { Identifier = Identifier, Name = Name, Enabled = asset.enabled, Type = "ImageSequenceTileLayer", - FolderPath = imagesDestination, + FolderPath = syncedDirectory .. "2048", Description = Description } -asset.onInitialize(function() - if not openspace.directoryExists(imagesDestination) then - openspace.printInfo("Extracting " .. Name) - openspace.unzipFile(syncedDirectory .. "2048.zip", imagesDestination, true) - end - +asset.onInitialize(function() openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer) end) 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 index b9f31c68a1..d79df07034 100644 --- 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 @@ -3,9 +3,9 @@ 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, +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/" @@ -14,17 +14,16 @@ local syncedDirectory = asset.syncedResource({ Name = Name, Type = "HttpSynchronization", Identifier = Identifier, - Version = 1 + Version = 1, + UnzipFiles = true }) -local imagesDestination = syncedDirectory .. "images" - local layer = { Identifier = Identifier, Name = Name, Enabled = asset.enabled, Type = "ImageSequenceTileLayer", - FolderPath = imagesDestination, + FolderPath = syncedDirectory .. "2012", Description = Description } @@ -38,14 +37,9 @@ local colorbar = { 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 - +asset.onInitialize(function() openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer) - openspace.addScreenSpaceRenderable(colorbar); + openspace.addScreenSpaceRenderable(colorbar) end) asset.onDeinitialize(function() 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 index 643337276c..1850480c67 100644 --- 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 @@ -3,12 +3,12 @@ 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 +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/" @@ -17,11 +17,10 @@ local syncedDirectory = asset.syncedResource({ Name = Name, Type = "HttpSynchronization", Identifier = Identifier, - Version = 1 + Version = 1, + UnzipFiles = true }) -local imagesDestination = syncedDirectory .. "images" - local layer = { Identifier = Identifier, Name = Name, @@ -29,11 +28,11 @@ local layer = { Type = "TemporalTileLayer", Mode = "Folder", Folder = { - Folder = imagesDestination, + Folder = syncedDirectory .. "1440", -- 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 } @@ -48,14 +47,9 @@ local colorbar = { 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 - +asset.onInitialize(function() openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer) - openspace.addScreenSpaceRenderable(colorbar); + openspace.addScreenSpaceRenderable(colorbar) end) asset.onDeinitialize(function() 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 index 775926289b..8bc1159d17 100644 --- 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 @@ -3,12 +3,12 @@ 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 +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/" @@ -17,11 +17,10 @@ local syncedDirectory = asset.syncedResource({ Name = Name, Type = "HttpSynchronization", Identifier = Identifier, - Version = 1 + Version = 1, + UnzipFiles = true }) -local imagesDestination = syncedDirectory .. "images" - local layer = { Identifier = Identifier, Name = Name, @@ -29,11 +28,11 @@ local layer = { Type = "TemporalTileLayer", Mode = "Folder", Folder = { - Folder = imagesDestination, + Folder = syncedDirectory .. "1440", -- 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 } @@ -48,14 +47,9 @@ local colorbar = { 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 - +asset.onInitialize(function() openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer) - openspace.addScreenSpaceRenderable(colorbar); + openspace.addScreenSpaceRenderable(colorbar) end) asset.onDeinitialize(function() 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 index 7e2628e16e..54bb95eaaa 100644 --- 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 @@ -3,12 +3,12 @@ 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 +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/" @@ -17,11 +17,10 @@ local syncedDirectory = asset.syncedResource({ Name = Name, Type = "HttpSynchronization", Identifier = Identifier, - Version = 1 + Version = 1, + UnzipFiles = true }) -local imagesDestination = syncedDirectory .. "images" - local layer = { Identifier = Identifier, Name = Name, @@ -29,11 +28,11 @@ local layer = { Type = "TemporalTileLayer", Mode = "Folder", Folder = { - Folder = imagesDestination, + Folder = syncedDirectory .. "4096", -- 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 } @@ -56,15 +55,10 @@ local colorbar_snow = { 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 - +asset.onInitialize(function() openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer) - openspace.addScreenSpaceRenderable(colorbar_rain); - openspace.addScreenSpaceRenderable(colorbar_snow); + openspace.addScreenSpaceRenderable(colorbar_rain) + openspace.addScreenSpaceRenderable(colorbar_snow) end) asset.onDeinitialize(function() 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 index ca954995a7..248062de86 100644 --- 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 @@ -3,15 +3,15 @@ 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 +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/" @@ -20,11 +20,11 @@ local syncedDirectory = asset.syncedResource({ Name = Name, Type = "HttpSynchronization", Identifier = Identifier, - Version = 1 + Version = 1, + UnzipFiles = true, + UnzipFilesDestination = "images" }) -local imagesDestination = syncedDirectory .. "images" - local layer = { Identifier = Identifier, Name = Name, @@ -32,23 +32,15 @@ local layer = { Type = "TemporalTileLayer", Mode = "Folder", Folder = { - Folder = imagesDestination, + Folder = syncedDirectory .. "images", -- 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 - +asset.onInitialize(function() openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer) end) 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 index ce6f66083d..86304ec6c8 100644 --- 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 @@ -3,10 +3,10 @@ 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 +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 @@ -20,11 +20,10 @@ local syncedDirectory = asset.syncedResource({ Name = Name, Type = "HttpSynchronization", Identifier = Identifier, - Version = 1 + Version = 1, + UnzipFiles = true }) -local imagesDestination = syncedDirectory .. "images" - local layer = { Identifier = Identifier, Name = Name, @@ -32,20 +31,15 @@ local layer = { Type = "TemporalTileLayer", Mode = "Folder", Folder = { - Folder = imagesDestination, + Folder = syncedDirectory .. "2048", -- 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 - +asset.onInitialize(function() openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer) end) 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 index 08d3508ff7..359c813210 100644 --- 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 @@ -3,10 +3,10 @@ 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 +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/" @@ -26,7 +26,7 @@ local layer = { Description = Description } -asset.onInitialize(function() +asset.onInitialize(function() openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer) end) 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 index 48cff7c8c5..cf1ce51565 100644 --- a/data/assets/scene/solarsystem/planets/earth/noaa-sos/atmosphere/isaac.asset +++ b/data/assets/scene/solarsystem/planets/earth/noaa-sos/atmosphere/isaac.asset @@ -3,13 +3,13 @@ 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 +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/" @@ -18,7 +18,8 @@ local syncedDirectory = asset.syncedResource({ Name = Name, Type = "HttpSynchronization", Identifier = Identifier, - Version = 1 + Version = 1, + UnzipFiles = true }) local radarDestination = syncedDirectory .. "radar" @@ -34,7 +35,7 @@ local layer_radar = { -- 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 } @@ -48,21 +49,11 @@ local layer_sat = { -- 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 - +asset.onInitialize(function() openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer_radar) openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer_sat) end) 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 index 395ab6618c..3dfd74ee44 100644 --- 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 @@ -3,16 +3,16 @@ 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 +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/" @@ -32,7 +32,7 @@ local layer = { Description = Description } -asset.onInitialize(function() +asset.onInitialize(function() openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer) end) 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 index 9956669b42..187fb0a5de 100644 --- 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 @@ -3,12 +3,12 @@ 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 +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/" @@ -17,11 +17,10 @@ local syncedDirectory = asset.syncedResource({ Name = Name, Type = "HttpSynchronization", Identifier = Identifier, - Version = 1 + Version = 1, + UnzipFiles = true }) -local imagesDestination = syncedDirectory .. "images" - local layer = { Identifier = Identifier, Name = Name, @@ -29,20 +28,15 @@ local layer = { Type = "TemporalTileLayer", Mode = "Folder", Folder = { - Folder = imagesDestination, + Folder = syncedDirectory .. "4096", -- 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 - +asset.onInitialize(function() openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer) end) 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 index 3f7686e5f6..a211e91d4b 100644 --- a/data/assets/scene/solarsystem/planets/earth/noaa-sos/atmosphere/lightning.asset +++ b/data/assets/scene/solarsystem/planets/earth/noaa-sos/atmosphere/lightning.asset @@ -3,13 +3,13 @@ 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 +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/" @@ -40,9 +40,9 @@ local colorbar = { CartesianPosition = { 0.75, 0.0, -2.0 } } -asset.onInitialize(function() +asset.onInitialize(function() openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer) - openspace.addScreenSpaceRenderable(colorbar); + openspace.addScreenSpaceRenderable(colorbar) end) asset.onDeinitialize(function() 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 index ce4efda86e..1af3e30986 100644 --- 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 @@ -3,17 +3,17 @@ 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 +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" @@ -22,11 +22,10 @@ local syncedDirectory = asset.syncedResource({ Name = Name, Type = "HttpSynchronization", Identifier = Identifier, - Version = 1 + Version = 1, + UnzipFiles = true }) -local imagesDestination = syncedDirectory .. "images" - local layer = { Identifier = Identifier, Name = Name, @@ -34,11 +33,11 @@ local layer = { Type = "TemporalTileLayer", Mode = "Folder", Folder = { - Folder = imagesDestination, + Folder = syncedDirectory .. "2160", -- 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 } @@ -53,14 +52,9 @@ local colorbar = { 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 - +asset.onInitialize(function() openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer) - openspace.addScreenSpaceRenderable(colorbar); + openspace.addScreenSpaceRenderable(colorbar) end) asset.onDeinitialize(function() 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 index 12daaac3f5..a613108f15 100644 --- 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 @@ -3,16 +3,16 @@ 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 +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/" @@ -20,26 +20,21 @@ local syncedDirectory = asset.syncedResource({ Name = Name, Type = "HttpSynchronization", Identifier = Identifier, - Version = 1 + Version = 1, + UnzipFiles = true }) -local imagesDestination = syncedDirectory .. "images" local layer = { Identifier = Identifier, Name = Name, Enabled = asset.enabled, Type = "ImageSequenceTileLayer", - FolderPath = imagesDestination, + FolderPath = syncedDirectory .. "2048", Description = Description } -asset.onInitialize(function() - if not openspace.directoryExists(imagesDestination) then - openspace.printInfo("Extracting " .. Name) - openspace.unzipFile(syncedDirectory .. "2048.zip", imagesDestination, true) - end - +asset.onInitialize(function() openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer) end) 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 index af74d63c6b..bfe46e141b 100644 --- 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 @@ -3,12 +3,12 @@ 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 +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/" @@ -17,17 +17,16 @@ local syncedDirectory = asset.syncedResource({ Name = Name, Type = "HttpSynchronization", Identifier = Identifier, - Version = 1 + Version = 1, + UnzipFiles = true }) -local imagesDestination = syncedDirectory .. "images" - local layer = { Identifier = Identifier, Name = Name, Enabled = asset.enabled, Type = "ImageSequenceTileLayer", - FolderPath = imagesDestination, + FolderPath = syncedDirectory .. "2048", Description = Description } @@ -42,14 +41,9 @@ local colorbar = { 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 - +asset.onInitialize(function() openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer) - openspace.addScreenSpaceRenderable(colorbar); + openspace.addScreenSpaceRenderable(colorbar) end) asset.onDeinitialize(function() 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 index ba955824a1..7795309db1 100644 --- 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 @@ -3,12 +3,12 @@ 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 +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/" @@ -17,11 +17,11 @@ local syncedDirectory = asset.syncedResource({ Name = Name, Type = "HttpSynchronization", Identifier = Identifier, - Version = 1 + Version = 1, + UnzipFiles = true, + UnzipFilesDestination = "images" }) -local imagesDestination = syncedDirectory .. "images" - local layer = { Identifier = Identifier, Name = Name, @@ -29,11 +29,11 @@ local layer = { Type = "TemporalTileLayer", Mode = "Folder", Folder = { - Folder = imagesDestination, + Folder = syncedDirectory .. "images", -- 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 } @@ -47,39 +47,9 @@ local legend = { 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 - +asset.onInitialize(function() openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer) - openspace.addScreenSpaceRenderable(legend); + openspace.addScreenSpaceRenderable(legend) end) asset.onDeinitialize(function() 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 index 5ccd8ba66d..fc01a8fca4 100644 --- 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 @@ -3,12 +3,12 @@ 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 +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/" @@ -17,11 +17,11 @@ local syncedDirectory = asset.syncedResource({ Name = Name, Type = "HttpSynchronization", Identifier = Identifier, - Version = 1 + Version = 1, + UnzipFiles = true, + UnzipFilesDestination = "images" }) -local imagesDestination = syncedDirectory .. "images" - local layer = { Identifier = Identifier, Name = Name, @@ -29,45 +29,15 @@ local layer = { Type = "TemporalTileLayer", Mode = "Folder", Folder = { - Folder = imagesDestination, + Folder = syncedDirectory .. "images", -- 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 - +asset.onInitialize(function() openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer) end) 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 index 4b8031fa63..bb3b05422b 100644 --- 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 @@ -3,7 +3,7 @@ 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. +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 @@ -18,11 +18,10 @@ local syncedDirectory = asset.syncedResource({ Name = Name, Type = "HttpSynchronization", Identifier = Identifier, - Version = 1 + Version = 1, + UnzipFiles = true }) -local imagesDestination = syncedDirectory .. "images" - local layer = { Identifier = Identifier, Name = Name, @@ -30,11 +29,11 @@ local layer = { Type = "TemporalTileLayer", Mode = "Folder", Folder = { - Folder = imagesDestination, + Folder = syncedDirectory .. "2880", -- 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 } @@ -48,14 +47,9 @@ local colorbar = { 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 - +asset.onInitialize(function() openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer) - openspace.addScreenSpaceRenderable(colorbar); + openspace.addScreenSpaceRenderable(colorbar) end) asset.onDeinitialize(function() 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 index 97c800daf7..f09a483f8f 100644 --- 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 @@ -3,17 +3,17 @@ 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 +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/" @@ -33,7 +33,7 @@ local layer = { Description = Description } -asset.onInitialize(function() +asset.onInitialize(function() openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer) end) 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 index cd3fcc39e3..37622bc66c 100644 --- a/data/assets/scene/solarsystem/planets/earth/noaa-sos/atmosphere/pclim.asset +++ b/data/assets/scene/solarsystem/planets/earth/noaa-sos/atmosphere/pclim.asset @@ -3,10 +3,10 @@ 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 +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/" @@ -15,17 +15,16 @@ local syncedDirectory = asset.syncedResource({ Name = Name, Type = "HttpSynchronization", Identifier = Identifier, - Version = 1 + Version = 1, + UnzipFiles = true }) -local imagesDestination = syncedDirectory .. "images" - local layer = { Identifier = Identifier, Name = Name, Enabled = asset.enabled, Type = "ImageSequenceTileLayer", - FolderPath = imagesDestination, + FolderPath = syncedDirectory .. "raw", Description = Description } @@ -39,14 +38,9 @@ local colorbar = { 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 - +asset.onInitialize(function() openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer) - openspace.addScreenSpaceRenderable(colorbar); + openspace.addScreenSpaceRenderable(colorbar) end) asset.onDeinitialize(function() 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 index f61ee80152..734b2e1056 100644 --- 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 @@ -3,13 +3,13 @@ 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 +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/" @@ -18,11 +18,10 @@ local syncedDirectory = asset.syncedResource({ Name = Name, Type = "HttpSynchronization", Identifier = Identifier, - Version = 1 + Version = 1, + UnzipFiles = true }) -local imagesDestination = syncedDirectory .. "images" - local layer = { Identifier = Identifier, Name = Name, @@ -30,20 +29,15 @@ local layer = { Type = "TemporalTileLayer", Mode = "Folder", Folder = { - Folder = imagesDestination, + Folder = syncedDirectory .. "2048", -- 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 - +asset.onInitialize(function() openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer) end) 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 index 78945b5a90..1edd0805c4 100644 --- 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 @@ -3,24 +3,24 @@ 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 +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/" @@ -29,17 +29,16 @@ local syncedDirectory = asset.syncedResource({ Name = Name, Type = "HttpSynchronization", Identifier = Identifier, - Version = 1 + Version = 1, + UnzipFiles = true }) -local imagesDestination = syncedDirectory .. "images" - local layer = { Identifier = Identifier, Name = Name, Enabled = asset.enabled, Type = "ImageSequenceTileLayer", - FolderPath = imagesDestination, + FolderPath = syncedDirectory .. "2048", Description = Description } @@ -54,14 +53,9 @@ local colorbar = { 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 - +asset.onInitialize(function() openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer) - openspace.addScreenSpaceRenderable(colorbar); + openspace.addScreenSpaceRenderable(colorbar) end) asset.onDeinitialize(function() 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 index 3e69e48467..217006ca80 100644 --- 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 @@ -3,24 +3,24 @@ 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 +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/" @@ -29,17 +29,16 @@ local syncedDirectory = asset.syncedResource({ Name = Name, Type = "HttpSynchronization", Identifier = Identifier, - Version = 1 + Version = 1, + UnzipFiles = true }) -local imagesDestination = syncedDirectory .. "images" - local layer = { Identifier = Identifier, Name = Name, Enabled = asset.enabled, Type = "ImageSequenceTileLayer", - FolderPath = imagesDestination, + FolderPath = syncedDirectory .. "2048", Description = Description } @@ -54,14 +53,9 @@ local colorbar = { 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 - +asset.onInitialize(function() openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer) - openspace.addScreenSpaceRenderable(colorbar); + openspace.addScreenSpaceRenderable(colorbar) end) asset.onDeinitialize(function() 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 index 49dc4c7579..f04f2c0f7a 100644 --- 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 @@ -3,24 +3,24 @@ 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 +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 + 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/" @@ -29,17 +29,16 @@ local syncedDirectory = asset.syncedResource({ Name = Name, Type = "HttpSynchronization", Identifier = Identifier, - Version = 1 + Version = 1, + UnzipFiles = true }) -local imagesDestination = syncedDirectory .. "images" - local layer = { Identifier = Identifier, Name = Name, Enabled = asset.enabled, Type = "ImageSequenceTileLayer", - FolderPath = imagesDestination, + FolderPath = syncedDirectory .. "2048_png", Description = Description } @@ -54,14 +53,9 @@ local colorbar = { 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 - +asset.onInitialize(function() openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer) - openspace.addScreenSpaceRenderable(colorbar); + openspace.addScreenSpaceRenderable(colorbar) end) asset.onDeinitialize(function() 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 index bbafe02926..e299abd1e4 100644 --- a/data/assets/scene/solarsystem/planets/earth/noaa-sos/atmosphere/sandy.asset +++ b/data/assets/scene/solarsystem/planets/earth/noaa-sos/atmosphere/sandy.asset @@ -3,8 +3,8 @@ 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 +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/" @@ -13,11 +13,10 @@ local syncedDirectory = asset.syncedResource({ Name = Name, Type = "HttpSynchronization", Identifier = Identifier, - Version = 1 + Version = 1, + UnzipFiles = true }) -local imagesDestination = syncedDirectory .. "images" - local layer = { Identifier = Identifier, Name = Name, @@ -25,7 +24,7 @@ local layer = { Type = "TemporalTileLayer", Mode = "Folder", Folder = { - Folder = imagesDestination, + Folder = syncedDirectory .. "4096", -- 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" @@ -34,11 +33,6 @@ local layer = { } 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) 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 index 695680d2c3..0d209090b8 100644 --- 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 @@ -3,13 +3,13 @@ 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 +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/" @@ -18,11 +18,10 @@ local syncedDirectory = asset.syncedResource({ Name = Name, Type = "HttpSynchronization", Identifier = Identifier, - Version = 1 + Version = 1, + UnzipFiles = true }) -local imagesDestination = syncedDirectory .. "images" - local layer = { Identifier = Identifier, Name = Name, @@ -30,7 +29,7 @@ local layer = { Type = "TemporalTileLayer", Mode = "Folder", Folder = { - Folder = imagesDestination, + Folder = syncedDirectory .. "2048", -- 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" @@ -39,11 +38,6 @@ local layer = { } 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) 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 index 45e0081c5b..34eb1f46be 100644 --- 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 @@ -3,16 +3,16 @@ 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 +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/" @@ -21,11 +21,10 @@ local syncedDirectory = asset.syncedResource({ Name = Name, Type = "HttpSynchronization", Identifier = Identifier, - Version = 1 + Version = 1, + UnzipFiles = true }) -local imagesDestination = syncedDirectory .. "images" - local layer = { Identifier = Identifier, Name = Name, @@ -33,7 +32,7 @@ local layer = { Type = "TemporalTileLayer", Mode = "Folder", Folder = { - Folder = imagesDestination, + Folder = syncedDirectory .. "4096_new", -- 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" @@ -53,13 +52,8 @@ local colorbar = { } 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); + openspace.addScreenSpaceRenderable(colorbar) end) asset.onDeinitialize(function() 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 index 009612c011..148148c208 100644 --- 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 @@ -3,7 +3,7 @@ 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 +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/" @@ -34,9 +34,9 @@ local colorbar = { CartesianPosition = { 0.0, -0.3, -2.0 } } -asset.onInitialize(function() +asset.onInitialize(function() openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer) - openspace.addScreenSpaceRenderable(colorbar); + openspace.addScreenSpaceRenderable(colorbar) end) asset.onDeinitialize(function() 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 index fe9bd93b9d..da4470c343 100644 --- 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 @@ -3,10 +3,10 @@ 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 +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/" @@ -15,17 +15,16 @@ local syncedDirectory = asset.syncedResource({ Name = Name, Type = "HttpSynchronization", Identifier = Identifier, - Version = 1 + Version = 1, + UnzipFiles = true }) -local imagesDestination = syncedDirectory .. "images" - local layer = { Identifier = Identifier, Name = Name, Enabled = asset.enabled, Type = "ImageSequenceTileLayer", - FolderPath = imagesDestination, + FolderPath = syncedDirectory .. "2048", Description = Description } @@ -38,11 +37,6 @@ local track = { } 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) 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 index c245506c70..a68a83c6b2 100644 --- 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 @@ -3,10 +3,10 @@ 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 +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/" @@ -15,11 +15,10 @@ local syncedDirectory = asset.syncedResource({ Name = Name, Type = "HttpSynchronization", Identifier = Identifier, - Version = 1 + Version = 1, + UnzipFiles = true }) -local imagesDestination = syncedDirectory .. "images" - local layer = { Identifier = Identifier, Name = Name, @@ -27,7 +26,7 @@ local layer = { Type = "TemporalTileLayer", Mode = "Folder", Folder = { - Folder = imagesDestination, + Folder = syncedDirectory .. "2048", -- 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" @@ -44,11 +43,6 @@ local track = { } 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) 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 index ad2d7b716d..d0f55350f4 100644 --- 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 @@ -3,16 +3,16 @@ 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 +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/" @@ -21,26 +21,20 @@ local syncedDirectory = asset.syncedResource({ Name = Name, Type = "HttpSynchronization", Identifier = Identifier, - Version = 1 + Version = 1, + UnzipFiles = true }) -local imagesDestination = syncedDirectory .. "images" - local layer = { Identifier = Identifier, Name = Name, Enabled = asset.enabled, Type = "ImageSequenceTileLayer", - FolderPath = imagesDestination, + FolderPath = syncedDirectory .. "2992", 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) 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 index 4d91349286..b9beabdfe0 100644 --- 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 @@ -3,12 +3,12 @@ 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 +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/" @@ -46,10 +46,10 @@ local legend = { CartesianPosition = { 0.0, -0.5, -2.0 } } -asset.onInitialize(function() +asset.onInitialize(function() openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer) openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer_countries) - openspace.addScreenSpaceRenderable(legend); + openspace.addScreenSpaceRenderable(legend) end) asset.onDeinitialize(function() 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 index 0ed1dbf299..a7a2d5e7c0 100644 --- 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 @@ -3,12 +3,12 @@ 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 +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/" @@ -46,10 +46,10 @@ local legend = { CartesianPosition = { 0.0, -0.5, -2.0 } } -asset.onInitialize(function() +asset.onInitialize(function() openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer) openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer_countries) - openspace.addScreenSpaceRenderable(legend); + openspace.addScreenSpaceRenderable(legend) end) asset.onDeinitialize(function() 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 index 1e870834ca..93b124ce9f 100644 --- a/data/assets/scene/solarsystem/planets/earth/noaa-sos/land/birds.asset +++ b/data/assets/scene/solarsystem/planets/earth/noaa-sos/land/birds.asset @@ -2,11 +2,11 @@ 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 +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/" @@ -15,17 +15,16 @@ local syncedDirectory = asset.syncedResource({ Name = Name, Type = "HttpSynchronization", Identifier = Identifier, - Version = 1 + Version = 1, + UnzipFiles = true }) -local imagesDestination = syncedDirectory .. "images" - local layer = { Identifier = Identifier, Name = Name, Enabled = asset.enabled, Type = "ImageSequenceTileLayer", - FolderPath = imagesDestination, + FolderPath = syncedDirectory .. "birds", Description = Description } @@ -40,13 +39,8 @@ local colorbar = { } 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); + openspace.addScreenSpaceRenderable(colorbar) end) asset.onDeinitialize(function() 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 index f5d1e19c2c..428672e213 100644 --- 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 @@ -3,12 +3,12 @@ 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 +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/" @@ -28,7 +28,7 @@ local layer = { Description = Description } -asset.onInitialize(function() +asset.onInitialize(function() openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer) end) 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 index 2a5c8d8d0f..b09748ae78 100644 --- 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 @@ -3,9 +3,9 @@ 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 +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]] @@ -16,11 +16,10 @@ local syncedDirectory = asset.syncedResource({ Name = Name, Type = "HttpSynchronization", Identifier = Identifier, - Version = 1 + Version = 1, + UnzipFiles = true }) -local imagesDestination = syncedDirectory .. "images" - local layer = { Identifier = Identifier, Name = Name, @@ -28,7 +27,7 @@ local layer = { Type = "TemporalTileLayer", Mode = "Folder", Folder = { - Folder = imagesDestination, + Folder = syncedDirectory .. "5400", -- 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" @@ -37,11 +36,6 @@ local layer = { } 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) 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 index 344f472b50..415e6fe533 100644 --- 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 @@ -3,11 +3,11 @@ 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 +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/" @@ -16,11 +16,10 @@ local syncedDirectory = asset.syncedResource({ Name = Name, Type = "HttpSynchronization", Identifier = Identifier, - Version = 1 + Version = 1, + UnzipFiles = true }) -local imagesDestination = syncedDirectory .. "images" - local layer = { Identifier = Identifier, Name = Name, @@ -28,7 +27,7 @@ local layer = { Type = "TemporalTileLayer", Mode = "Folder", Folder = { - Folder = imagesDestination, + Folder = syncedDirectory .. "5400", -- 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" @@ -37,11 +36,6 @@ local layer = { } 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) 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 index b23bd948b5..f3a39fec25 100644 --- 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 @@ -3,17 +3,17 @@ 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 +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/" @@ -22,31 +22,21 @@ local syncedDirectory = asset.syncedResource({ Name = Name, Type = "HttpSynchronization", Identifier = Identifier, - Version = 1 + Version = 1, + UnzipFiles = true, + UnzipFilesDestination = "images" }) -local imagesDestination = syncedDirectory .. "images" - local layer = { Identifier = Identifier, Name = Name, Enabled = asset.enabled, Type = "ImageSequenceTileLayer", - FolderPath = imagesDestination, + FolderPath = syncedDirectory .. "images", 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) 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 index 845cbb09d7..28c7a33ee1 100644 --- 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 @@ -3,12 +3,12 @@ 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 +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/" @@ -17,11 +17,10 @@ local syncedDirectory = asset.syncedResource({ Name = Name, Type = "HttpSynchronization", Identifier = Identifier, - Version = 1 + Version = 1, + UnzipFiles = true }) -local imagesDestination = syncedDirectory .. "images" - local layer = { Identifier = Identifier, Name = Name, @@ -29,7 +28,7 @@ local layer = { Type = "TemporalTileLayer", Mode = "Folder", Folder = { - Folder = imagesDestination, + Folder = syncedDirectory .. "4096", -- See https://en.cppreference.com/w/cpp/io/manip/get_time for an explanation of the -- time formatting string Format = "world%Y%jx4kx2k.jpg" @@ -38,11 +37,6 @@ local layer = { } 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) 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 index cf385378e7..41c74dfb12 100644 --- 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 @@ -3,10 +3,10 @@ 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 +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/" @@ -15,25 +15,19 @@ local syncedDirectory = asset.syncedResource({ Name = Name, Type = "HttpSynchronization", Identifier = Identifier, - Version = 1 + Version = 1, + UnzipFiles = true }) -local imagesDestination = syncedDirectory .. "images" - local layer_images = { Identifier = Identifier, Name = Name, Type = "ImageSequenceTileLayer", - FolderPath = imagesDestination, + FolderPath = syncedDirectory .. "4096", 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) 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 index f516ecdc5d..304b944e92 100644 --- 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 @@ -3,10 +3,10 @@ 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 +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/" @@ -15,26 +15,20 @@ local syncedDirectory = asset.syncedResource({ Name = Name, Type = "HttpSynchronization", Identifier = Identifier, - Version = 1 + Version = 1, + UnzipFiles = true }) -local imagesDestination = syncedDirectory .. "images" - local layer = { Identifier = Identifier, Name = Name, Enabled = asset.enabled, Type = "ImageSequenceTileLayer", - FolderPath = imagesDestination, + FolderPath = syncedDirectory .. "4096", 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) 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 index 93cad31040..94f821bc31 100644 --- 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 @@ -3,10 +3,10 @@ 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 +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/" @@ -15,26 +15,20 @@ local syncedDirectory = asset.syncedResource({ Name = Name, Type = "HttpSynchronization", Identifier = Identifier, - Version = 1 + Version = 1, + UnzipFiles = true }) -local imagesDestination = syncedDirectory .. "images" - local layer = { Identifier = Identifier, Name = Name, Enabled = asset.enabled, Type = "ImageSequenceTileLayer", - FolderPath = imagesDestination, + FolderPath = syncedDirectory .. "4096", 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) 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 index ce3cebbf90..6ec4e40dcf 100644 --- 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 @@ -3,12 +3,12 @@ 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 +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/" @@ -17,11 +17,10 @@ local syncedDirectory = asset.syncedResource({ Name = Name, Type = "HttpSynchronization", Identifier = Identifier, - Version = 1 + Version = 1, + UnzipFiles = true }) -local imagesDestination = syncedDirectory .. "images" - local layer = { Identifier = Identifier, Name = Name, @@ -29,7 +28,7 @@ local layer = { Type = "TemporalTileLayer", Mode = "Folder", Folder = { - Folder = imagesDestination, + Folder = syncedDirectory .. "2048", -- 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" @@ -38,11 +37,6 @@ local layer = { } 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) 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 index 881af929b5..bd8bf08784 100644 --- 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 @@ -3,12 +3,12 @@ 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 +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/" @@ -17,11 +17,11 @@ local syncedDirectory = asset.syncedResource({ Name = Name, Type = "HttpSynchronization", Identifier = Identifier, - Version = 1 + Version = 1, + UnzipFiles = true, + UnzipFilesDestination = "images" }) -local imagesDestination = syncedDirectory .. "images" - local layer = { Identifier = Identifier, Name = Name, @@ -29,7 +29,7 @@ local layer = { Type = "TemporalTileLayer", Mode = "Folder", Folder = { - Folder = imagesDestination, + Folder = syncedDirectory .. "images", -- 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" @@ -38,13 +38,6 @@ local layer = { } 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) 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 index b7a06d2286..2f683d0290 100644 --- 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 @@ -3,12 +3,12 @@ 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 +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/" @@ -17,26 +17,20 @@ local syncedDirectory = asset.syncedResource({ Name = Name, Type = "HttpSynchronization", Identifier = Identifier, - Version = 1 + Version = 1, + UnzipFiles = true }) -local imagesDestination = syncedDirectory .. "images" - local layer = { Identifier = Identifier, Name = Name, Enabled = asset.enabled, Type = "ImageSequenceTileLayer", - FolderPath = imagesDestination, + FolderPath = syncedDirectory .. "2048", 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) 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 index 401add7ca7..cc5257f244 100644 --- 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 @@ -3,8 +3,8 @@ 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 +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 @@ -33,7 +33,7 @@ local layer_2002 = { Description = Description } -asset.onInitialize(function() +asset.onInitialize(function() openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer_1992) openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer_2002) end) 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 index 58a873cbc6..a5f422c4cb 100644 --- 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 @@ -3,11 +3,11 @@ 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 +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/" @@ -27,7 +27,7 @@ local layer = { Description = Description } -asset.onInitialize(function() +asset.onInitialize(function() openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer) end) 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 index a7e759c3ca..b2983346a8 100644 --- 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 @@ -3,11 +3,11 @@ 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 +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/" @@ -37,9 +37,9 @@ local colorbar = { CartesianPosition = { 0.0, -0.5, -2.0 } } -asset.onInitialize(function() +asset.onInitialize(function() openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer) - openspace.addScreenSpaceRenderable(colorbar); + openspace.addScreenSpaceRenderable(colorbar) end) asset.onDeinitialize(function() 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 index 0c5ae2c7b5..cf961a3357 100644 --- 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 @@ -3,9 +3,9 @@ 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 +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/" @@ -25,7 +25,7 @@ local layer = { Description = Description } -asset.onInitialize(function() +asset.onInitialize(function() openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer) end) 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 index 09748e522b..b2a17b3f95 100644 --- 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 @@ -3,14 +3,14 @@ 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 +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/" @@ -30,7 +30,7 @@ local layer = { Description = Description } -asset.onInitialize(function() +asset.onInitialize(function() openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer) end) 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 index ac5920388c..cf1c4bb12c 100644 --- 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 @@ -3,14 +3,14 @@ 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 +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/" @@ -30,7 +30,7 @@ local layer = { Description = Description } -asset.onInitialize(function() +asset.onInitialize(function() openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer) end) 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 index 7262ebd75b..8546c329ff 100644 --- 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 @@ -3,19 +3,19 @@ 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 +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/" @@ -24,17 +24,16 @@ local syncedDirectory = asset.syncedResource({ Name = Name, Type = "HttpSynchronization", Identifier = Identifier, - Version = 1 + Version = 1, + UnzipFiles = true }) -local imagesDestination = syncedDirectory .. "images" - local layer = { Identifier = Identifier, Name = Name, Enabled = asset.enabled, Type = "ImageSequenceTileLayer", - FolderPath = imagesDestination, + FolderPath = syncedDirectory .. "1024", Description = Description } @@ -72,15 +71,10 @@ local quakebar_combined = { } 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); + openspace.addScreenSpaceRenderable(legend) + openspace.addScreenSpaceRenderable(quakebar) + openspace.addScreenSpaceRenderable(quakebar_combined) end) asset.onDeinitialize(function() 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 index d874e87d7d..1289557dde 100644 --- 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 @@ -3,16 +3,16 @@ 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 +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/" @@ -68,13 +68,13 @@ local legend = { CartesianPosition = { 0.0, -0.5, -2.0 } } -asset.onInitialize(function() +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); + openspace.addScreenSpaceRenderable(legend) end) asset.onDeinitialize(function() 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 index c71f5963e0..cd80f0e83c 100644 --- 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 @@ -3,17 +3,17 @@ 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 +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/" @@ -69,13 +69,13 @@ local legend = { CartesianPosition = { 0.0, -0.5, -2.0 } } -asset.onInitialize(function() +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); + openspace.addScreenSpaceRenderable(legend) end) asset.onDeinitialize(function() 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 index 1051ac8b53..4317e62749 100644 --- 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 @@ -3,12 +3,12 @@ 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 +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/" @@ -17,17 +17,16 @@ local syncedDirectory = asset.syncedResource({ Name = Name, Type = "HttpSynchronization", Identifier = Identifier, - Version = 1 + Version = 1, + UnzipFiles = true }) -local imagesDestination = syncedDirectory .. "images" - local layer = { Identifier = Identifier, Name = Name, Enabled = asset.enabled, Type = "ImageSequenceTileLayer", - FolderPath = imagesDestination, + FolderPath = syncedDirectory .. "4096", Description = Description } @@ -42,13 +41,8 @@ local legend = { } 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(legend) end) asset.onDeinitialize(function() 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 index 3d249f3d54..5f00be7b5f 100644 --- 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 @@ -3,17 +3,17 @@ 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 +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/" @@ -22,11 +22,10 @@ local syncedDirectory = asset.syncedResource({ Name = Name, Type = "HttpSynchronization", Identifier = Identifier, - Version = 1 + Version = 1, + UnzipFiles = true }) -local imagesDestination = syncedDirectory .. "images" - local layer = { Identifier = Identifier, Name = Name, @@ -34,7 +33,7 @@ local layer = { Type = "TemporalTileLayer", Mode = "Folder", Folder = { - Folder = imagesDestination, + Folder = syncedDirectory .. "4096", -- See https://en.cppreference.com/w/cpp/io/manip/get_time for an explanation of the -- time formatting string Format = "%Y.png" @@ -43,11 +42,6 @@ local layer = { } 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) 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 index e1c9376814..2b8ca3b2a3 100644 --- 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 @@ -3,17 +3,17 @@ 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 +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/" @@ -22,11 +22,10 @@ local syncedDirectory = asset.syncedResource({ Name = Name, Type = "HttpSynchronization", Identifier = Identifier, - Version = 1 + Version = 1, + UnzipFiles = true }) -local imagesDestination = syncedDirectory .. "images" - local layer = { Identifier = Identifier, Name = Name, @@ -34,7 +33,7 @@ local layer = { Type = "TemporalTileLayer", Mode = "Folder", Folder = { - Folder = imagesDestination, + Folder = syncedDirectory .. "4096", -- See https://en.cppreference.com/w/cpp/io/manip/get_time for an explanation of the -- time formatting string Format = "%Y.png" @@ -43,11 +42,6 @@ local layer = { } 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) 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 index 9ae059be9b..5093ade3f9 100644 --- a/data/assets/scene/solarsystem/planets/earth/noaa-sos/land/etopo1.asset +++ b/data/assets/scene/solarsystem/planets/earth/noaa-sos/land/etopo1.asset @@ -3,14 +3,14 @@ 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 +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/" @@ -41,9 +41,9 @@ local colorbar = { CartesianPosition = { 0.5, 0.0, -2.0 } } -asset.onInitialize(function() +asset.onInitialize(function() openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer) - openspace.addScreenSpaceRenderable(colorbar); + openspace.addScreenSpaceRenderable(colorbar) end) asset.onDeinitialize(function() 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 index 9b2d706e8c..83ade362bd 100644 --- 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 @@ -3,12 +3,12 @@ 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 +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/" @@ -28,7 +28,7 @@ local layer = { Description = Description } -asset.onInitialize(function() +asset.onInitialize(function() openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer) end) 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 index ed16fca0bd..4e027a1538 100644 --- 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 @@ -3,12 +3,12 @@ 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 +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/" @@ -28,7 +28,7 @@ local layer = { Description = Description } -asset.onInitialize(function() +asset.onInitialize(function() openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer) end) 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 index 5e1af3f262..c0efa4e8d6 100644 --- 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 @@ -3,12 +3,12 @@ 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 +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/" @@ -28,7 +28,7 @@ local layer = { Description = Description } -asset.onInitialize(function() +asset.onInitialize(function() openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer) end) 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 index 79482b7b42..a7d2dc27d5 100644 --- 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 @@ -3,15 +3,15 @@ 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 +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/" @@ -31,7 +31,7 @@ local layer = { Description = Description } -asset.onInitialize(function() +asset.onInitialize(function() openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer) end) 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 index 3dc50bd429..36d1410091 100644 --- 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 @@ -3,11 +3,11 @@ 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 +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/" @@ -27,7 +27,7 @@ local layer = { Description = Description } -asset.onInitialize(function() +asset.onInitialize(function() openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer) end) 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 index d7254f485b..ed5ae36e9b 100644 --- a/data/assets/scene/solarsystem/planets/earth/noaa-sos/land/fire.asset +++ b/data/assets/scene/solarsystem/planets/earth/noaa-sos/land/fire.asset @@ -3,15 +3,15 @@ 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 +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/" @@ -20,11 +20,10 @@ local syncedDirectory = asset.syncedResource({ Name = Name, Type = "HttpSynchronization", Identifier = Identifier, - Version = 1 + Version = 1, + UnzipFiles = true }) -local imagesDestination = syncedDirectory .. "images" - local layer = { Identifier = Identifier, Name = Name, @@ -32,7 +31,7 @@ local layer = { Type = "TemporalTileLayer", Mode = "Folder", Folder = { - Folder = imagesDestination, + Folder = syncedDirectory .. "4096", -- 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" @@ -41,11 +40,6 @@ local layer = { } 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) 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 index 3ee2971e98..b8c4b83d86 100644 --- 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 @@ -3,13 +3,13 @@ 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 +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/" @@ -19,17 +19,16 @@ local syncedDirectory = asset.syncedResource({ Name = Name, Type = "HttpSynchronization", Identifier = Identifier, - Version = 1 + Version = 1, + UnzipFiles = true }) -local imagesDestination = syncedDirectory .. "images" - local layer = { Identifier = Identifier, Name = Name, Enabled = asset.enabled, Type = "ImageSequenceTileLayer", - FolderPath = imagesDestination, + FolderPath = syncedDirectory .. "2048", Description = Description } @@ -54,14 +53,9 @@ local colorbar_veg = { } 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); + openspace.addScreenSpaceRenderable(colorbar_fire) + openspace.addScreenSpaceRenderable(colorbar_veg) end) asset.onDeinitialize(function() 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 index 007cdf7d39..bbdd9a2e02 100644 --- 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 @@ -3,15 +3,15 @@ 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 +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/" @@ -39,7 +39,7 @@ local layer_night = { Description = Description } -asset.onInitialize(function() +asset.onInitialize(function() openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer) openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer_night) end) 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 index d244f84bf2..6550aae8ca 100644 --- 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 @@ -3,15 +3,15 @@ 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 +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/" @@ -39,7 +39,7 @@ local layer_night = { Description = Description } -asset.onInitialize(function() +asset.onInitialize(function() openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer) openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer_night) end) 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 index 6ccf077ac6..1d2fdc2c00 100644 --- 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 @@ -3,15 +3,15 @@ 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 +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/" @@ -39,7 +39,7 @@ local layer_night = { Description = Description } -asset.onInitialize(function() +asset.onInitialize(function() openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer) openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer_night) end) 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 index 2e695501c3..4e5eedd902 100644 --- 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 @@ -3,15 +3,15 @@ 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 +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/" @@ -39,7 +39,7 @@ local layer_floods = { Description = Description } -asset.onInitialize(function() +asset.onInitialize(function() openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer) openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer_floods) end) 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 index 2b98146f2c..e661d99554 100644 --- 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 @@ -3,10 +3,10 @@ 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 +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/" @@ -44,10 +44,10 @@ local label = { CartesianPosition = { 0.0, -0.5, -2.0 } } -asset.onInitialize(function() +asset.onInitialize(function() openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer) openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer_countries) - openspace.addScreenSpaceRenderable(label); + openspace.addScreenSpaceRenderable(label) end) asset.onDeinitialize(function() 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 index 64b2c5b25c..e6c6a23453 100644 --- a/data/assets/scene/solarsystem/planets/earth/noaa-sos/land/forests.asset +++ b/data/assets/scene/solarsystem/planets/earth/noaa-sos/land/forests.asset @@ -3,11 +3,11 @@ 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 +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/" @@ -75,14 +75,14 @@ local label1 = { CartesianPosition = { 0.5, 0.0, -2.0 } } -asset.onInitialize(function() +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); + openspace.addScreenSpaceRenderable(label) + openspace.addScreenSpaceRenderable(label1) end) asset.onDeinitialize(function() 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 index 77bcac07d2..c93f5395ad 100644 --- 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 @@ -3,11 +3,11 @@ 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 +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/" @@ -38,9 +38,9 @@ local legend = { CartesianPosition = { 0.75, 0.0, -2.0 } } -asset.onInitialize(function() +asset.onInitialize(function() openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer) - openspace.addScreenSpaceRenderable(legend); + openspace.addScreenSpaceRenderable(legend) end) asset.onDeinitialize(function() 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 index 38717c9492..ceacbfb3a3 100644 --- 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 @@ -3,11 +3,11 @@ 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 +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/" @@ -16,10 +16,11 @@ local syncedDirectory = asset.syncedResource({ Name = Name, Type = "HttpSynchronization", Identifier = Identifier, - Version = 1 + Version = 1, + UnzipFiles = true }) -local imagesDestination = syncedDirectory .. "images/" +local imagesDestination = syncedDirectory .. "4096" local colorbarDestination = syncedDirectory .. "colorbar/" local background1layer = { @@ -65,20 +66,10 @@ local colorbar = { } 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); + openspace.addScreenSpaceRenderable(colorbar) end) asset.onDeinitialize(function() 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 index 32a0dd7948..41abecdde6 100644 --- 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 @@ -3,8 +3,8 @@ 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 +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: @@ -13,12 +13,12 @@ Longest Rivers in the world on each continent: 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) + 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 +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/" @@ -38,7 +38,7 @@ local layer = { Description = Description } -asset.onInitialize(function() +asset.onInitialize(function() openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer) end) 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 index 3697515f87..7765a7a5f5 100644 --- 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 @@ -3,18 +3,18 @@ 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 +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/" @@ -23,29 +23,21 @@ local syncedDirectory = asset.syncedResource({ Name = Name, Type = "HttpSynchronization", Identifier = Identifier, - Version = 1 + Version = 1, + UnzipFiles = true, + UnzipFilesDestination = "images" }) -local imagesDestination = syncedDirectory .. "images" - local layer = { Identifier = Identifier, Name = Name, Enabled = asset.enabled, Type = "ImageSequenceTileLayer", - FolderPath = imagesDestination, + FolderPath = syncedDirectory .. "images", 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) 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 index ee1909240d..713dbb4134 100644 --- 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 @@ -3,12 +3,12 @@ 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 +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/" @@ -17,26 +17,20 @@ local syncedDirectory = asset.syncedResource({ Name = Name, Type = "HttpSynchronization", Identifier = Identifier, - Version = 1 + Version = 1, + UnzipFiles = true }) -local imagesDestination = syncedDirectory .. "images" - local layer = { Identifier = Identifier, Name = Name, Enabled = asset.enabled, Type = "ImageSequenceTileLayer", - FolderPath = imagesDestination, + FolderPath = syncedDirectory .. "2048", 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) 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 index f6aacb10b1..c778c7ee0a 100644 --- 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 @@ -3,12 +3,12 @@ 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 +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/" @@ -17,17 +17,16 @@ local syncedDirectory = asset.syncedResource({ Name = Name, Type = "HttpSynchronization", Identifier = Identifier, - Version = 1 + Version = 1, + UnzipFiles = true }) -local imagesDestination = syncedDirectory .. "images" - local layer = { Identifier = Identifier, Name = Name, Enabled = asset.enabled, Type = "ImageSequenceTileLayer", - FolderPath = imagesDestination, + FolderPath = syncedDirectory .. "2048", Description = Description } @@ -42,13 +41,8 @@ local legend = { } 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); + openspace.addScreenSpaceRenderable(legend) end) asset.onDeinitialize(function() 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 index e53554cbe8..f4e66c7e4b 100644 --- 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 @@ -3,12 +3,12 @@ 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 +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/" @@ -17,17 +17,16 @@ local syncedDirectory = asset.syncedResource({ Name = Name, Type = "HttpSynchronization", Identifier = Identifier, - Version = 1 + Version = 1, + UnzipFiles = true }) -local imagesDestination = syncedDirectory .. "images" - local layer = { Identifier = Identifier, Name = Name, Enabled = asset.enabled, Type = "ImageSequenceTileLayer", - FolderPath = imagesDestination, + FolderPath = syncedDirectory .. "4096", Description = Description } @@ -53,14 +52,9 @@ local legend1 = { } 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); + openspace.addScreenSpaceRenderable(legend) + openspace.addScreenSpaceRenderable(legend1) end) asset.onDeinitialize(function() 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 index 2efba4a1d1..5aa7491aa4 100644 --- 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 @@ -3,12 +3,12 @@ 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 +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/" @@ -49,10 +49,10 @@ local legend1 = { CartesianPosition = { 0.75, -0.5, -2.0 } } -asset.onInitialize(function() +asset.onInitialize(function() openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer) - openspace.addScreenSpaceRenderable(legend); - openspace.addScreenSpaceRenderable(legend1); + openspace.addScreenSpaceRenderable(legend) + openspace.addScreenSpaceRenderable(legend1) end) asset.onDeinitialize(function() 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 index 6f673dfa43..f1075852b4 100644 --- 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 @@ -3,17 +3,17 @@ 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 +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/" @@ -22,17 +22,16 @@ local syncedDirectory = asset.syncedResource({ Name = Name, Type = "HttpSynchronization", Identifier = Identifier, - Version = 1 + Version = 1, + UnzipFiles = true }) -local imagesDestination = syncedDirectory .. "images" - local layer = { Identifier = Identifier, Name = Name, Enabled = asset.enabled, Type = "ImageSequenceTileLayer", - FolderPath = imagesDestination, + FolderPath = syncedDirectory .. "3600", Description = Description } @@ -48,13 +47,8 @@ local label = { } 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); + openspace.addScreenSpaceRenderable(label) end) asset.onDeinitialize(function() 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 index c99300a70a..7b5ee41268 100644 --- 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 @@ -3,17 +3,17 @@ 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 +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/" @@ -44,9 +44,9 @@ local label = { CartesianPosition = { 0.0, -0.5, -2.0 } } -asset.onInitialize(function() +asset.onInitialize(function() openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer) - openspace.addScreenSpaceRenderable(label); + openspace.addScreenSpaceRenderable(label) end) asset.onDeinitialize(function() 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 index f549ec91f1..d2cb3939b5 100644 --- 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 @@ -3,17 +3,17 @@ 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 +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/" @@ -22,7 +22,8 @@ local syncedDirectory = asset.syncedResource({ Name = Name, Type = "HttpSynchronization", Identifier = Identifier, - Version = 1 + Version = 1, + UnzipFiles = true }) local labelsDestination = syncedDirectory .. "labels/" @@ -70,12 +71,7 @@ local labels = { 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 - +asset.onInitialize(function() openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer) for _,v in ipairs(labels) do 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 index b4f7355899..fe9085c411 100644 --- 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 @@ -3,12 +3,12 @@ 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 +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/" @@ -46,10 +46,10 @@ local legend = { CartesianPosition = { 0.0, -0.5, -2.0 } } -asset.onInitialize(function() +asset.onInitialize(function() openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer) openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer_countries) - openspace.addScreenSpaceRenderable(legend); + openspace.addScreenSpaceRenderable(legend) end) asset.onDeinitialize(function() 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 index 56b8a9084e..ebb0caf956 100644 --- 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 @@ -3,11 +3,11 @@ 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 +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/" @@ -45,10 +45,10 @@ local legend = { CartesianPosition = { 0.0, -0.5, -2.0 } } -asset.onInitialize(function() +asset.onInitialize(function() openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer) openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer_countries) - openspace.addScreenSpaceRenderable(legend); + openspace.addScreenSpaceRenderable(legend) end) asset.onDeinitialize(function() 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 index 451349aa74..47e35a1723 100644 --- 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 @@ -3,11 +3,11 @@ 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 +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/" @@ -45,10 +45,10 @@ local legend = { CartesianPosition = { 0.0, -0.5, -2.0 } } -asset.onInitialize(function() +asset.onInitialize(function() openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer) openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer_countries) - openspace.addScreenSpaceRenderable(legend); + openspace.addScreenSpaceRenderable(legend) end) asset.onDeinitialize(function() 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 index f3c834490c..14c252b305 100644 --- 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 @@ -3,7 +3,7 @@ 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 +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/" @@ -12,26 +12,20 @@ local syncedDirectory = asset.syncedResource({ Name = Name, Type = "HttpSynchronization", Identifier = Identifier, - Version = 1 + Version = 1, + UnzipFiles = true }) -local imagesDestination = syncedDirectory .. "images" - local layer = { Identifier = Identifier, Name = Name, Enabled = asset.enabled, Type = "ImageSequenceTileLayer", - FolderPath = imagesDestination, + FolderPath = syncedDirectory .. "4096", 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) 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 index d20b4f30cf..9b2370d325 100644 --- 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 @@ -3,8 +3,8 @@ 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 +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/" @@ -44,7 +44,7 @@ local layer_longitude = { Description = Description } -asset.onInitialize(function() +asset.onInitialize(function() openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer_base) openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer_combined) openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer_latitude) 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 index b62392164f..cdb09e2f87 100644 --- 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 @@ -3,11 +3,11 @@ 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 +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/" @@ -16,11 +16,10 @@ local syncedDirectory = asset.syncedResource({ Name = Name, Type = "HttpSynchronization", Identifier = Identifier, - Version = 1 + Version = 1, + UnzipFiles = true }) -local imagesDestination = syncedDirectory .. "images" - local layer = { Identifier = Identifier, Name = Name, @@ -28,7 +27,7 @@ local layer = { Type = "TemporalTileLayer", Mode = "Folder", Folder = { - Folder = imagesDestination, + Folder = syncedDirectory .. "4096", -- @TODO: This dataset is not using equirectangular projection, so it will look -- strange on the planet right now @@ -45,11 +44,6 @@ asset.onInitialize(function() "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) 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 index 1cffbbfa4f..fb70ccda16 100644 --- a/data/assets/scene/solarsystem/planets/earth/noaa-sos/land/nightsky.asset +++ b/data/assets/scene/solarsystem/planets/earth/noaa-sos/land/nightsky.asset @@ -3,8 +3,8 @@ 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 +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/" @@ -34,9 +34,9 @@ local legend = { CartesianPosition = { 0.75, 0.0, -2.0 } } -asset.onInitialize(function() +asset.onInitialize(function() openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer) - openspace.addScreenSpaceRenderable(legend); + openspace.addScreenSpaceRenderable(legend) end) asset.onDeinitialize(function() 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 index bedf5a684e..8f3f29dca9 100644 --- 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 @@ -3,17 +3,17 @@ 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 +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/" @@ -73,12 +73,12 @@ local legend = { CartesianPosition = { 1.0, 0.0, -2.0 } } -asset.onInitialize(function() +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); + openspace.addScreenSpaceRenderable(legend) end) asset.onDeinitialize(function() 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 index 07da707b21..75375705a7 100644 --- 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 @@ -3,13 +3,13 @@ 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 +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. @@ -21,10 +21,11 @@ local syncedDirectory = asset.syncedResource({ Name = Name, Type = "HttpSynchronization", Identifier = Identifier, - Version = 1 + Version = 1, + UnzipFiles = true }) -local imagesDestination = syncedDirectory .. "images" +local imagesDestination = syncedDirectory .. "3600" local layers_names = { "Map01a_PALEOMAP_PaleoAtlas_000", @@ -144,16 +145,11 @@ local legend = { } 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); + openspace.addScreenSpaceRenderable(legend) end) asset.onDeinitialize(function() 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 index f937407ff8..45c01ae3aa 100644 --- 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 @@ -3,16 +3,16 @@ 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 +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/" @@ -84,7 +84,7 @@ asset.onInitialize(function () 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); + openspace.addScreenSpaceRenderable(legend) end) asset.onDeinitialize(function() 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 index 13135d9495..31a7427c59 100644 --- 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 @@ -3,10 +3,10 @@ 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 +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/" @@ -39,7 +39,7 @@ local legend = { asset.onInitialize(function () openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer) - openspace.addScreenSpaceRenderable(legend); + openspace.addScreenSpaceRenderable(legend) end) asset.onDeinitialize(function() 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 index e56e2e7e15..9c6e5b4ff3 100644 --- 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 @@ -3,19 +3,19 @@ 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 +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/" @@ -24,17 +24,16 @@ local syncedDirectory = asset.syncedResource({ Name = Name, Type = "HttpSynchronization", Identifier = Identifier, - Version = 1 + Version = 1, + UnzipFiles = true }) -local imagesDestination = syncedDirectory .. "images" - local layer = { Identifier = Identifier, Name = Name, Enabled = asset.enabled, Type = "ImageSequenceTileLayer", - FolderPath = imagesDestination, + FolderPath = syncedDirectory .. "4096", Description = Description } @@ -51,13 +50,8 @@ local age_scale = { 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); + openspace.addScreenSpaceRenderable(age_scale) end) asset.onDeinitialize(function() 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 index 23f02823f1..c43add6891 100644 --- 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 @@ -3,10 +3,10 @@ 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 +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/" @@ -15,17 +15,16 @@ local syncedDirectory = asset.syncedResource({ Name = Name, Type = "HttpSynchronization", Identifier = Identifier, - Version = 1 + Version = 1, + UnzipFiles = true }) -local imagesDestination = syncedDirectory .. "images" - local layer = { Identifier = Identifier, Name = Name, Enabled = asset.enabled, Type = "ImageSequenceTileLayer", - FolderPath = imagesDestination, + FolderPath = syncedDirectory .. "4096", Description = Description } @@ -41,13 +40,8 @@ local colorbar = { 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(colorbar) end) asset.onDeinitialize(function() 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 index 1d04393e83..ff047ea7d3 100644 --- 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 @@ -3,16 +3,16 @@ 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 +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/" @@ -46,7 +46,7 @@ local colorbar = { asset.onInitialize(function () openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer) - openspace.addScreenSpaceRenderable(colorbar); + openspace.addScreenSpaceRenderable(colorbar) end) asset.onDeinitialize(function() 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 index d3c2ddce50..6b0ec74ad8 100644 --- 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 @@ -3,16 +3,16 @@ 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 +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/" @@ -68,7 +68,7 @@ asset.onInitialize(function () 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); + openspace.addScreenSpaceRenderable(colorbar) end) asset.onDeinitialize(function() 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 index d55a14cc24..791f795c28 100644 --- 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 @@ -3,16 +3,16 @@ 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 +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/" @@ -60,7 +60,7 @@ 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); + openspace.addScreenSpaceRenderable(colorbar) end) asset.onDeinitialize(function() 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 index 00d027d0d3..2c7185c9ff 100644 --- 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 @@ -3,13 +3,13 @@ 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 +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/" @@ -18,10 +18,11 @@ local syncedDirectory = asset.syncedResource({ Name = Name, Type = "HttpSynchronization", Identifier = Identifier, - Version = 1 + Version = 1, + UnzipFiles = true }) -local imagesDestination = syncedDirectory .. "images" +local imagesDestination = syncedDirectory .. "2048" local pipsDestination = syncedDirectory .. "pips" local layer_base = { @@ -58,20 +59,10 @@ local pips = { } 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); + openspace.addScreenSpaceRenderable(pips) end) asset.onDeinitialize(function() 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 index cea57c8df9..471a3560a7 100644 --- 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 @@ -3,13 +3,13 @@ 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 +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/" @@ -47,13 +47,13 @@ local labels = { asset.onInitialize(function () openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer_8192) openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer_with_background) - openspace.addScreenSpaceRenderable(labels); + 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); + openspace.removeScreenSpaceRenderable(labels) end) asset.export(layer_8192) 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 index 5fba43e402..b656f41d64 100644 --- 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 @@ -3,13 +3,13 @@ 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 +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/" @@ -48,7 +48,7 @@ local labels = { asset.onInitialize(function () openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer_4096) openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer_with_background) - openspace.addScreenSpaceRenderable(labels); + openspace.addScreenSpaceRenderable(labels) end) asset.onDeinitialize(function() 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 index 6bcbb5866b..9362f2e284 100644 --- 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 @@ -3,13 +3,13 @@ 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 +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/" 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 index 32f0e732f7..0a53354813 100644 --- 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 @@ -3,13 +3,13 @@ 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 +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/" @@ -48,13 +48,13 @@ local labels = { asset.onInitialize(function () openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer_4096) openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer_with_background) - openspace.addScreenSpaceRenderable(labels); + 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); + openspace.removeScreenSpaceRenderable(labels) end) asset.export(layer_4096) 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 index f29cc36a02..217961e1bc 100644 --- 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 @@ -3,13 +3,13 @@ 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 +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/" 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 index 0faee78153..7f8e2d6aec 100644 --- 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 @@ -3,13 +3,13 @@ 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 +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/" 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 index 63d320fd11..32cb8d89ab 100644 --- 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 @@ -3,13 +3,13 @@ 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 +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/" @@ -18,17 +18,16 @@ local syncedDirectory = asset.syncedResource({ Name = Name, Type = "HttpSynchronization", Identifier = Identifier, - Version = 1 + Version = 1, + UnzipFiles = true }) -local imagesDestination = syncedDirectory .. "images" - local layer = { Identifier = Identifier, Name = Name, Enabled = asset.enabled, Type = "ImageSequenceTileLayer", - FolderPath = imagesDestination, + FolderPath = syncedDirectory .. "4096", Description = Description } @@ -55,14 +54,9 @@ local colorbar2 = { } 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); + openspace.addScreenSpaceRenderable(colorbar) + openspace.addScreenSpaceRenderable(colorbar2) end) asset.onDeinitialize(function() 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 index e18e6b8355..396ddaed1e 100644 --- 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 @@ -3,19 +3,19 @@ local globeIdentifier = asset.require("../../earth").Earth.Identifier local Name = "Earthquakes: Historical Top 10 - through 2011" local Identifier = "noaa-sos-land-top_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. 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 +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. 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/" 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 index 717cf4157c..ca3ddbad41 100644 --- 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 @@ -3,17 +3,17 @@ 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 +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/" 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 index 0e8e953c66..6dc9777c32 100644 --- 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 @@ -3,17 +3,17 @@ 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 +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/" 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 index 449e7287a9..0ed2ef79c9 100644 --- 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 @@ -3,17 +3,17 @@ 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 +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/" 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 index 8214e65cc9..0d288e5553 100644 --- a/data/assets/scene/solarsystem/planets/earth/noaa-sos/models/bm10000.asset +++ b/data/assets/scene/solarsystem/planets/earth/noaa-sos/models/bm10000.asset @@ -3,35 +3,35 @@ 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 +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 +"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 +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/" @@ -40,26 +40,20 @@ local syncedDirectory = asset.syncedResource({ Name = Name, Type = "HttpSynchronization", Identifier = Identifier, - Version = 1 + Version = 1, + UnzipFiles = true }) -local imagesDestination = syncedDirectory .. "images" - local layer = { Identifier = Identifier, Name = Name, Enabled = asset.enabled, Type = "ImageSequenceTileLayer", - FolderPath = imagesDestination, + FolderPath = syncedDirectory .. "4096", 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) 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 index fc678550fe..c4f15e3f43 100644 --- 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 @@ -3,18 +3,18 @@ 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 +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/" @@ -23,17 +23,17 @@ local syncedDirectory = asset.syncedResource({ Name = Name, Type = "HttpSynchronization", Identifier = Identifier, - Version = 1 + Version = 1, + UnzipFiles = true, + UnzipFilesDestination = "images" }) -local imagesDestination = syncedDirectory .. "images" - local layer = { Identifier = Identifier, Name = Name, Enabled = asset.enabled, Type = "ImageSequenceTileLayer", - FolderPath = imagesDestination, + FolderPath = syncedDirectory .. "images", Description = Description } @@ -48,15 +48,8 @@ local colorbar = { } 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); + openspace.addScreenSpaceRenderable(colorbar) end) asset.onDeinitialize(function() 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 index 3276c2838e..f201debe91 100644 --- 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 @@ -3,15 +3,15 @@ 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 +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/" @@ -20,17 +20,16 @@ local syncedDirectory = asset.syncedResource({ Name = Name, Type = "HttpSynchronization", Identifier = Identifier, - Version = 1 + Version = 1, + UnzipFiles = true }) -local imagesDestination = syncedDirectory .. "images" - local layer = { Identifier = Identifier, Name = Name, Enabled = asset.enabled, Type = "ImageSequenceTileLayer", - FolderPath = imagesDestination, + FolderPath = syncedDirectory .. "4095", Description = Description } @@ -47,13 +46,8 @@ local colorbar = { } 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); + openspace.addScreenSpaceRenderable(colorbar) end) asset.onDeinitialize(function() 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 index cc056fa2df..1f23bcfeb7 100644 --- 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 @@ -3,15 +3,15 @@ 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 +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/" @@ -20,17 +20,16 @@ local syncedDirectory = asset.syncedResource({ Name = Name, Type = "HttpSynchronization", Identifier = Identifier, - Version = 1 + Version = 1, + UnzipFiles = true }) -local imagesDestination = syncedDirectory .. "images" - local layer = { Identifier = Identifier, Name = Name, Enabled = asset.enabled, Type = "ImageSequenceTileLayer", - FolderPath = imagesDestination, + FolderPath = syncedDirectory .. "4095", Description = Description } @@ -47,13 +46,8 @@ local colorbar = { } 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); + openspace.addScreenSpaceRenderable(colorbar) end) asset.onDeinitialize(function() 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 index c9e9a86d6a..3c20f2b025 100644 --- 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 @@ -3,15 +3,15 @@ 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 +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/" @@ -64,7 +64,7 @@ asset.onInitialize(function () for i,v in ipairs(layers) do openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", v) end - openspace.addScreenSpaceRenderable(colorbar); + openspace.addScreenSpaceRenderable(colorbar) end) asset.onDeinitialize(function() 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 index 746c32ff22..3a70c3e9e1 100644 --- 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 @@ -3,15 +3,15 @@ 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 +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/" @@ -20,17 +20,16 @@ local syncedDirectory = asset.syncedResource({ Name = Name, Type = "HttpSynchronization", Identifier = Identifier, - Version = 1 + Version = 1, + UnzipFiles = true }) -local imagesDestination = syncedDirectory .. "images" - local layer = { Identifier = Identifier, Name = Name, Enabled = asset.enabled, Type = "ImageSequenceTileLayer", - FolderPath = imagesDestination, + FolderPath = syncedDirectory .. "4095", Description = Description } @@ -47,13 +46,8 @@ local colorbar = { } 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); + openspace.addScreenSpaceRenderable(colorbar) end) asset.onDeinitialize(function() 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 index 6aba18d12f..2117986946 100644 --- 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 @@ -3,15 +3,15 @@ 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 +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/" @@ -20,17 +20,16 @@ local syncedDirectory = asset.syncedResource({ Name = Name, Type = "HttpSynchronization", Identifier = Identifier, - Version = 1 + Version = 1, + UnzipFiles = true }) -local imagesDestination = syncedDirectory .. "images" - local layer = { Identifier = Identifier, Name = Name, Enabled = asset.enabled, Type = "ImageSequenceTileLayer", - FolderPath = imagesDestination, + FolderPath = syncedDirectory .. "4095", Description = Description } @@ -47,13 +46,8 @@ local colorbar = { } 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); + openspace.addScreenSpaceRenderable(colorbar) end) asset.onDeinitialize(function() 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 index 8924cc5630..d4a430bebb 100644 --- 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 @@ -3,15 +3,15 @@ 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 +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/" @@ -20,17 +20,16 @@ local syncedDirectory = asset.syncedResource({ Name = Name, Type = "HttpSynchronization", Identifier = Identifier, - Version = 1 + Version = 1, + UnzipFiles = true }) -local imagesDestination = syncedDirectory .. "images" - local layer = { Identifier = Identifier, Name = Name, Enabled = asset.enabled, Type = "ImageSequenceTileLayer", - FolderPath = imagesDestination, + FolderPath = syncedDirectory .. "4095", Description = Description } @@ -47,13 +46,8 @@ local colorbar = { } 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); + openspace.addScreenSpaceRenderable(colorbar) end) asset.onDeinitialize(function() 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 index dfd338c7da..af34b58ce0 100644 --- 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 @@ -3,15 +3,15 @@ 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 +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/" @@ -20,17 +20,16 @@ local syncedDirectory = asset.syncedResource({ Name = Name, Type = "HttpSynchronization", Identifier = Identifier, - Version = 1 + Version = 1, + UnzipFiles = true }) -local imagesDestination = syncedDirectory .. "images" - local layer = { Identifier = Identifier, Name = Name, Enabled = asset.enabled, Type = "ImageSequenceTileLayer", - FolderPath = imagesDestination, + FolderPath = syncedDirectory .. "4095", Description = Description } @@ -47,13 +46,8 @@ local colorbar = { } 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); + openspace.addScreenSpaceRenderable(colorbar) end) asset.onDeinitialize(function() 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 index d6bbcf82d1..4fbebf94f8 100644 --- 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 @@ -3,7 +3,7 @@ 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 +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/" @@ -12,11 +12,10 @@ local syncedDirectory = asset.syncedResource({ Name = Name, Type = "HttpSynchronization", Identifier = Identifier, - Version = 1 + Version = 1, + UnzipFiles = true }) -local imagesDestination = syncedDirectory .. "images" - local layer = { Identifier = Identifier, Name = Name, @@ -24,7 +23,7 @@ local layer = { Type = "TemporalTileLayer", Mode = "Folder", Folder = { - Folder = imagesDestination, + Folder = syncedDirectory .. "4096", -- 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" @@ -44,13 +43,8 @@ local colorbar = { } 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(colorbar) end) asset.onDeinitialize(function() 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 index c842401552..6a6e80255b 100644 --- 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 @@ -3,7 +3,7 @@ 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 +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/" @@ -12,11 +12,10 @@ local syncedDirectory = asset.syncedResource({ Name = Name, Type = "HttpSynchronization", Identifier = Identifier, - Version = 1 + Version = 1, + UnzipFiles = true }) -local imagesDestination = syncedDirectory .. "images" - local layer = { Identifier = Identifier, Name = Name, @@ -24,7 +23,7 @@ local layer = { Type = "TemporalTileLayer", Mode = "Folder", Folder = { - Folder = imagesDestination, + Folder = syncedDirectory .. "4096", -- 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" @@ -44,13 +43,8 @@ local colorbar = { } 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(colorbar) end) asset.onDeinitialize(function() 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 index 725f337156..8c3ae46b11 100644 --- 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 @@ -3,7 +3,7 @@ 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 +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/" @@ -12,11 +12,10 @@ local syncedDirectory = asset.syncedResource({ Name = Name, Type = "HttpSynchronization", Identifier = Identifier, - Version = 1 + Version = 1, + UnzipFiles = true }) -local imagesDestination = syncedDirectory .. "images" - local layer = { Identifier = Identifier, Name = Name, @@ -24,7 +23,7 @@ local layer = { Type = "TemporalTileLayer", Mode = "Folder", Folder = { - Folder = imagesDestination, + Folder = syncedDirectory .. "4096", -- 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" @@ -44,13 +43,8 @@ local colorbar = { } 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(colorbar) end) asset.onDeinitialize(function() 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 index 45340f72c6..7d3693fe06 100644 --- 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 @@ -3,7 +3,7 @@ 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 +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/" @@ -12,11 +12,10 @@ local syncedDirectory = asset.syncedResource({ Name = Name, Type = "HttpSynchronization", Identifier = Identifier, - Version = 1 + Version = 1, + UnzipFiles = true }) -local imagesDestination = syncedDirectory .. "images" - local layer = { Identifier = Identifier, Name = Name, @@ -24,7 +23,7 @@ local layer = { Type = "TemporalTileLayer", Mode = "Folder", Folder = { - Folder = imagesDestination, + Folder = syncedDirectory .. "4096", -- 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" @@ -44,13 +43,8 @@ local colorbar = { } 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(colorbar) end) asset.onDeinitialize(function() 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 index 02971b6858..813080144f 100644 --- 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 @@ -3,14 +3,14 @@ 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 = [[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 +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 @@ -22,11 +22,10 @@ local syncedDirectory = asset.syncedResource({ Name = Name, Type = "HttpSynchronization", Identifier = Identifier, - Version = 1 + Version = 1, + UnzipFiles = true }) -local imagesDestination = syncedDirectory .. "images" - local layer = { Identifier = Identifier, Name = Name, @@ -34,7 +33,7 @@ local layer = { Type = "TemporalTileLayer", Mode = "Folder", Folder = { - Folder = imagesDestination, + Folder = syncedDirectory .. "2100", -- 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" @@ -53,13 +52,8 @@ local colorbar = { } 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); + openspace.addScreenSpaceRenderable(colorbar) end) asset.onDeinitialize(function() 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 index 205bd62b28..44629cb2c6 100644 --- 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 @@ -3,16 +3,16 @@ 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 +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/" @@ -21,11 +21,10 @@ local syncedDirectory = asset.syncedResource({ Name = Name, Type = "HttpSynchronization", Identifier = Identifier, - Version = 1 + Version = 1, + UnzipFiles = true }) -local imagesDestination = syncedDirectory .. "images" - local layer = { Identifier = Identifier, Name = Name, @@ -33,7 +32,7 @@ local layer = { Type = "TemporalTileLayer", Mode = "Folder", Folder = { - Folder = imagesDestination, + Folder = syncedDirectory .. "2100", -- 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" @@ -52,13 +51,8 @@ local colorbar = { } 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); + openspace.addScreenSpaceRenderable(colorbar) end) asset.onDeinitialize(function() 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 index 59b08cbbf0..57d612c5c5 100644 --- 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 @@ -3,16 +3,16 @@ 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 +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/" @@ -21,17 +21,16 @@ local syncedDirectory = asset.syncedResource({ Name = Name, Type = "HttpSynchronization", Identifier = Identifier, - Version = 1 + Version = 1, + UnzipFiles = true }) -local imagesDestination = syncedDirectory .. "images" - local layer = { Identifier = Identifier, Name = Name, Enabled = asset.enabled, Type = "ImageSequenceTileLayer", - FolderPath = imagesDestination, + FolderPath = syncedDirectory .. "4096", Description = Description } @@ -66,15 +65,10 @@ local colorbar_2009_iceconcentration = { } 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); + openspace.addScreenSpaceRenderable(colorbar_2007_2009) + openspace.addScreenSpaceRenderable(colorbar_2008_minimum) + openspace.addScreenSpaceRenderable(colorbar_2009_iceconcentration) end) asset.onDeinitialize(function() 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 index e03e9d09cd..949c3b61c3 100644 --- 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 @@ -3,19 +3,19 @@ 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 +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/" @@ -76,7 +76,7 @@ local layer_6m = { Description = Description } -asset.onInitialize(function() +asset.onInitialize(function() openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer_0m) openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer_1m) openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer_2m) 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 index 95af9b4ab4..7bf26d5935 100644 --- 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 @@ -3,19 +3,19 @@ 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 - +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/" @@ -76,7 +76,7 @@ local layer_6m = { Description = Description } -asset.onInitialize(function() +asset.onInitialize(function() openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer_0m) openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer_1m) openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer_2m) 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 index 1bb37b5601..c0db0daade 100644 --- 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 @@ -3,8 +3,8 @@ 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 +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 @@ -18,11 +18,10 @@ local syncedDirectory = asset.syncedResource({ Name = Name, Type = "HttpSynchronization", Identifier = Identifier, - Version = 1 + Version = 1, + UnzipFiles = true }) -local imagesDestination = syncedDirectory .. "images" - local layer = { Identifier = Identifier, Name = Name, @@ -30,7 +29,7 @@ local layer = { Type = "TemporalTileLayer", Mode = "Folder", Folder = { - Folder = imagesDestination, + Folder = syncedDirectory .. "4096", -- 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" @@ -49,13 +48,8 @@ local colorbar = { } 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(colorbar) end) asset.onDeinitialize(function() 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 index 5abce25b15..931edc6763 100644 --- 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 @@ -3,15 +3,15 @@ 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 +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/" @@ -20,17 +20,16 @@ local syncedDirectory = asset.syncedResource({ Name = Name, Type = "HttpSynchronization", Identifier = Identifier, - Version = 1 + Version = 1, + UnzipFiles = true }) -local imagesDestination = syncedDirectory .. "images" - local layer = { Identifier = Identifier, Name = Name, Enabled = asset.enabled, Type = "ImageSequenceTileLayer", - FolderPath = imagesDestination, + FolderPath = syncedDirectory .. "4096", Description = Description } @@ -45,13 +44,8 @@ local buoy = { } 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); + openspace.addScreenSpaceRenderable(buoy) end) asset.onDeinitialize(function() 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 index 120af93456..9068118a45 100644 --- 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 @@ -3,15 +3,15 @@ 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 +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/" @@ -20,26 +20,20 @@ local syncedDirectory = asset.syncedResource({ Name = Name, Type = "HttpSynchronization", Identifier = Identifier, - Version = 1 + Version = 1, + UnzipFiles = true }) -local imagesDestination = syncedDirectory .. "images" - local layer = { Identifier = Identifier, Name = Name, Enabled = asset.enabled, Type = "ImageSequenceTileLayer", - FolderPath = imagesDestination, + FolderPath = syncedDirectory .. "4096", 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) 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 index 827a965fbd..570157016e 100644 --- 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 @@ -3,15 +3,15 @@ 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 +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/" @@ -20,11 +20,10 @@ local syncedDirectory = asset.syncedResource({ Name = Name, Type = "HttpSynchronization", Identifier = Identifier, - Version = 1 + Version = 1, + UnzipFiles = true }) -local imagesDestination = syncedDirectory .. "images" - local layer = { Identifier = Identifier, Name = Name, @@ -32,7 +31,7 @@ local layer = { Type = "TemporalTileLayer", Mode = "Folder", Folder = { - Folder = imagesDestination, + Folder = syncedDirectory .. "2048", -- 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" @@ -41,11 +40,6 @@ local layer = { } 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) 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 index 71fc8f0422..b8edf30c5b 100644 --- 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 @@ -3,12 +3,12 @@ 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 +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/" @@ -38,9 +38,9 @@ local colorbar = { CartesianPosition = { 0.85, 0.0, -2.0 } } -asset.onInitialize(function() +asset.onInitialize(function() openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer) - openspace.addScreenSpaceRenderable(colorbar); + openspace.addScreenSpaceRenderable(colorbar) end) asset.onDeinitialize(function() 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 index c272dfafde..db36a5adf2 100644 --- 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 @@ -3,16 +3,16 @@ 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 +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/" @@ -42,9 +42,9 @@ local colorbar = { CartesianPosition = { 0.0, -0.5, -2.0 } } -asset.onInitialize(function() +asset.onInitialize(function() openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer) - openspace.addScreenSpaceRenderable(colorbar); + openspace.addScreenSpaceRenderable(colorbar) end) asset.onDeinitialize(function() 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 index 8c4d5ad4fa..0b738716d2 100644 --- 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 @@ -3,15 +3,15 @@ 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 +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/" @@ -20,17 +20,16 @@ local syncedDirectory = asset.syncedResource({ Name = Name, Type = "HttpSynchronization", Identifier = Identifier, - Version = 1 + Version = 1, + UnzipFiles = true }) -local imagesDestination = syncedDirectory .. "images" - local layer = { Identifier = Identifier, Name = Name, Enabled = asset.enabled, Type = "ImageSequenceTileLayer", - FolderPath = imagesDestination, + FolderPath = syncedDirectory .. "3232", Description = Description } @@ -47,13 +46,8 @@ local colorbar = { } 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); + openspace.addScreenSpaceRenderable(colorbar) end) asset.onDeinitialize(function() 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 index a28def6b43..30505c1e00 100644 --- a/data/assets/scene/solarsystem/planets/earth/noaa-sos/oceans/currents.asset +++ b/data/assets/scene/solarsystem/planets/earth/noaa-sos/oceans/currents.asset @@ -3,19 +3,19 @@ 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 +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/" @@ -45,9 +45,9 @@ local legend = { CartesianPosition = { 0.0, -0.5, -2.0 } } -asset.onInitialize(function() +asset.onInitialize(function() openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer) - openspace.addScreenSpaceRenderable(legend); + openspace.addScreenSpaceRenderable(legend) end) asset.onDeinitialize(function() 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 index 376e8b3b9e..b2aea8fabe 100644 --- 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 @@ -3,14 +3,14 @@ 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 +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/" @@ -30,7 +30,7 @@ local layer = { Description = Description } -asset.onInitialize(function() +asset.onInitialize(function() openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer) end) 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 index dd0919de92..bdc3683ca3 100644 --- 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 @@ -3,17 +3,17 @@ 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 +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/" @@ -22,17 +22,17 @@ local syncedDirectory = asset.syncedResource({ Name = Name, Type = "HttpSynchronization", Identifier = Identifier, - Version = 1 + Version = 1, + UnzipFiles = true, + UnzipFilesDestination = "images" }) -local imagesDestination = syncedDirectory .. "images" - local layer = { Identifier = Identifier, Name = Name, Enabled = asset.enabled, Type = "ImageSequenceTileLayer", - FolderPath = imagesDestination, + FolderPath = syncedDirectory .. "images", Description = Description } @@ -47,19 +47,8 @@ local colorbar = { } 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); + openspace.addScreenSpaceRenderable(colorbar) end) asset.onDeinitialize(function() 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 index 391a6ea099..b82f17f143 100644 --- 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 @@ -3,17 +3,17 @@ 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 +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/" @@ -22,17 +22,17 @@ local syncedDirectory = asset.syncedResource({ Name = Name, Type = "HttpSynchronization", Identifier = Identifier, - Version = 1 + Version = 1, + UnzipFiles = true, + UnzipFilesDestination = "images" }) -local imagesDestination = syncedDirectory .. "images" - local layer = { Identifier = Identifier, Name = Name, Enabled = asset.enabled, Type = "ImageSequenceTileLayer", - FolderPath = imagesDestination, + FolderPath = syncedDirectory .. "images", Description = Description } @@ -47,21 +47,8 @@ local colorbar = { } 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); + openspace.addScreenSpaceRenderable(colorbar) end) asset.onDeinitialize(function() 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 index 9979ec633a..5ebde85c13 100644 --- a/data/assets/scene/solarsystem/planets/earth/noaa-sos/oceans/elnino.asset +++ b/data/assets/scene/solarsystem/planets/earth/noaa-sos/oceans/elnino.asset @@ -3,14 +3,14 @@ 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 +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/" @@ -50,7 +50,7 @@ local layer_lanina_winter = { Description = Description } -asset.onInitialize(function() +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) 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 index d40b72e6a2..780d52d8a9 100644 --- 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 @@ -3,11 +3,11 @@ 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 +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/" @@ -16,11 +16,11 @@ local syncedDirectory = asset.syncedResource({ Name = Name, Type = "HttpSynchronization", Identifier = Identifier, - Version = 1 + Version = 1, + UnzipFiles = true, + UnzipFilesDestination = "images" }) -local imagesDestination = syncedDirectory .. "images" - local layer = { Identifier = Identifier, Name = Name, @@ -28,7 +28,7 @@ local layer = { Type = "TemporalTileLayer", Mode = "Folder", Folder = { - Folder = imagesDestination, + Folder = syncedDirectory .. "images", -- 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" @@ -48,14 +48,8 @@ local colorbar = { } 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); + openspace.addScreenSpaceRenderable(colorbar) end) asset.onDeinitialize(function() 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 index adb19a3283..b0319d9fb3 100644 --- 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 @@ -3,11 +3,11 @@ 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 +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/" @@ -16,11 +16,11 @@ local syncedDirectory = asset.syncedResource({ Name = Name, Type = "HttpSynchronization", Identifier = Identifier, - Version = 1 + Version = 1, + UnzipFiles = true, + UnzipFilesDestination = "images" }) -local imagesDestination = syncedDirectory .. "images" - local layer = { Identifier = Identifier, Name = Name, @@ -28,7 +28,7 @@ local layer = { Type = "TemporalTileLayer", Mode = "Folder", Folder = { - Folder = imagesDestination, + Folder = syncedDirectory .. "images", -- 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" @@ -48,16 +48,8 @@ local colorbar = { } 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); + openspace.addScreenSpaceRenderable(colorbar) end) asset.onDeinitialize(function() 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 index 8d1c093f30..d9682f9efb 100644 --- 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 @@ -3,15 +3,15 @@ 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 +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/" @@ -20,11 +20,10 @@ local syncedDirectory = asset.syncedResource({ Name = Name, Type = "HttpSynchronization", Identifier = Identifier, - Version = 1 + Version = 1, + UnzipFiles = true }) -local imagesDestination = syncedDirectory .. "images" - local layer = { Identifier = Identifier, Name = Name, @@ -32,7 +31,7 @@ local layer = { Type = "TemporalTileLayer", Mode = "Folder", Folder = { - Folder = imagesDestination, + Folder = syncedDirectory .. "2048", -- See https://en.cppreference.com/w/cpp/io/manip/get_time for an explanation of the -- time formatting string Format = "dav19_%Y.jpg" @@ -41,11 +40,6 @@ local layer = { } 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) 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 index bc0c7c5e03..477a2895b0 100644 --- 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 @@ -3,12 +3,12 @@ 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 +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/" @@ -28,7 +28,7 @@ local layer = { Description = Description } -asset.onInitialize(function() +asset.onInitialize(function() openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer) end) 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 index 58b85ed828..b82e4f6d04 100644 --- 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 @@ -3,18 +3,18 @@ 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 +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/" @@ -23,26 +23,20 @@ local syncedDirectory = asset.syncedResource({ Name = Name, Type = "HttpSynchronization", Identifier = Identifier, - Version = 1 + Version = 1, + UnzipFiles = true }) -local imagesDestination = syncedDirectory .. "images" - local layer = { Identifier = Identifier, Name = Name, Enabled = asset.enabled, Type = "ImageSequenceTileLayer", - FolderPath = imagesDestination, + FolderPath = syncedDirectory .. "4096", 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) 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 index 4ad03faa9b..0db5e13cbb 100644 --- a/data/assets/scene/solarsystem/planets/earth/noaa-sos/oceans/loggerheadseaturtletracks.asset +++ b/data/assets/scene/solarsystem/planets/earth/noaa-sos/oceans/loggerheadseaturtletracks.asset @@ -3,15 +3,15 @@ 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 +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/" @@ -20,26 +20,20 @@ local syncedDirectory = asset.syncedResource({ Name = Name, Type = "HttpSynchronization", Identifier = Identifier, - Version = 1 + Version = 1, + UnzipFiles = true }) -local imagesDestination = syncedDirectory .. "images" - local layer = { Identifier = Identifier, Name = Name, Enabled = asset.enabled, Type = "ImageSequenceTileLayer", - FolderPath = imagesDestination, + FolderPath = syncedDirectory .. "4096", 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) 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 index ac1d4db1da..b166bd5fc2 100644 --- 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 @@ -3,15 +3,15 @@ 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 +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/" @@ -52,10 +52,10 @@ local colorbar_human_impact = { CartesianPosition = { 0.0, -0.5, -2.0 } } -asset.onInitialize(function() +asset.onInitialize(function() openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer) - openspace.addScreenSpaceRenderable(colorbar); - openspace.addScreenSpaceRenderable(colorbar_human_impact); + openspace.addScreenSpaceRenderable(colorbar) + openspace.addScreenSpaceRenderable(colorbar_human_impact) end) asset.onDeinitialize(function() 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 index bf93138b4c..85db807b6c 100644 --- 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 @@ -3,12 +3,12 @@ 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 +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/" @@ -38,9 +38,9 @@ local legend = { CartesianPosition = { 0.0, -0.5, -2.0 } } -asset.onInitialize(function() +asset.onInitialize(function() openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer) - openspace.addScreenSpaceRenderable(legend); + openspace.addScreenSpaceRenderable(legend) end) asset.onDeinitialize(function() 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 index eeb8aaa6c1..41c1ae1585 100644 --- 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 @@ -3,14 +3,14 @@ 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 +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/" @@ -19,11 +19,10 @@ local syncedDirectory = asset.syncedResource({ Name = Name, Type = "HttpSynchronization", Identifier = Identifier, - Version = 1 + Version = 1, + UnzipFiles = true }) -local imagesDestination = syncedDirectory .. "images" - local layer = { Identifier = Identifier, Name = Name, @@ -31,7 +30,7 @@ local layer = { Type = "TemporalTileLayer", Mode = "Folder", Folder = { - Folder = imagesDestination, + Folder = syncedDirectory .. "2048", -- 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" @@ -40,11 +39,6 @@ local layer = { } 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) 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 index 408a853d4e..d0d97a48c9 100644 --- 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 @@ -3,14 +3,14 @@ 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 +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/" @@ -19,11 +19,10 @@ local syncedDirectory = asset.syncedResource({ Name = Name, Type = "HttpSynchronization", Identifier = Identifier, - Version = 1 + Version = 1, + UnzipFiles = true }) -local imagesDestination = syncedDirectory .. "images" - local layer = { Identifier = Identifier, Name = Name, @@ -31,7 +30,7 @@ local layer = { Type = "TemporalTileLayer", Mode = "Folder", Folder = { - Folder = imagesDestination, + Folder = syncedDirectory .. "2048", -- 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" @@ -40,11 +39,6 @@ local layer = { } 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) 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 index ee35a7e02a..bae9167481 100644 --- 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 @@ -3,13 +3,13 @@ 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 +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/" @@ -18,26 +18,20 @@ local syncedDirectory = asset.syncedResource({ Name = Name, Type = "HttpSynchronization", Identifier = Identifier, - Version = 1 + Version = 1, + UnzipFiles = true }) -local imagesDestination = syncedDirectory .. "images" - local layer = { Identifier = Identifier, Name = Name, Enabled = asset.enabled, Type = "ImageSequenceTileLayer", - FolderPath = imagesDestination, + FolderPath = syncedDirectory .. "2048", 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) 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 index fcece31e49..22b3d502be 100644 --- 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 @@ -3,13 +3,13 @@ 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 +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/" @@ -18,26 +18,20 @@ local syncedDirectory = asset.syncedResource({ Name = Name, Type = "HttpSynchronization", Identifier = Identifier, - Version = 1 + Version = 1, + UnzipFiles = true }) -local imagesDestination = syncedDirectory .. "images" - local layer = { Identifier = Identifier, Name = Name, Enabled = asset.enabled, Type = "ImageSequenceTileLayer", - FolderPath = imagesDestination, + FolderPath = syncedDirectory .. "4000", 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) 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 index 2331a633f7..2acb9ecbc1 100644 --- 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 @@ -3,11 +3,11 @@ 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 +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/" @@ -16,26 +16,20 @@ local syncedDirectory = asset.syncedResource({ Name = Name, Type = "HttpSynchronization", Identifier = Identifier, - Version = 1 + Version = 1, + UnzipFiles = true }) -local imagesDestination = syncedDirectory .. "images" - local layer = { Identifier = Identifier, Name = Name, Enabled = asset.enabled, Type = "ImageSequenceTileLayer", - FolderPath = imagesDestination, + FolderPath = syncedDirectory .. "4000", 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) 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 index 3b34001e8a..a7d415ecf9 100644 --- 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 @@ -3,10 +3,10 @@ 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 +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/" @@ -15,11 +15,10 @@ local syncedDirectory = asset.syncedResource({ Name = Name, Type = "HttpSynchronization", Identifier = Identifier, - Version = 1 + Version = 1, + UnzipFiles = true }) -local imagesDestination = syncedDirectory .. "images" - local layer = { Identifier = Identifier, @@ -28,7 +27,7 @@ local layer = { Type = "TemporalTileLayer", Mode = "Folder", Folder = { - Folder = imagesDestination, + Folder = syncedDirectory .. "images", -- 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" @@ -46,14 +45,9 @@ local colorbar = { 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 - +asset.onInitialize(function() openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer) - openspace.addScreenSpaceRenderable(colorbar); + openspace.addScreenSpaceRenderable(colorbar) end) asset.onDeinitialize(function() 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 index a2b51cb235..243c092d3f 100644 --- 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 @@ -3,13 +3,13 @@ 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 +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/" @@ -18,11 +18,10 @@ local syncedDirectory = asset.syncedResource({ Name = Name, Type = "HttpSynchronization", Identifier = Identifier, - Version = 1 + Version = 1, + UnzipFiles = true }) -local imagesDestination = syncedDirectory .. "images" - local layer = { Identifier = Identifier, Name = Name, @@ -30,7 +29,7 @@ local layer = { Type = "TemporalTileLayer", Mode = "Folder", Folder = { - Folder = imagesDestination, + Folder = syncedDirectory .. "images", -- 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" @@ -49,13 +48,8 @@ local colorbar = { } 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); + openspace.addScreenSpaceRenderable(colorbar) end) asset.onDeinitialize(function() 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 index 3d71be5ce3..3564726ea0 100644 --- 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 @@ -3,18 +3,18 @@ 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 +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/" @@ -23,11 +23,10 @@ local syncedDirectory = asset.syncedResource({ Name = Name, Type = "HttpSynchronization", Identifier = Identifier, - Version = 1 + Version = 1, + UnzipFiles = true }) -local imagesDestination = syncedDirectory .. "images" - local layer = { Identifier = Identifier, Name = Name, @@ -35,7 +34,7 @@ local layer = { Type = "TemporalTileLayer", Mode = "Folder", Folder = { - Folder = imagesDestination, + Folder = syncedDirectory .. "images", -- 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" @@ -62,14 +61,9 @@ local colorbar = { } 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); + openspace.addScreenSpaceRenderable(colorbar) end) asset.onDeinitialize(function() 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 index f0c5d3532b..27412e8b7d 100644 --- 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 @@ -3,13 +3,13 @@ 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) +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/" @@ -18,11 +18,12 @@ local syncedDirectory = asset.syncedResource({ Name = Name, Type = "HttpSynchronization", Identifier = Identifier, - Version = 1 + Version = 1, + UnzipFiles = true }) -local imagesDestination = syncedDirectory .. "images" -local imagesByDepthDestination = syncedDirectory .. "bydepth" +local imagesDestination = syncedDirectory .. "4096" +local imagesByDepthDestination = syncedDirectory .. "4096_by_depth" local layer = { Identifier = Identifier, @@ -53,18 +54,8 @@ local colorbar = { } 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); + openspace.addScreenSpaceRenderable(colorbar) end) asset.onDeinitialize(function() 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 index 2b6a9638de..5b26039281 100644 --- 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 @@ -3,11 +3,11 @@ 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 +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/" @@ -16,26 +16,20 @@ local syncedDirectory = asset.syncedResource({ Name = Name, Type = "HttpSynchronization", Identifier = Identifier, - Version = 1 + Version = 1, + UnzipFiles = true }) -local imagesDestination = syncedDirectory .. "images" - local layer = { Identifier = Identifier, Name = Name, Enabled = asset.enabled, Type = "ImageSequenceTileLayer", - FolderPath = imagesDestination, + FolderPath = syncedDirectory .. "4096", 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) 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 index ea2f7adb8b..0a07d9bbd9 100644 --- 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 @@ -3,13 +3,13 @@ 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 +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/" @@ -18,11 +18,10 @@ local syncedDirectory = asset.syncedResource({ Name = Name, Type = "HttpSynchronization", Identifier = Identifier, - Version = 1 + Version = 1, + UnzipFiles = true }) -local imagesDestination = syncedDirectory .. "images" - local layer = { Identifier = Identifier, Name = Name, @@ -30,7 +29,7 @@ local layer = { Type = "TemporalTileLayer", Mode = "Folder", Folder = { - Folder = imagesDestination, + Folder = syncedDirectory .. "2048", -- 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" @@ -39,11 +38,6 @@ local layer = { } 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) 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 index 0496e8e346..a9e41ea914 100644 --- a/data/assets/scene/solarsystem/planets/earth/noaa-sos/oceans/phytoplankton.asset +++ b/data/assets/scene/solarsystem/planets/earth/noaa-sos/oceans/phytoplankton.asset @@ -3,17 +3,17 @@ 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 +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/" @@ -22,17 +22,17 @@ local syncedDirectory = asset.syncedResource({ Name = Name, Type = "HttpSynchronization", Identifier = Identifier, - Version = 1 + Version = 1, + UnzipFiles = true, + UnzipFilesDestination = "images" }) -local imagesDestination = syncedDirectory .. "images" - local layer = { Identifier = Identifier, Name = Name, Enabled = asset.enabled, Type = "ImageSequenceTileLayer", - FolderPath = imagesDestination, + FolderPath = syncedDirectory .. "images", Description = Description } @@ -47,19 +47,8 @@ local colorbar = { } 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); + openspace.addScreenSpaceRenderable(colorbar) end) asset.onDeinitialize(function() 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 index b0a883bc9c..0e1764b50d 100644 --- 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 @@ -3,14 +3,14 @@ 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 +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/" @@ -19,26 +19,20 @@ local syncedDirectory = asset.syncedResource({ Name = Name, Type = "HttpSynchronization", Identifier = Identifier, - Version = 1 + Version = 1, + UnzipFiles = true }) -local imagesDestination = syncedDirectory .. "images" - local layer = { Identifier = Identifier, Name = Name, Enabled = asset.enabled, Type = "ImageSequenceTileLayer", - FolderPath = imagesDestination, + FolderPath = syncedDirectory .. "2048", 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) 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 index 5c9c6213a2..6ca46f124b 100644 --- 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 @@ -3,22 +3,22 @@ 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 +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 +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, +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/" @@ -61,11 +61,11 @@ local legend = { CartesianPosition = { 0.0, -0.5, -2.0 } } -asset.onInitialize(function() +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); + openspace.addScreenSpaceRenderable(legend) end) asset.onDeinitialize(function() 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 index 2eb9d36443..a14298c2c2 100644 --- 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 @@ -3,19 +3,19 @@ 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 +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/" @@ -24,26 +24,20 @@ local syncedDirectory = asset.syncedResource({ Name = Name, Type = "HttpSynchronization", Identifier = Identifier, - Version = 1 + Version = 1, + UnzipFiles = true }) -local imagesDestination = syncedDirectory .. "images" - local layer = { Identifier = Identifier, Name = Name, Enabled = asset.enabled, Type = "ImageSequenceTileLayer", - FolderPath = imagesDestination, + FolderPath = syncedDirectory .. "4000", 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) 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 index 1f386c4229..aefc22bddc 100644 --- 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 @@ -3,20 +3,20 @@ 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 +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/" @@ -47,9 +47,9 @@ local colorbar = { CartesianPosition = { 0.0, -0.5, -2.0 } } -asset.onInitialize(function() +asset.onInitialize(function() openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer) - openspace.addScreenSpaceRenderable(colorbar); + openspace.addScreenSpaceRenderable(colorbar) end) asset.onDeinitialize(function() 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 index 1992a53cab..0c9a8fb74c 100644 --- 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 @@ -3,14 +3,14 @@ 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 +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/" @@ -19,17 +19,17 @@ local syncedDirectory = asset.syncedResource({ Name = Name, Type = "HttpSynchronization", Identifier = Identifier, - Version = 1 + Version = 1, + UnzipFiles = true, + UnzipFilesDestination = "images" }) -local imagesDestination = syncedDirectory .. "images" - local layer = { Identifier = Identifier, Name = Name, Enabled = asset.enabled, Type = "ImageSequenceTileLayer", - FolderPath = imagesDestination, + FolderPath = syncedDirectory .. "images", Description = Description } @@ -45,15 +45,8 @@ local colorbar = { } 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); + openspace.addScreenSpaceRenderable(colorbar) end) asset.onDeinitialize(function() 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 index 7bc1d850da..09fc36f549 100644 --- 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 @@ -3,13 +3,13 @@ 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 +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/" @@ -18,11 +18,10 @@ local syncedDirectory = asset.syncedResource({ Name = Name, Type = "HttpSynchronization", Identifier = Identifier, - Version = 1 + Version = 1, + UnzipFiles = true }) -local imagesDestination = syncedDirectory .. "images" - local layer = { Identifier = Identifier, Name = Name, @@ -30,7 +29,7 @@ local layer = { Type = "TemporalTileLayer", Mode = "Folder", Folder = { - Folder = imagesDestination, + Folder = syncedDirectory .. "4096", -- 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" @@ -39,11 +38,6 @@ local layer = { } 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) 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 index 2cd8e3dc98..242f1f054b 100644 --- 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 @@ -3,11 +3,11 @@ 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, +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/" @@ -33,7 +33,7 @@ local layer_solar = { Description = Description } -asset.onInitialize(function() +asset.onInitialize(function() openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer_fraction) openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer_solar) end) 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 index 62e73fcd30..86d5b8dd7d 100644 --- 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 @@ -3,8 +3,8 @@ 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 +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/" @@ -13,17 +13,16 @@ local syncedDirectory = asset.syncedResource({ Name = Name, Type = "HttpSynchronization", Identifier = Identifier, - Version = 1 + Version = 1, + UnzipFiles = true }) -local imagesDestination = syncedDirectory .. "images" - local layer = { Identifier = Identifier, Name = Name, Enabled = asset.enabled, Type = "ImageSequenceTileLayer", - FolderPath = imagesDestination, + FolderPath = syncedDirectory .. "4096", Description = Description } @@ -38,13 +37,8 @@ local colorbar = { } 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(colorbar) end) asset.onDeinitialize(function() 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 index a92b6ddbe8..8cbed7808b 100644 --- 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 @@ -3,9 +3,9 @@ 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 +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/" @@ -14,17 +14,16 @@ local syncedDirectory = asset.syncedResource({ Name = Name, Type = "HttpSynchronization", Identifier = Identifier, - Version = 1 + Version = 1, + UnzipFiles = true }) -local imagesDestination = syncedDirectory .. "images" - local layer = { Identifier = Identifier, Name = Name, Enabled = asset.enabled, Type = "ImageSequenceTileLayer", - FolderPath = imagesDestination, + FolderPath = syncedDirectory .. "2048", Description = Description } @@ -39,13 +38,8 @@ local colorbar = { } 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); + openspace.addScreenSpaceRenderable(colorbar) end) asset.onDeinitialize(function() 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 index 6c71a326df..97f5ceb458 100644 --- 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 @@ -3,9 +3,9 @@ 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 +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/" @@ -14,17 +14,16 @@ local syncedDirectory = asset.syncedResource({ Name = Name, Type = "HttpSynchronization", Identifier = Identifier, - Version = 1 + Version = 1, + UnzipFiles = true }) -local imagesDestination = syncedDirectory .. "images" - local layer = { Identifier = Identifier, Name = Name, Enabled = asset.enabled, Type = "ImageSequenceTileLayer", - FolderPath = imagesDestination, + FolderPath = syncedDirectory .. "4320_png", Description = Description } @@ -39,13 +38,8 @@ local colorbar = { } 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); + openspace.addScreenSpaceRenderable(colorbar) end) asset.onDeinitialize(function() 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 index 01723a6791..65565f084d 100644 --- a/data/assets/scene/solarsystem/planets/earth/noaa-sos/oceans/shark.asset +++ b/data/assets/scene/solarsystem/planets/earth/noaa-sos/oceans/shark.asset @@ -3,14 +3,14 @@ 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 +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/" @@ -19,11 +19,10 @@ local syncedDirectory = asset.syncedResource({ Name = Name, Type = "HttpSynchronization", Identifier = Identifier, - Version = 1 + Version = 1, + UnzipFiles = true }) -local imagesDestination = syncedDirectory .. "images" - local layer = { Identifier = Identifier, Name = Name, @@ -31,7 +30,7 @@ local layer = { Type = "TemporalTileLayer", Mode = "Folder", Folder = { - Folder = imagesDestination, + Folder = syncedDirectory .. "2048", -- 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" @@ -40,11 +39,6 @@ local layer = { } 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) 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 index f4474a2ada..7d9ac05a6a 100644 --- 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 @@ -3,20 +3,20 @@ 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 +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/" @@ -46,9 +46,9 @@ local legend = { CartesianPosition = { 0.85, 0.0, -2.0 } } -asset.onInitialize(function() +asset.onInitialize(function() openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer) - openspace.addScreenSpaceRenderable(legend); + openspace.addScreenSpaceRenderable(legend) end) asset.onDeinitialize(function() 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 index d0c7c921b7..694a26bbe4 100644 --- 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 @@ -3,20 +3,20 @@ 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 +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/" @@ -46,9 +46,9 @@ local legend = { CartesianPosition = { 0.85, 0.0, -2.0 } } -asset.onInitialize(function() +asset.onInitialize(function() openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer) - openspace.addScreenSpaceRenderable(legend); + openspace.addScreenSpaceRenderable(legend) end) asset.onDeinitialize(function() 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 index 8c466c31cb..295363143d 100644 --- a/data/assets/scene/solarsystem/planets/earth/noaa-sos/oceans/shipping.asset +++ b/data/assets/scene/solarsystem/planets/earth/noaa-sos/oceans/shipping.asset @@ -3,15 +3,15 @@ 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 +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/" @@ -31,7 +31,7 @@ local layer = { Description = Description } -asset.onInitialize(function() +asset.onInitialize(function() openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer) end) 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 index 3f4196b566..db13b18e01 100644 --- 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 @@ -3,18 +3,18 @@ local globeIdentifier = asset.require("../../earth").Earth.Identifier local Name = "Fisheries Species Richness" local Identifier = "noaa-sos-oceans-species_richness" -local Description = [[Species 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 +local Description = [[Species 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/" @@ -45,9 +45,9 @@ local colorbar = { CartesianPosition = { 0.0, -0.5, -2.0 } } -asset.onInitialize(function() +asset.onInitialize(function() openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer) - openspace.addScreenSpaceRenderable(colorbar); + openspace.addScreenSpaceRenderable(colorbar) end) asset.onDeinitialize(function() 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 index a6a7f0165d..3cd8b360a4 100644 --- a/data/assets/scene/solarsystem/planets/earth/noaa-sos/oceans/sss.asset +++ b/data/assets/scene/solarsystem/planets/earth/noaa-sos/oceans/sss.asset @@ -3,12 +3,12 @@ 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 +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/" @@ -17,17 +17,16 @@ local syncedDirectory = asset.syncedResource({ Name = Name, Type = "HttpSynchronization", Identifier = Identifier, - Version = 1 + Version = 1, + UnzipFiles = true }) -local imagesDestination = syncedDirectory .. "images" - local layer = { Identifier = Identifier, Name = Name, Enabled = asset.enabled, Type = "ImageSequenceTileLayer", - FolderPath = imagesDestination, + FolderPath = syncedDirectory .. "4096", Description = Description } @@ -42,13 +41,8 @@ local colorbar = { } 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(colorbar) end) asset.onDeinitialize(function() 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 index dbd1416c99..23619d282f 100644 --- 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 @@ -3,14 +3,14 @@ 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 +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/" @@ -19,11 +19,10 @@ local syncedDirectory = asset.syncedResource({ Name = Name, Type = "HttpSynchronization", Identifier = Identifier, - Version = 1 + Version = 1, + UnzipFiles = true }) -local imagesDestination = syncedDirectory .. "images" - local layer = { Identifier = Identifier, Name = Name, @@ -31,7 +30,7 @@ local layer = { Type = "TemporalTileLayer", Mode = "Folder", Folder = { - Folder = imagesDestination, + Folder = syncedDirectory .. "4096", -- 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" @@ -40,11 +39,6 @@ local layer = { } 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) 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 index e659b6b5dd..8ceb171ddb 100644 --- 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 @@ -3,24 +3,24 @@ 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. +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/" @@ -61,7 +61,7 @@ local layer_null = { } -asset.onInitialize(function() +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) 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 index 362108fa59..3994301d28 100644 --- 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 @@ -3,21 +3,21 @@ 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 +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/" @@ -58,7 +58,7 @@ local layer_null = { } -asset.onInitialize(function() +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) 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 index 10ef41ea40..c29ee7f54f 100644 --- 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 @@ -3,22 +3,22 @@ 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 +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/" @@ -60,7 +60,7 @@ local layer_null = { } -asset.onInitialize(function() +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) 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 index 578adc305e..2fbd18e0db 100644 --- 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 @@ -3,24 +3,24 @@ 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 +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/" @@ -61,7 +61,7 @@ local layer_null = { } -asset.onInitialize(function() +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) 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 index 41e45bd71f..1c0f374eab 100644 --- 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 @@ -3,26 +3,26 @@ 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, +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/" @@ -63,7 +63,7 @@ local layer_null = { } -asset.onInitialize(function() +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) 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 index 7c3f652865..9916750682 100644 --- 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 @@ -3,31 +3,31 @@ 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, +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/" @@ -68,7 +68,7 @@ local layer_null = { } -asset.onInitialize(function() +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) 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 index 34808ea567..bba2409396 100644 --- 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 @@ -3,14 +3,14 @@ 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, +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/" @@ -51,7 +51,7 @@ local layer_null = { } -asset.onInitialize(function() +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) 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 index 624cc30b31..2bdc26cc5e 100644 --- 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 @@ -3,16 +3,16 @@ 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 +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/" @@ -53,7 +53,7 @@ local layer_null = { } -asset.onInitialize(function() +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) 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 index 31aee63d59..f619fd2faa 100644 --- 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 @@ -3,10 +3,10 @@ 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 +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//" @@ -47,7 +47,7 @@ local layer_null = { } -asset.onInitialize(function() +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) 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 index 84c4b55b30..19afae4379 100644 --- 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 @@ -3,19 +3,19 @@ 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 +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/" @@ -66,12 +66,12 @@ local legend = { } -asset.onInitialize(function() +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); + openspace.addScreenSpaceRenderable(legend) end) asset.onDeinitialize(function() 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 index f62853cada..70bd6a1fc2 100644 --- 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 @@ -3,14 +3,14 @@ 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 +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/" @@ -19,17 +19,17 @@ local syncedDirectory = asset.syncedResource({ Name = Name, Type = "HttpSynchronization", Identifier = Identifier, - Version = 1 + Version = 1, + UnzipFiles = true, + UnzipFilesDestination = "images" }) -local imagesDestination = syncedDirectory .. "images" - local layer = { Identifier = Identifier, Name = Name, Enabled = asset.enabled, Type = "ImageSequenceTileLayer", - FolderPath = imagesDestination, + FolderPath = syncedDirectory .. "images", Description = Description } @@ -44,14 +44,8 @@ local colorbar = { } 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); + openspace.addScreenSpaceRenderable(colorbar) end) asset.onDeinitialize(function() 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 index 7cd49e8745..717a67efea 100644 --- 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 @@ -3,11 +3,11 @@ 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 +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/" @@ -16,11 +16,10 @@ local syncedDirectory = asset.syncedResource({ Name = Name, Type = "HttpSynchronization", Identifier = Identifier, - Version = 1 + Version = 1, + UnzipFiles = true }) -local imagesDestination = syncedDirectory .. "images" - local layer = { Identifier = Identifier, Name = Name, @@ -28,7 +27,7 @@ local layer = { Type = "TemporalTileLayer", Mode = "Folder", Folder = { - Folder = imagesDestination, + Folder = syncedDirectory .. "new", -- See https://en.cppreference.com/w/cpp/io/manip/get_time for an explanation of the -- time formatting string Format = "vents_%Y.png" @@ -37,11 +36,6 @@ local layer = { } 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) 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 index ddaa2062a3..b58cc5414a 100644 --- 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 @@ -3,11 +3,11 @@ 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 +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/" @@ -27,7 +27,7 @@ local layer = { Description = Description } -asset.onInitialize(function() +asset.onInitialize(function() openspace.globebrowsing.addLayer(globeIdentifier, "ColorLayers", layer) end) 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 index 6f02adc20f..7589c4164b 100644 --- a/data/assets/scene/solarsystem/planets/earth/noaa-sos/oceans/vorticity.asset +++ b/data/assets/scene/solarsystem/planets/earth/noaa-sos/oceans/vorticity.asset @@ -3,12 +3,12 @@ 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 +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/" @@ -17,17 +17,16 @@ local syncedDirectory = asset.syncedResource({ Name = Name, Type = "HttpSynchronization", Identifier = Identifier, - Version = 1 + Version = 1, + UnzipFiles = true }) -local imagesDestination = syncedDirectory .. "images" - local layer = { Identifier = Identifier, Name = Name, Enabled = asset.enabled, Type = "ImageSequenceTileLayer", - FolderPath = imagesDestination, + FolderPath = syncedDirectory .. "frames", Description = Description } @@ -42,13 +41,8 @@ local colorbar = { } 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); + openspace.addScreenSpaceRenderable(colorbar) end) asset.onDeinitialize(function() 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 index 863ea5a1a9..0a57ed360d 100644 --- 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 @@ -3,9 +3,9 @@ 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 +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/" @@ -14,17 +14,16 @@ local syncedDirectory = asset.syncedResource({ Name = Name, Type = "HttpSynchronization", Identifier = Identifier, - Version = 1 + Version = 1, + UnzipFiles = true }) -local imagesDestination = syncedDirectory .. "images" - local layer = { Identifier = Identifier, Name = Name, Enabled = asset.enabled, Type = "ImageSequenceTileLayer", - FolderPath = imagesDestination, + FolderPath = syncedDirectory .. "4096", Description = Description } @@ -39,13 +38,8 @@ local colorbar = { } 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(colorbar) end) asset.onDeinitialize(function() 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 index 6870316965..25ea12e63a 100644 --- 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 @@ -3,11 +3,11 @@ 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 +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/" @@ -16,17 +16,16 @@ local syncedDirectory = asset.syncedResource({ Name = Name, Type = "HttpSynchronization", Identifier = Identifier, - Version = 1 + Version = 1, + UnzipFiles = true }) -local imagesDestination = syncedDirectory .. "images" - local layer = { Identifier = Identifier, Name = Name, Enabled = asset.enabled, Type = "ImageSequenceTileLayer", - FolderPath = imagesDestination, + FolderPath = syncedDirectory .. "4096", Description = Description } @@ -41,13 +40,8 @@ local colorbar = { } 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(colorbar) end) asset.onDeinitialize(function() 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 index 6ab7e729fb..9a4bf42a56 100644 --- 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 @@ -3,11 +3,11 @@ 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 +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/" @@ -16,17 +16,16 @@ local syncedDirectory = asset.syncedResource({ Name = Name, Type = "HttpSynchronization", Identifier = Identifier, - Version = 1 + Version = 1, + UnzipFiles = true }) -local imagesDestination = syncedDirectory .. "images" - local layer = { Identifier = Identifier, Name = Name, Enabled = asset.enabled, Type = "ImageSequenceTileLayer", - FolderPath = imagesDestination, + FolderPath = syncedDirectory .. "4096", Description = Description } @@ -41,13 +40,8 @@ local colorbar = { } 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(colorbar) end) asset.onDeinitialize(function() 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 index 9854a6c4f2..e2659c7b0e 100644 --- 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 @@ -3,9 +3,9 @@ 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 +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/" @@ -14,17 +14,16 @@ local syncedDirectory = asset.syncedResource({ Name = Name, Type = "HttpSynchronization", Identifier = Identifier, - Version = 1 + Version = 1, + UnzipFiles = true }) -local imagesDestination = syncedDirectory .. "images" - local layer = { Identifier = Identifier, Name = Name, Enabled = asset.enabled, Type = "ImageSequenceTileLayer", - FolderPath = imagesDestination, + FolderPath = syncedDirectory .. "4096", Description = Description } @@ -39,13 +38,8 @@ local colorbar = { } 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(colorbar) end) asset.onDeinitialize(function() 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 index be5df6cb54..db42698543 100644 --- 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 @@ -3,15 +3,15 @@ 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 +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/" @@ -20,11 +20,10 @@ local syncedDirectory = asset.syncedResource({ Name = Name, Type = "HttpSynchronization", Identifier = Identifier, - Version = 1 + Version = 1, + UnzipFiles = true }) -local imagesDestination = syncedDirectory .. "images" - local layer = { Identifier = Identifier, Name = Name, @@ -32,7 +31,7 @@ local layer = { Type = "TemporalTileLayer", Mode = "Folder", Folder = { - Folder = imagesDestination, + Folder = syncedDirectory .. "4096_png", -- 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" @@ -41,11 +40,6 @@ local layer = { } 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) 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 index 40e8c9f16f..adb39f8b5e 100644 --- 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 @@ -3,23 +3,23 @@ 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 +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/" @@ -28,11 +28,10 @@ local syncedDirectory = asset.syncedResource({ Name = Name, Type = "HttpSynchronization", Identifier = Identifier, - Version = 1 + Version = 1, + UnzipFiles = true }) -local imagesDestination = syncedDirectory .. "images" - local layer = { Identifier = Identifier, Name = Name, @@ -40,7 +39,7 @@ local layer = { Type = "TemporalTileLayer", Mode = "Folder", Folder = { - Folder = imagesDestination, + Folder = syncedDirectory .. "4096", -- 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" @@ -49,11 +48,6 @@ local layer = { } 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) 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 index c36d807d9f..1a950d2205 100644 --- a/data/assets/scene/solarsystem/planets/earth/noaa-sos/overlays/cables.asset +++ b/data/assets/scene/solarsystem/planets/earth/noaa-sos/overlays/cables.asset @@ -3,9 +3,9 @@ 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 +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/" @@ -25,7 +25,7 @@ local layer = { Description = Description } -asset.onInitialize(function() +asset.onInitialize(function() openspace.globebrowsing.addLayer(globeIdentifier, "Overlays", layer) end) 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 index ec81d3486c..236b65ad44 100644 --- a/data/assets/scene/solarsystem/planets/earth/noaa-sos/overlays/capitals.asset +++ b/data/assets/scene/solarsystem/planets/earth/noaa-sos/overlays/capitals.asset @@ -3,8 +3,8 @@ 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 +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/" @@ -24,7 +24,7 @@ local layer = { Description = Description } -asset.onInitialize(function() +asset.onInitialize(function() openspace.globebrowsing.addLayer(globeIdentifier, "Overlays", layer) end) 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 index dcdc620714..e1ac452be8 100644 --- 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 @@ -3,9 +3,9 @@ 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 +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/" @@ -25,7 +25,7 @@ local layer = { Description = Description } -asset.onInitialize(function() +asset.onInitialize(function() openspace.globebrowsing.addLayer(globeIdentifier, "Overlays", layer) end) 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 index 865601c21e..b8d13dc4e8 100644 --- 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 @@ -3,8 +3,8 @@ 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 +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/" @@ -24,7 +24,7 @@ local layer = { Description = Description } -asset.onInitialize(function() +asset.onInitialize(function() openspace.globebrowsing.addLayer(globeIdentifier, "Overlays", layer) end) 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 index 6bc48a3b2a..f9024bcb9b 100644 --- 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 @@ -3,8 +3,8 @@ 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 +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/" @@ -24,7 +24,7 @@ local layer = { Description = Description } -asset.onInitialize(function() +asset.onInitialize(function() openspace.globebrowsing.addLayer(globeIdentifier, "Overlays", layer) end) 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 index b950cd9b84..b623cb3e68 100644 --- 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 @@ -3,8 +3,8 @@ 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 +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/" @@ -24,7 +24,7 @@ local layer = { Description = Description } -asset.onInitialize(function() +asset.onInitialize(function() openspace.globebrowsing.addLayer(globeIdentifier, "Overlays", layer) end) 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 index f81e133526..5b2e004378 100644 --- 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 @@ -3,8 +3,8 @@ 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 +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/" @@ -24,7 +24,7 @@ local layer = { Description = Description } -asset.onInitialize(function() +asset.onInitialize(function() openspace.globebrowsing.addLayer(globeIdentifier, "Overlays", layer) end) 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 index b7ee77fad7..023d48c414 100644 --- 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 @@ -3,8 +3,8 @@ 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 +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/" @@ -24,7 +24,7 @@ local layer = { Description = Description } -asset.onInitialize(function() +asset.onInitialize(function() openspace.globebrowsing.addLayer(globeIdentifier, "Overlays", layer) end) 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 index b2ae4dfea9..152ee9db30 100644 --- 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 @@ -3,9 +3,9 @@ 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 +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/" @@ -25,7 +25,7 @@ local layer = { Description = Description } -asset.onInitialize(function() +asset.onInitialize(function() openspace.globebrowsing.addLayer(globeIdentifier, "Overlays", layer) end) 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 index 29a705d988..1660783df1 100644 --- a/data/assets/scene/solarsystem/planets/earth/noaa-sos/overlays/currents.asset +++ b/data/assets/scene/solarsystem/planets/earth/noaa-sos/overlays/currents.asset @@ -3,8 +3,8 @@ 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 +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/" @@ -37,7 +37,7 @@ local layer_labels = { Description = Description } -asset.onInitialize(function() +asset.onInitialize(function() openspace.globebrowsing.addLayer(globeIdentifier, "Overlays", layer_combined) openspace.globebrowsing.addLayer(globeIdentifier, "Overlays", layer_currents) openspace.globebrowsing.addLayer(globeIdentifier, "Overlays", layer_labels) 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 index f4b64c3166..b234704851 100644 --- 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 @@ -3,10 +3,10 @@ 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 +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/" @@ -26,7 +26,7 @@ local layer = { Description = Description } -asset.onInitialize(function() +asset.onInitialize(function() openspace.globebrowsing.addLayer(globeIdentifier, "Overlays", layer) end) 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 index 40fdc5f82f..5de30d0d10 100644 --- 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 @@ -3,8 +3,8 @@ 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 +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/" @@ -24,7 +24,7 @@ local layer = { Description = Description } -asset.onInitialize(function() +asset.onInitialize(function() openspace.globebrowsing.addLayer(globeIdentifier, "Overlays", layer) end) 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 index f86ca4e142..94695d1953 100644 --- 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 @@ -3,9 +3,9 @@ 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 +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/" @@ -25,7 +25,7 @@ local layer = { Description = Description } -asset.onInitialize(function() +asset.onInitialize(function() openspace.globebrowsing.addLayer(globeIdentifier, "Overlays", layer) end) 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 index f060ca6a7d..7728bda7a3 100644 --- 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 @@ -3,8 +3,8 @@ 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 +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/" @@ -24,7 +24,7 @@ local layer = { Description = Description } -asset.onInitialize(function() +asset.onInitialize(function() openspace.globebrowsing.addLayer(globeIdentifier, "Overlays", layer) end) 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 index 286af64a34..178aaf8179 100644 --- 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 @@ -3,8 +3,8 @@ 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 +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/" @@ -24,7 +24,7 @@ local layer = { Description = Description } -asset.onInitialize(function() +asset.onInitialize(function() openspace.globebrowsing.addLayer(globeIdentifier, "Overlays", layer) end) 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 index 70ac0cd060..33db82e521 100644 --- 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 @@ -3,8 +3,8 @@ 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 +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/" @@ -24,7 +24,7 @@ local layer = { Description = Description } -asset.onInitialize(function() +asset.onInitialize(function() openspace.globebrowsing.addLayer(globeIdentifier, "Overlays", layer) end) 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 index 22e72662e1..ce702239e4 100644 --- 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 @@ -3,9 +3,9 @@ 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 +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/" @@ -25,7 +25,7 @@ local layer = { Description = Description } -asset.onInitialize(function() +asset.onInitialize(function() openspace.globebrowsing.addLayer(globeIdentifier, "Overlays", layer) end) 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 index c8b4c51b9e..d07c566c94 100644 --- 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 @@ -3,8 +3,8 @@ 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 +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/" @@ -24,7 +24,7 @@ local layer = { Description = Description } -asset.onInitialize(function() +asset.onInitialize(function() openspace.globebrowsing.addLayer(globeIdentifier, "Overlays", layer) end) 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 index 30f5603162..dae2bb9586 100644 --- 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 @@ -3,8 +3,8 @@ 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 +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/" @@ -24,7 +24,7 @@ local layer = { Description = Description } -asset.onInitialize(function() +asset.onInitialize(function() openspace.globebrowsing.addLayer(globeIdentifier, "Overlays", layer) end) 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 index ef3171ad49..602a090f61 100644 --- a/data/assets/scene/solarsystem/planets/earth/noaa-sos/overlays/railroad.asset +++ b/data/assets/scene/solarsystem/planets/earth/noaa-sos/overlays/railroad.asset @@ -3,9 +3,9 @@ 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 +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/" @@ -25,7 +25,7 @@ local layer = { Description = Description } -asset.onInitialize(function() +asset.onInitialize(function() openspace.globebrowsing.addLayer(globeIdentifier, "Overlays", layer) end) 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 index e1177aa185..fb4f79410e 100644 --- a/data/assets/scene/solarsystem/planets/earth/noaa-sos/overlays/rivers.asset +++ b/data/assets/scene/solarsystem/planets/earth/noaa-sos/overlays/rivers.asset @@ -3,9 +3,9 @@ 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 +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/" @@ -25,7 +25,7 @@ local layer = { Description = Description } -asset.onInitialize(function() +asset.onInitialize(function() openspace.globebrowsing.addLayer(globeIdentifier, "Overlays", layer) end) 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 index 76cce4d9f5..99e6312c1a 100644 --- 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 @@ -3,9 +3,9 @@ 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 +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/" @@ -25,7 +25,7 @@ local layer = { Description = Description } -asset.onInitialize(function() +asset.onInitialize(function() openspace.globebrowsing.addLayer(globeIdentifier, "Overlays", layer) end) 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 index 272073f7e9..c354bd7cbe 100644 --- 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 @@ -3,9 +3,9 @@ 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 +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/" @@ -25,7 +25,7 @@ local layer = { Description = Description } -asset.onInitialize(function() +asset.onInitialize(function() openspace.globebrowsing.addLayer(globeIdentifier, "Overlays", layer) end) 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 index 09ae4c5d9c..273c079c89 100644 --- 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 @@ -3,8 +3,8 @@ 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 +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/" @@ -24,7 +24,7 @@ local layer = { Description = Description } -asset.onInitialize(function() +asset.onInitialize(function() openspace.globebrowsing.addLayer(globeIdentifier, "Overlays", layer) end) 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 index b343704bf4..26c71584d5 100644 --- 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 @@ -3,8 +3,8 @@ 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 +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/" @@ -24,7 +24,7 @@ local layer = { Description = Description } -asset.onInitialize(function() +asset.onInitialize(function() openspace.globebrowsing.addLayer(globeIdentifier, "Overlays", layer) end) 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 index 1682d764fa..09d9d387dd 100644 --- a/data/assets/scene/solarsystem/planets/earth/noaa-sos/overlays/timezones.asset +++ b/data/assets/scene/solarsystem/planets/earth/noaa-sos/overlays/timezones.asset @@ -3,8 +3,8 @@ 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 +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/" @@ -24,7 +24,7 @@ local layer = { Description = Description } -asset.onInitialize(function() +asset.onInitialize(function() openspace.globebrowsing.addLayer(globeIdentifier, "Overlays", layer) end) 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 7ff3aa8fc1..14599c44b9 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 @@ -27,7 +27,7 @@ local volume = { }, Transform = { Scale = { - Type = "StaticScale", + Type = "StaticScale", Scale = maxApogee -- do not multiply this. That will not show real representation. } } @@ -36,11 +36,11 @@ local volume = { asset.onInitialize(function() openspace.addSceneGraphNode(volume) end) - + asset.onDeinitialize(function() openspace.removeSceneGraphNode(volume) end) - + asset.export(volume) 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 f7aa9ec5e2..f2837dcec6 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 @@ -27,7 +27,7 @@ local volume = { }, Transform = { Scale = { - Type = "StaticScale", + Type = "StaticScale", Scale = maxApogee --do not multiply this. That will not show real representation. } } @@ -36,11 +36,11 @@ local volume = { asset.onInitialize(function() openspace.addSceneGraphNode(volume) end) - + asset.onDeinitialize(function() openspace.removeSceneGraphNode(volume) end) - + asset.export(volume) 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 65bd7b1e0e..6baae4af2f 100644 --- a/data/assets/scene/solarsystem/planets/earth/satellites/misc/iss.asset +++ b/data/assets/scene/solarsystem/planets/earth/satellites/misc/iss.asset @@ -21,7 +21,6 @@ local iss = { Identifier = "ISS", Parent = transforms.EarthInertial.Identifier, BoundingSphere = 54.5, -- half the width - InteractionSphere = 30, Transform = { Translation = { Type = "GPTranslation", @@ -117,6 +116,19 @@ local IssLabel = { } } +local focus_iss = { + Identifier = "os.solarsystem.earth.iss.focus", + Name = "Focus on ISS", + Command = [[ + openspace.setPropertyValueSingle('NavigationHandler.OrbitalNavigator.Aim', ''); + openspace.setPropertyValueSingle('NavigationHandler.OrbitalNavigator.Anchor', 'ISS'); + openspace.setPropertyValueSingle('NavigationHandler.OrbitalNavigator.RetargetAnchor', nil); + ]], + Documentation = "Refocuses the camera on the ISS", + GuiPath = "/Solar System/Earth", + isLocal = false +} + asset.onInitialize(function () local i = openspace.space.readKeplerFile(omm .. "ISS.txt", "OMM") issTrail.Renderable.Period = i[0].Period / (60 * 60 * 24) @@ -126,9 +138,12 @@ asset.onInitialize(function () openspace.setPropertyValueSingle("Scene.ISSModel.Rotation.yAxisInvertObject", true) openspace.addSceneGraphNode(issTrail) + openspace.action.registerAction(focus_iss) end) asset.onDeinitialize(function () + openspace.action.removeAction(focus_iss) + openspace.removeSceneGraphNode(issTrail) openspace.removeSceneGraphNode(parentNode) openspace.removeSceneGraphNode(iss) @@ -141,7 +156,7 @@ asset.export(iss) asset.meta = { Name = "ISS", - Version = "1.0", + Version = "1.1", Description = [[Model and Trail for ISS. Model from NASA 3D models, trail from Celestrak]], Author = "OpenSpace Team", diff --git a/data/assets/scene/solarsystem/planets/earth/trail.asset b/data/assets/scene/solarsystem/planets/earth/trail.asset index 4461ebc028..c244e7d85d 100644 --- a/data/assets/scene/solarsystem/planets/earth/trail.asset +++ b/data/assets/scene/solarsystem/planets/earth/trail.asset @@ -27,11 +27,11 @@ local EarthTrail = { asset.onInitialize(function() openspace.addSceneGraphNode(EarthTrail) end) - + asset.onDeinitialize(function() openspace.removeSceneGraphNode(EarthTrail) end) - + asset.export(EarthTrail) diff --git a/data/assets/scene/solarsystem/planets/earth/trail_barycenter.asset b/data/assets/scene/solarsystem/planets/earth/trail_barycenter.asset index 141de9ad80..6b01e450df 100644 --- a/data/assets/scene/solarsystem/planets/earth/trail_barycenter.asset +++ b/data/assets/scene/solarsystem/planets/earth/trail_barycenter.asset @@ -28,11 +28,11 @@ local EarthBarycenterTrail = { asset.onInitialize(function() openspace.addSceneGraphNode(EarthBarycenterTrail) end) - + asset.onDeinitialize(function() openspace.removeSceneGraphNode(EarthBarycenterTrail) end) - + asset.export(EarthBarycenterTrail) diff --git a/data/assets/scene/solarsystem/planets/jupiter/callisto/callisto.asset b/data/assets/scene/solarsystem/planets/jupiter/callisto/callisto.asset index 0f43db985b..6f038f0fa0 100644 --- a/data/assets/scene/solarsystem/planets/jupiter/callisto/callisto.asset +++ b/data/assets/scene/solarsystem/planets/jupiter/callisto/callisto.asset @@ -52,14 +52,41 @@ local Callisto = { } } +local CallistoLabel = { + Identifier = "CallistoLabel", + Parent = Callisto.Identifier, + Renderable = { + Enabled = false, + Type = "RenderableLabel", + Text = "Callisto", + FontSize = 70.0, + Size = 6.0, + MinMaxSize = { 1, 40 }, + OrientationOption = "Camera View Direction", + BlendMode = "Additive", + EnableFading = true, + FadeUnit = "Gm", + FadeDistances = { 1.0, 10.0 }, + FadeWidths = { 0.5, 10.0 } + }, + Tag = { "solarsystem_labels", "moon_labels", "major_moon_labels" }, + GUI = { + Name = "Callisto Label", + Path = "/Solar System/Planets/Jupiter/Moons", + Description = "Label for Jupiter's moon Callisto" + } +} + asset.onInitialize(function() openspace.addSceneGraphNode(Callisto) + openspace.addSceneGraphNode(CallistoLabel) end) - + asset.onDeinitialize(function() + openspace.removeSceneGraphNode(CallistoLabel) openspace.removeSceneGraphNode(Callisto) end) - + asset.export(Callisto) diff --git a/data/assets/scene/solarsystem/planets/jupiter/callisto/trail.asset b/data/assets/scene/solarsystem/planets/jupiter/callisto/trail.asset index 04663f891a..4e278dd93d 100644 --- a/data/assets/scene/solarsystem/planets/jupiter/callisto/trail.asset +++ b/data/assets/scene/solarsystem/planets/jupiter/callisto/trail.asset @@ -29,11 +29,11 @@ local CallistoTrail = { asset.onInitialize(function() openspace.addSceneGraphNode(CallistoTrail) end) - + asset.onDeinitialize(function() openspace.removeSceneGraphNode(CallistoTrail) end) - + asset.export(CallistoTrail) diff --git a/data/assets/scene/solarsystem/planets/jupiter/europa/europa.asset b/data/assets/scene/solarsystem/planets/jupiter/europa/europa.asset index 1c251f4e82..002cce3765 100644 --- a/data/assets/scene/solarsystem/planets/jupiter/europa/europa.asset +++ b/data/assets/scene/solarsystem/planets/jupiter/europa/europa.asset @@ -51,14 +51,41 @@ local Europa = { } } +local EuropaLabel = { + Identifier = "EuropaLabel", + Parent = Europa.Identifier, + Renderable = { + Enabled = false, + Type = "RenderableLabel", + Text = "Europa", + FontSize = 70.0, + Size = 6.0, + MinMaxSize = { 1, 40 }, + OrientationOption = "Camera View Direction", + BlendMode = "Additive", + EnableFading = true, + FadeUnit = "Gm", + FadeDistances = { 1.0, 10.0 }, + FadeWidths = { 0.5, 10.0 } + }, + Tag = { "solarsystem_labels", "moon_labels", "major_moon_labels" }, + GUI = { + Name = "Europa Label", + Path = "/Solar System/Planets/Jupiter/Moons", + Description = "Label for Jupiter's moon Europa" + } +} + asset.onInitialize(function() openspace.addSceneGraphNode(Europa) + openspace.addSceneGraphNode(EuropaLabel) end) - + asset.onDeinitialize(function() + openspace.removeSceneGraphNode(EuropaLabel) openspace.removeSceneGraphNode(Europa) end) - + asset.export(Europa) diff --git a/data/assets/scene/solarsystem/planets/jupiter/europa/trail.asset b/data/assets/scene/solarsystem/planets/jupiter/europa/trail.asset index 3972456a14..5a5e6e7e1b 100644 --- a/data/assets/scene/solarsystem/planets/jupiter/europa/trail.asset +++ b/data/assets/scene/solarsystem/planets/jupiter/europa/trail.asset @@ -27,11 +27,11 @@ local EuropaTrail = { asset.onInitialize(function() openspace.addSceneGraphNode(EuropaTrail) end) - + asset.onDeinitialize(function() openspace.removeSceneGraphNode(EuropaTrail) end) - + asset.export(EuropaTrail) diff --git a/data/assets/scene/solarsystem/planets/jupiter/ganymede/ganymede.asset b/data/assets/scene/solarsystem/planets/jupiter/ganymede/ganymede.asset index 95e9f8ee30..40fad40f2c 100644 --- a/data/assets/scene/solarsystem/planets/jupiter/ganymede/ganymede.asset +++ b/data/assets/scene/solarsystem/planets/jupiter/ganymede/ganymede.asset @@ -51,14 +51,42 @@ local Ganymede = { } } +local GanymedeLabel = { + Identifier = "GanymedeLabel", + Parent = Ganymede.Identifier, + Renderable = { + Enabled = false, + Type = "RenderableLabel", + Text = "Ganymede", + FontSize = 70.0, + Size = 6.0, + MinMaxSize = { 1, 40 }, + OrientationOption = "Camera View Direction", + BlendMode = "Additive", + EnableFading = true, + FadeUnit = "Gm", + FadeDistances = { 1.0, 10.0 }, + FadeWidths = { 0.5, 10.0 } + }, + Tag = { "solarsystem_labels", "moon_labels", "major_moon_labels" }, + GUI = { + Name = "Ganymede Label", + Path = "/Solar System/Planets/Jupiter/Moons", + Description = "Label for Jupiter's moon Ganymede" + } +} + + asset.onInitialize(function() openspace.addSceneGraphNode(Ganymede) + openspace.addSceneGraphNode(GanymedeLabel) end) - + asset.onDeinitialize(function() + openspace.removeSceneGraphNode(GanymedeLabel) openspace.removeSceneGraphNode(Ganymede) end) - + asset.export(Ganymede) diff --git a/data/assets/scene/solarsystem/planets/jupiter/ganymede/trail.asset b/data/assets/scene/solarsystem/planets/jupiter/ganymede/trail.asset index 66afd7968e..974be0f559 100644 --- a/data/assets/scene/solarsystem/planets/jupiter/ganymede/trail.asset +++ b/data/assets/scene/solarsystem/planets/jupiter/ganymede/trail.asset @@ -29,11 +29,11 @@ local GanymedeTrail = { asset.onInitialize(function() openspace.addSceneGraphNode(GanymedeTrail) end) - + asset.onDeinitialize(function() openspace.removeSceneGraphNode(GanymedeTrail) end) - + asset.export(GanymedeTrail) diff --git a/data/assets/scene/solarsystem/planets/jupiter/io/io.asset b/data/assets/scene/solarsystem/planets/jupiter/io/io.asset index 6e10f323e8..ff28967ee9 100644 --- a/data/assets/scene/solarsystem/planets/jupiter/io/io.asset +++ b/data/assets/scene/solarsystem/planets/jupiter/io/io.asset @@ -51,14 +51,43 @@ local Io = { } } + +local IoLabel = { + Identifier = "IoLabel", + Parent = Io.Identifier, + Renderable = { + Enabled = false, + Type = "RenderableLabel", + Text = "Io", + FontSize = 70.0, + Size = 6.0, + MinMaxSize = { 1, 40 }, + OrientationOption = "Camera View Direction", + BlendMode = "Additive", + EnableFading = true, + FadeUnit = "Gm", + FadeDistances = { 1.0, 10.0 }, + FadeWidths = { 0.5, 10.0 } + }, + Tag = { "solarsystem_labels", "moon_labels", "major_moon_labels" }, + GUI = { + Name = "Io Label", + Path = "/Solar System/Planets/Jupiter/Moons", + Description = "Label for Jupiter's moon Io" + } +} + + asset.onInitialize(function() openspace.addSceneGraphNode(Io) + openspace.addSceneGraphNode(IoLabel) end) - + asset.onDeinitialize(function() + openspace.removeSceneGraphNode(IoLabel) openspace.removeSceneGraphNode(Io) end) - + asset.export(Io) diff --git a/data/assets/scene/solarsystem/planets/jupiter/io/trail.asset b/data/assets/scene/solarsystem/planets/jupiter/io/trail.asset index a697b5d2d7..3c963617bb 100644 --- a/data/assets/scene/solarsystem/planets/jupiter/io/trail.asset +++ b/data/assets/scene/solarsystem/planets/jupiter/io/trail.asset @@ -29,11 +29,11 @@ local IoTrail = { asset.onInitialize(function() openspace.addSceneGraphNode(IoTrail) end) - + asset.onDeinitialize(function() openspace.removeSceneGraphNode(IoTrail) end) - + asset.export(IoTrail) diff --git a/data/assets/scene/solarsystem/planets/jupiter/jupiter.asset b/data/assets/scene/solarsystem/planets/jupiter/jupiter.asset index 4ed9f02336..c01e8ca6ef 100644 --- a/data/assets/scene/solarsystem/planets/jupiter/jupiter.asset +++ b/data/assets/scene/solarsystem/planets/jupiter/jupiter.asset @@ -48,10 +48,14 @@ local JupiterLabel = { Type = "RenderableLabel", Text = "Jupiter", FontSize = 70.0, - Size = 8.77, - MinMaxSize = { 1, 100 }, + Size = 8.75, + MinMaxSize = { 1, 50 }, OrientationOption = "Camera View Direction", - BlendMode = "Additive" + BlendMode = "Additive", + EnableFading = true, + FadeUnit = "au", + FadeDistances = { 3.0, 40.0 }, + FadeWidths = { 1.0, 60.0 } }, Tag = { "solarsystem_labels" }, GUI = { @@ -64,12 +68,12 @@ 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) 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 a454b28d68..0db8004434 100644 --- a/data/assets/scene/solarsystem/planets/jupiter/minor/ananke_group.asset +++ b/data/assets/scene/solarsystem/planets/jupiter/minor/ananke_group.asset @@ -6,13 +6,14 @@ local kernel = asset.require("../kernels").jup341 local parentIdentifier = transforms.JupiterBarycenter.Identifier local parentSpice = "JUPITER BARYCENTER" -local tags = { "moon_solarSystem", "moon_giants", "moon_jupiter", "moon_ananke", "moon_minor" } +local tags = { "moon_solarSystem", "moon_giants", "moon_jupiter", "moon_ananke", "moon_minor", "moon_minor_jupiter" } local trailColor = { 0.4, 0.3, 0.01 } local trailTags = { "moonTrail_solarSystem", "moonTrail_giants", "moonTrail_jupiter", - "moonTrail_minor" + "moonTrail_minor", + "moonTrail_minor_jupiter" } local anankeGroup = { @@ -207,22 +208,62 @@ local anankeGroup = { } } +-- Generate all moon labels +local moon_labels = {} + +for i, moon in ipairs(anankeGroup) do + local moonName = moon.GUI.Name or moon.Identifier + moon_labels[i] = { + Identifier = moon.Identifier .. "Label", + Parent = moon.Identifier, + Renderable = { + Enabled = false, + Type = "RenderableLabel", + Text = moonName, + FontSize = 70.0, + Size = 7.1, + MinMaxSize = { 1, 25 }, + OrientationOption = "Camera View Direction", + BlendMode = "Additive", + EnableFading = true, + FadeUnit = "Gm", + FadeDistances = { 1.5, 90.0 }, + FadeWidths = { 0.5, 90.0 } + }, + Tag = { "solarsystem_labels", "moon_labels", "minor_moon_labels" }, + GUI = { + Name = moonName .. " Label", + Path = "/Solar System/Planets/Jupiter/Moons", + Description = "Label for Jupiter's moon " .. moonName .. " (Ananke group)" + } + } +end + + local nodes = proceduralGlobes.createGlobes(anankeGroup) asset.onInitialize(function() - for i, node in ipairs(nodes) do + for _, node in ipairs(nodes) do openspace.addSceneGraphNode(node) end + + for _, moonlabel in ipairs(moon_labels) do + openspace.addSceneGraphNode(moonlabel) + end end) - + asset.onDeinitialize(function() + for i = #moon_labels, 1, -1 do + openspace.removeSceneGraphNode(moon_labels[i]) + end + for i = #nodes, 1, -1 do openspace.removeSceneGraphNode(nodes[i]) end end) - -for i, node in ipairs(nodes) do - asset.export( node) + +for _, node in ipairs(nodes) do + asset.export(node) end 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 d142429a86..683cf0c489 100644 --- a/data/assets/scene/solarsystem/planets/jupiter/minor/carme_group.asset +++ b/data/assets/scene/solarsystem/planets/jupiter/minor/carme_group.asset @@ -6,13 +6,14 @@ local kernel = asset.require("../kernels").jup341 local parentIdentifier = transforms.JupiterBarycenter.Identifier local parentSpice = "JUPITER BARYCENTER" -local tags = { "moon_solarSystem", "moon_giants", "moon_jupiter", "moon_carme", "moon_minor" } +local tags = { "moon_solarSystem", "moon_giants", "moon_jupiter", "moon_carme", "moon_minor", "moon_minor_jupiter" } local trailColor = { 0.4, 0.3, 0.01 } local trailTags = { "moonTrail_solarSystem", "moonTrail_giants", "moonTrail_jupiter", - "moonTrail_minor" + "moonTrail_minor", + "moonTrail_minor_jupiter" } local carmeGroup = { @@ -275,21 +276,63 @@ local carmeGroup = { } } + +-- Generate labels for each moon +local moon_labels = {} + +for i, moon in ipairs(carmeGroup) do + local moonName = moon.GUI.Name or moon.Identifier + moon_labels[i] = { + Identifier = moon.Identifier .. "Label", + Parent = moon.Identifier, + Renderable = { + Enabled = false, + Type = "RenderableLabel", + Text = moonName, + FontSize = 70.0, + Size = 7.1, + MinMaxSize = { 1, 25 }, + OrientationOption = "Camera View Direction", + BlendMode = "Additive", + EnableFading = true, + FadeUnit = "Gm", + FadeDistances = { 2.0, 125.0 }, + FadeWidths = { 0.5, 50.0 } + }, + Tag = { "solarsystem_labels", "moon_labels", "minor_moon_labels" }, + GUI = { + Name = moonName .. " Label", + Path = "/Solar System/Planets/Jupiter/Moons", + Description = "Label for Jupiter's moon " .. moonName .. " (Carme group)" + } + } +end + + + local nodes = proceduralGlobes.createGlobes(carmeGroup) asset.onInitialize(function() - for i, node in ipairs(nodes) do + for _, node in ipairs(nodes) do openspace.addSceneGraphNode(node) end + + for _, moonlabel in ipairs(moon_labels) do + openspace.addSceneGraphNode(moonlabel) + end end) - + asset.onDeinitialize(function() + for i = #moon_labels, 1, -1 do + openspace.removeSceneGraphNode(moon_labels[i]) + end + for i = #nodes, 1, -1 do openspace.removeSceneGraphNode(nodes[i]) end end) - -for i, node in ipairs(nodes) do + +for _, node in ipairs(nodes) do asset.export(node) end 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 9072961ae8..24834899a0 100644 --- a/data/assets/scene/solarsystem/planets/jupiter/minor/carpo_group.asset +++ b/data/assets/scene/solarsystem/planets/jupiter/minor/carpo_group.asset @@ -6,13 +6,14 @@ local kernel = asset.require("../kernels").jup341 local parentIdentifier = transforms.JupiterBarycenter.Identifier local parentSpice = "JUPITER BARYCENTER" -local tags = { "moon_solarSystem", "moon_giants", "moon_jupiter", "moon_carpo", "moon_minor" } +local tags = { "moon_solarSystem", "moon_giants", "moon_jupiter", "moon_carpo", "moon_minor", "moon_minor_jupiter" } local trailColor = { 0.4, 0.3, 0.01 } local trailTags = { "moonTrail_solarSystem", "moonTrail_giants", "moonTrail_jupiter", - "moonTrail_minor" + "moonTrail_minor", + "moonTrail_minor_jupiter" } local carpoGroup = { @@ -35,21 +36,87 @@ local carpoGroup = { } } +-- Generate labels for each moon +local moon_labels = {} + +for i, moon in ipairs(carpoGroup) do + local moonName = moon.GUI.Name or moon.Identifier + moon_labels[i] = { + Identifier = moon.Identifier .. "Label", + Parent = moon.Identifier, + Renderable = { + Enabled = false, + Type = "RenderableLabel", + Text = moonName, + FontSize = 70.0, + Size = 7.1, + MinMaxSize = { 1, 25 }, + OrientationOption = "Camera View Direction", + BlendMode = "Additive", + EnableFading = true, + FadeUnit = "Gm", + FadeDistances = { 1.0, 100.0 }, + FadeWidths = { 0.0, 100.0 } + }, + Tag = { "solarsystem_labels", "moon_labels", "minor_moon_labels" }, + GUI = { + Name = moonName .. " Label", + Path = "/Solar System/Planets/Jupiter/Moons", + Description = "Label for Jupiter's moon " .. moonName .. " (Carpo group)" + } + } + + -- 'Hacky' solution to case where the main label gets culled on approach due to its onscreen size. + -- We need the size of the original label to be big as it needs to be legible from long distances when focusing on Jupiter. + moon_labels[i+1] = { + Identifier = moon.Identifier .. "LabelNear", + Parent = moon.Identifier, + Renderable = { + Enabled = false, + Type = "RenderableLabel", + Text = moonName, + FontSize = 70.0, + Size = 5.5, + MinMaxSize = { 1, 25 }, + OrientationOption = "Camera View Direction", + BlendMode = "Additive", + EnableFading = true, + FadeUnit = "Gm", + FadeDistances = { 0.2, 1.0 }, + FadeWidths = { 0.1, 0.0 } + }, + Tag = { "solarsystem_labels", "moon_labels", "minor_moon_labels" }, + GUI = { + Name = moonName .. " Label (Near)", + Path = "/Solar System/Planets/Jupiter/Moons", + Description = "Transitional Label for close-range viewing of " .. moonName .. " (Carpo group)" + } + } +end + local nodes = proceduralGlobes.createGlobes(carpoGroup) -asset.onInitialize(function() - for i, node in ipairs(nodes) do +asset.onInitialize(function() + for _, node in ipairs(nodes) do openspace.addSceneGraphNode(node) end + + for _, moonlabel in ipairs(moon_labels) do + openspace.addSceneGraphNode(moonlabel) + end end) - + asset.onDeinitialize(function() + for i = #moon_labels, 1, -1 do + openspace.removeSceneGraphNode(moon_labels[i]) + end + for i = #nodes, 1, -1 do openspace.removeSceneGraphNode(nodes[i]) end end) - -for i, node in ipairs(nodes) do + +for _, node in ipairs(nodes) do asset.export(node) end 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 a4789cf0b9..e66ae2fa9c 100644 --- a/data/assets/scene/solarsystem/planets/jupiter/minor/himalia_group.asset +++ b/data/assets/scene/solarsystem/planets/jupiter/minor/himalia_group.asset @@ -6,13 +6,14 @@ local kernel = asset.require("../kernels").jup341 local parentIdentifier = transforms.JupiterBarycenter.Identifier local parentSpice = "JUPITER BARYCENTER" -local tags = { "moon_solarSystem", "moon_giants", "moon_jupiter", "moon_himalia", "moon_minor" } +local tags = { "moon_solarSystem", "moon_giants", "moon_jupiter", "moon_himalia", "moon_minor", "moon_minor_jupiter" } local trailColor = { 0.4, 0.3, 0.01 } local trailTags = { "moonTrail_solarSystem", "moonTrail_giants", "moonTrail_jupiter", - "moonTrail_minor" + "moonTrail_minor", + "moonTrail_minor_jupiter" } local himaliaGroup = { @@ -104,21 +105,60 @@ local himaliaGroup = { } } +-- Generate labels for each moon +local moon_labels = {} + +for i, moon in ipairs(himaliaGroup) do + local moonName = moon.GUI.Name or moon.Identifier + moon_labels[i] = { + Identifier = moon.Identifier .. "Label", + Parent = moon.Identifier, + Renderable = { + Enabled = false, + Type = "RenderableLabel", + Text = moonName, + FontSize = 70.0, + Size = 7.1, + MinMaxSize = { 1, 25 }, + OrientationOption = "Camera View Direction", + BlendMode = "Additive", + EnableFading = true, + FadeUnit = "Gm", + FadeDistances = { 1.0, 120.0 }, + FadeWidths = { 1.0, 120.0 } + }, + Tag = { "solarsystem_labels", "moon_labels", "minor_moon_labels" }, + GUI = { + Name = moonName .. " Label", + Path = "/Solar System/Planets/Jupiter/Moons", + Description = "Label for Jupiter's moon " .. moonName .. " (Himalia group)" + } + } +end + local nodes = proceduralGlobes.createGlobes(himaliaGroup) asset.onInitialize(function() - for i, node in ipairs(nodes) do + for _, node in ipairs(nodes) do openspace.addSceneGraphNode(node) end + + for _, moonlabel in ipairs(moon_labels) do + openspace.addSceneGraphNode(moonlabel) + end end) - + asset.onDeinitialize(function() + for i = #moon_labels, 1, -1 do + openspace.removeSceneGraphNode(moon_labels[i]) + end + for i = #nodes, 1, -1 do openspace.removeSceneGraphNode(nodes[i]) end end) - -for i, node in ipairs(nodes) do + +for _, node in ipairs(nodes) do asset.export(node) end 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 10859a53bf..b1bb9b4749 100644 --- a/data/assets/scene/solarsystem/planets/jupiter/minor/inner_group.asset +++ b/data/assets/scene/solarsystem/planets/jupiter/minor/inner_group.asset @@ -6,13 +6,14 @@ local kernel = asset.require("../kernels").jup341 local parentIdentifier = transforms.JupiterBarycenter.Identifier local parentSpice = "JUPITER BARYCENTER" -local tags = { "moon_solarSystem", "moon_giants", "moon_jupiter", "moon_inner", "moon_minor" } +local tags = { "moon_solarSystem", "moon_giants", "moon_jupiter", "moon_inner", "moon_minor", "moon_minor_jupiter" } local trailColor = { 0.4, 0.3, 0.01 } local trailTags = { "moonTrail_solarSystem", "moonTrail_giants", "moonTrail_jupiter", - "moonTrail_minor" + "moonTrail_minor", + "moonTrail_minor_jupiter" } local innerMoons = { @@ -86,21 +87,64 @@ local innerMoons = { } } +-- Generate labels for each moon +local moon_labels = {} + +for i, moon in ipairs(innerMoons) do + local moonName = moon.GUI.Name or moon.Identifier + moon_labels[i] = { + Identifier = moon.Identifier .. "Label", + Parent = moon.Identifier, + Renderable = { + Enabled = false, + Type = "RenderableLabel", + Text = moonName, + FontSize = 50.0, + Size = 5.6, + MinMaxSize = { 1, 25 }, + OrientationOption = "Camera View Direction", + BlendMode = "Additive", + EnableFading = true, + FadeUnit = "Gm", + FadeDistances = { 0.1, 3.0 }, + FadeWidths = { 0.1, 3.0 }, + }, + Tag = { "solarsystem_labels", "moon_labels", "minor_moon_labels" }, + GUI = { + Name = moonName .. " Label", + Path = "/Solar System/Planets/Jupiter/Moons", + Description = "Label for Jupiter's moon " .. moonName .. " (inner group)" + } + } +end + + local nodes = proceduralGlobes.createGlobes(innerMoons) + asset.onInitialize(function() - for i, node in ipairs(nodes) do + for _, node in ipairs(nodes) do openspace.addSceneGraphNode(node) end + + for _, moonlabel in ipairs(moon_labels) do + openspace.addSceneGraphNode(moonlabel) + end end) - + + asset.onDeinitialize(function() + for i = #moon_labels, 1, -1 do + openspace.removeSceneGraphNode(moon_labels[i]) + end + for i = #nodes, 1, -1 do openspace.removeSceneGraphNode(nodes[i]) end end) - -for i, node in ipairs(nodes) do + + +for _, node in ipairs(nodes) do asset.export(node) end 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 30c835ce96..ca46e4a280 100644 --- a/data/assets/scene/solarsystem/planets/jupiter/minor/other_groups.asset +++ b/data/assets/scene/solarsystem/planets/jupiter/minor/other_groups.asset @@ -6,13 +6,14 @@ local kernel = asset.require("../kernels").jup341 local parentIdentifier = transforms.JupiterBarycenter.Identifier local parentSpice = "JUPITER BARYCENTER" -local tags = { "moon_solarSystem", "moon_giants", "moon_jupiter", "moon_other", "moon_minor" } +local tags = { "moon_solarSystem", "moon_giants", "moon_jupiter", "moon_other", "moon_minor", "moon_minor_jupiter" } local trailColor = { 0.4, 0.3, 0.01 } local trailTags = { "moonTrail_solarSystem", "moonTrail_giants", "moonTrail_jupiter", - "moonTrail_minor" + "moonTrail_minor", + "moonTrail_minor_jupiter" } local otherGroups = { @@ -162,21 +163,61 @@ local otherGroups = { } } +-- Generate labels for each moon +local moon_labels = {} + +for i, moon in ipairs(otherGroups) do + local moonName = moon.GUI.Name or moon.Identifier + moon_labels[i] = { + Identifier = moon.Identifier .. "Label", + Parent = moon.Identifier, + Renderable = { + Enabled = false, + Type = "RenderableLabel", + Text = moonName, + FontSize = 70.0, + Size = 7.1, + MinMaxSize = { 1, 25 }, + OrientationOption = "Camera View Direction", + BlendMode = "Additive", + EnableFading = true, + FadeUnit = "Gm", + FadeDistances = { 1.0, 150.0 }, + FadeWidths = { 1.0, 50.0 } + }, + Tag = { "solarsystem_labels", "moon_labels", "minor_moon_labels" }, + GUI = { + Name = moonName .. " Label", + Path = "/Solar System/Planets/Jupiter/Moons", + Description = "Label for Jupiter's moon " .. moonName .. " (other groups)" + } + } +end + + local nodes = proceduralGlobes.createGlobes(otherGroups) asset.onInitialize(function() - for i, node in ipairs(nodes) do + for _, node in ipairs(nodes) do openspace.addSceneGraphNode(node) end + + for _, moonlabel in ipairs(moon_labels) do + openspace.addSceneGraphNode(moonlabel) + end end) - + asset.onDeinitialize(function() + for i = #moon_labels, 1, -1 do + openspace.removeSceneGraphNode(moon_labels[i]) + end + for i = #nodes, 1, -1 do openspace.removeSceneGraphNode(nodes[i]) end end) - -for i, node in ipairs(nodes) do + +for _, node in ipairs(nodes) do asset.export(node) end 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 ffb66840e6..0fbf568e03 100644 --- a/data/assets/scene/solarsystem/planets/jupiter/minor/pasiphae_group.asset +++ b/data/assets/scene/solarsystem/planets/jupiter/minor/pasiphae_group.asset @@ -6,13 +6,14 @@ local kernel = asset.require("../kernels").jup341 local parentIdentifier = transforms.JupiterBarycenter.Identifier local parentSpice = "JUPITER BARYCENTER" -local tags = { "moon_solarSystem", "moon_giants", "moon_jupiter", "moon_pasiphae", "moon_minor" } +local tags = { "moon_solarSystem", "moon_giants", "moon_jupiter", "moon_pasiphae", "moon_minor", "moon_minor_jupiter" } local trailColor = { 0.4, 0.3, 0.01 } local trailTags = { "moonTrail_solarSystem", "moonTrail_giants", "moonTrail_jupiter", - "moonTrail_minor" + "moonTrail_minor", + "moonTrail_minor_jupiter" } local pasiphaeGroup = { { @@ -350,8 +351,7 @@ local pasiphaeGroup = { Identifier = parentIdentifier, Spice = parentSpice }, - -- sic: The Identifier in the SPICE kernel is wrong - Spice = "MAGACLITE", + Spice = "MEGACLITE", Radii = { 5000, 5000, 5000 }, Tags = tags, TrailTags = trailTags, @@ -364,21 +364,61 @@ local pasiphaeGroup = { } } +-- Generate labels for each moon +local moon_labels = {} + +for i, moon in ipairs(pasiphaeGroup) do + local moonName = moon.GUI.Name or moon.Identifier + moon_labels[i] = { + Identifier = moon.Identifier .. "Label", + Parent = moon.Identifier, + Renderable = { + Enabled = false, + Type = "RenderableLabel", + Text = moonName, + FontSize = 70.0, + Size = 7.1, + MinMaxSize = { 1, 25 }, + OrientationOption = "Camera View Direction", + BlendMode = "Additive", + EnableFading = true, + FadeUnit = "Gm", + FadeDistances = { 1.5, 140.0 }, + FadeWidths = { 0.5, 50.0 } + }, + Tag = { "solarsystem_labels", "moon_labels", "minor_moon_labels" }, + GUI = { + Name = moonName .. " Label", + Path = "/Solar System/Planets/Jupiter/Moons", + Description = "Label for Jupiter's moon " .. moonName .. " (Pasiphae group)" + } + } +end + + local nodes = proceduralGlobes.createGlobes(pasiphaeGroup) asset.onInitialize(function() - for i, node in ipairs(nodes) do + for _, node in ipairs(nodes) do openspace.addSceneGraphNode(node) end + + for _, moonlabel in ipairs(moon_labels) do + openspace.addSceneGraphNode(moonlabel) + end end) - + asset.onDeinitialize(function() + for i = #moon_labels, 1, -1 do + openspace.removeSceneGraphNode(moon_labels[i]) + end + for i = #nodes, 1, -1 do openspace.removeSceneGraphNode(nodes[i]) end end) - -for i, node in ipairs(nodes) do + +for _, node in ipairs(nodes) do asset.export(node) end 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 8eb6615b22..5656a8e53f 100644 --- a/data/assets/scene/solarsystem/planets/jupiter/minor/themisto_group.asset +++ b/data/assets/scene/solarsystem/planets/jupiter/minor/themisto_group.asset @@ -6,13 +6,14 @@ local kernel = asset.require("../kernels").jup341 local parentIdentifier = transforms.JupiterBarycenter.Identifier local parentSpice = "JUPITER BARYCENTER" -local tags = { "moon_solarSystem", "moon_giants", "moon_jupiter", "moon_themisto", "moon_minor" } +local tags = { "moon_solarSystem", "moon_giants", "moon_jupiter", "moon_themisto", "moon_minor", "moon_minor_jupiter" } local trailColor = { 0.4, 0.3, 0.01 } local trailTags = { "moonTrail_solarSystem", "moonTrail_giants", "moonTrail_jupiter", - "moonTrail_minor" + "moonTrail_minor", + "moonTrail_minor_jupiter" } local themistoGroup = { { @@ -34,21 +35,60 @@ local themistoGroup = { } } +-- Generate labels for each moon +local moon_labels = {} + +for i, moon in ipairs(themistoGroup) do + local moonName = moon.GUI.Name or moon.Identifier + moon_labels[i] = { + Identifier = moon.Identifier .. "Label", + Parent = moon.Identifier, + Renderable = { + Enabled = false, + Type = "RenderableLabel", + Text = moonName, + FontSize = 70.0, + Size = 7.1, + MinMaxSize = { 1, 25 }, + OrientationOption = "Camera View Direction", + BlendMode = "Additive", + EnableFading = true, + FadeUnit = "Gm", + FadeDistances = { 1.5, 120.0 }, + FadeWidths = { 0.5, 50.0 } + }, + Tag = { "solarsystem_labels", "moon_labels", "minor_moon_labels" }, + GUI = { + Name = moonName .. " Label", + Path = "/Solar System/Planets/Jupiter/Moons", + Description = "Label for Jupiter's moon " .. moonName .. " (Themisto group)" + } + } +end + local nodes = proceduralGlobes.createGlobes(themistoGroup) asset.onInitialize(function() - for i, node in ipairs(nodes) do + for _, node in ipairs(nodes) do openspace.addSceneGraphNode(node) end + + for _, moonlabel in ipairs(moon_labels) do + openspace.addSceneGraphNode(moonlabel) + end end) - + asset.onDeinitialize(function() + for i = #moon_labels, 1, -1 do + openspace.removeSceneGraphNode(moon_labels[i]) + end + for i = #nodes, 1, -1 do openspace.removeSceneGraphNode(nodes[i]) end end) - -for i, node in ipairs(nodes) do + +for _, node in ipairs(nodes) do asset.export(node) end diff --git a/data/assets/scene/solarsystem/planets/jupiter/minor_moons.asset b/data/assets/scene/solarsystem/planets/jupiter/minor_moons.asset index a5b0119172..8bcf2aa6ee 100644 --- a/data/assets/scene/solarsystem/planets/jupiter/minor_moons.asset +++ b/data/assets/scene/solarsystem/planets/jupiter/minor_moons.asset @@ -7,10 +7,68 @@ asset.require("./minor/other_groups") asset.require("./minor/pasiphae_group") asset.require("./minor/themisto_group") +local minormoons_on = { + Identifier = "os.solarsystem.jupiter.minormoonson", + Name = "Turn ON minor moons and trails", + Command = [[ + local trails = openspace.getProperty('{moonTrail_minor_jupiter}.Renderable.Enabled'); + local trails_fade = openspace.getProperty('{moonTrail_minor_jupiter}.Renderable.Fade'); + + local moons = openspace.getProperty('{moon_minor_jupiter}.Renderable.Enabled'); + local moons_fade = openspace.getProperty('{moon_minor_jupiter}.Renderable.Fade'); + + for i, v in pairs(trails_fade) do + openspace.setPropertyValueSingle(trails[i], true) + openspace.setPropertyValueSingle(v, 1, 2, 'Linear') + end + + for i, v in pairs(moons_fade) do + openspace.setPropertyValueSingle(moons[i], true) + openspace.setPropertyValueSingle(v, 1, 2, 'Linear') + end + ]], + Documentation = "Turn ON Jupiter's minor moons and their trails", + GuiPath = "/Solar System/Jupiter", + IsLocal = true +} + +local minormoons_off = { + Identifier = "os.solarsystem.jupiter.minormoonsoff", + Name = "Turn OFF minors moon and trails", + Command = [[ + local trails = openspace.getProperty('{moonTrail_minor_jupiter}.Renderable.Enabled'); + local trails_fade = openspace.getProperty('{moonTrail_minor_jupiter}.Renderable.Fade'); + + local moons = openspace.getProperty('{moon_minor_jupiter}.Renderable.Enabled'); + local moons_fade = openspace.getProperty('{moon_minor_jupiter}.Renderable.Fade'); + + for i, v in pairs(trails_fade) do + openspace.setPropertyValueSingle(v, 0, 2, 'Linear', "openspace.setPropertyValueSingle('" .. trails[i] .. "', false)" ) + end + + for i, v in pairs(moons_fade) do + openspace.setPropertyValueSingle(v, 0, 2, 'Linear', "openspace.setPropertyValueSingle('" .. moons[i] .. "', false)" ) + end + ]], + Documentation = "Turn OFF Jupiter's minor moons and their trails", + GuiPath = "/Solar System/Jupiter", + IsLocal = true +} + +asset.onInitialize(function() + openspace.action.registerAction(minormoons_on) + openspace.action.registerAction(minormoons_off) +end) + +asset.onDeinitialize(function() + openspace.action.removeAction(minormoons_off) + openspace.action.removeAction(minormoons_on) +end) + asset.meta = { Name = "Jupiter Minor Moons", - Version = "1.0", + Version = "1.1", Description = [[Meta asset containing eight moon groups: Ananke, Carme, Carpo, Himalia, Pasiphae, Themisto, Inner, and Other]], Author = "OpenSpace Team", diff --git a/data/assets/scene/solarsystem/planets/jupiter/trail.asset b/data/assets/scene/solarsystem/planets/jupiter/trail.asset index 928770f8e7..5cf6cf6576 100644 --- a/data/assets/scene/solarsystem/planets/jupiter/trail.asset +++ b/data/assets/scene/solarsystem/planets/jupiter/trail.asset @@ -27,11 +27,11 @@ local JupiterTrail = { asset.onInitialize(function() openspace.addSceneGraphNode(JupiterTrail) end) - + asset.onDeinitialize(function() openspace.removeSceneGraphNode(JupiterTrail) end) - + asset.export(JupiterTrail) diff --git a/data/assets/scene/solarsystem/planets/jupiter/trail_barycenter.asset b/data/assets/scene/solarsystem/planets/jupiter/trail_barycenter.asset index b7cce875a3..056c8db35f 100644 --- a/data/assets/scene/solarsystem/planets/jupiter/trail_barycenter.asset +++ b/data/assets/scene/solarsystem/planets/jupiter/trail_barycenter.asset @@ -28,11 +28,11 @@ local JupiterBarycenterTrail = { asset.onInitialize(function() openspace.addSceneGraphNode(JupiterBarycenterTrail) end) - + asset.onDeinitialize(function() openspace.removeSceneGraphNode(JupiterBarycenterTrail) end) - + asset.export(JupiterBarycenterTrail) diff --git a/data/assets/scene/solarsystem/planets/jupiter/trail_earth.asset b/data/assets/scene/solarsystem/planets/jupiter/trail_earth.asset index d2cbde3160..b92fd59017 100644 --- a/data/assets/scene/solarsystem/planets/jupiter/trail_earth.asset +++ b/data/assets/scene/solarsystem/planets/jupiter/trail_earth.asset @@ -30,11 +30,11 @@ local JupiterTrailEarth = { asset.onInitialize(function() openspace.addSceneGraphNode(JupiterTrailEarth) end) - + asset.onDeinitialize(function() openspace.removeSceneGraphNode(JupiterTrailEarth) end) - + asset.export(JupiterTrailEarth) diff --git a/data/assets/scene/solarsystem/planets/jupiter/transforms.asset b/data/assets/scene/solarsystem/planets/jupiter/transforms.asset index dbcf392f46..9caddc4fce 100644 --- a/data/assets/scene/solarsystem/planets/jupiter/transforms.asset +++ b/data/assets/scene/solarsystem/planets/jupiter/transforms.asset @@ -23,11 +23,11 @@ local JupiterBarycenter = { asset.onInitialize(function() openspace.addSceneGraphNode(JupiterBarycenter) end) - + asset.onDeinitialize(function() openspace.removeSceneGraphNode(JupiterBarycenter) end) - + asset.export(JupiterBarycenter) diff --git a/data/assets/scene/solarsystem/planets/mars/atmosphere.asset b/data/assets/scene/solarsystem/planets/mars/atmosphere.asset index 3eefaa60cd..2b006d1669 100644 --- a/data/assets/scene/solarsystem/planets/mars/atmosphere.asset +++ b/data/assets/scene/solarsystem/planets/mars/atmosphere.asset @@ -20,7 +20,7 @@ local Atmosphere = { Wavelengths = { 680, 550, 440 }, -- Reflection coefficients are given in km^-1 Scattering = { 19.918E-3, 13.57E-3, 5.75E-3 } - -- In Rayleigh scattering, the coefficients of + -- In Rayleigh scattering, the coefficients of -- absorption and scattering are the same. }, -- Thickness of atmosphere if its density were uniform, in Km @@ -36,7 +36,7 @@ local Atmosphere = { }, -- Mie Height scale (atmosphere thickness for constant density) in Km H_M = 3.09526, - -- Mie Phase Function Value (G e [-1.0, 1.0]. + -- Mie Phase Function Value (G e [-1.0, 1.0]. -- If G = 1.0, Mie phase function = Rayleigh Phase Function) G = 0.85 }, @@ -55,11 +55,11 @@ local Atmosphere = { asset.onInitialize(function() openspace.addSceneGraphNode(Atmosphere) end) - + asset.onDeinitialize(function() openspace.removeSceneGraphNode(Atmosphere) end) - + asset.export(Atmosphere) 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 a9d45ab6d1..884991fc0b 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 @@ -24,7 +24,7 @@ local layer = { pixel-for-pixel spatial documentation of image seams, to prevent misinterpretation of seams as possible landforms and to provide instant access to original data. A completely seamless CTX mosaic is currently infeasible, so seam-maps are required - to prevent misinterpretation. (Description from URL)]], + to prevent misinterpretation. (Description from URL)]] } asset.onInitialize(function() 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 6dc4b188a9..8955b69e09 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 @@ -23,7 +23,7 @@ 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 + Description = [[CTX Mosaic layer for Mars globe. This layer is served from the OpenSpace servers in Sweden]], Author = "OpenSpace Team", URL = "http://openspaceproject.com", 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 b9d31ec348..7edf090b99 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 @@ -23,7 +23,7 @@ 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 + Description = [[CTX Mosaic layer for Mars globe. This layer is served from the OpenSpace servers in Utah]], Author = "OpenSpace Team", URL = "http://openspaceproject.com", 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 d425858e90..1004046395 100644 --- a/data/assets/scene/solarsystem/planets/mars/layers/colorlayers/hirise.asset +++ b/data/assets/scene/solarsystem/planets/mars/layers/colorlayers/hirise.asset @@ -20,7 +20,7 @@ local layer = { construction of this layer were produced by the team at the University of Arizona. This tiled web service, as hosted by Esri, is made available using lossy Jpeg compression using an 8 bit data range, using a linear stretch from the original - 10 bit range. (Description from URL)]], + 10 bit range. (Description from URL)]] } asset.onInitialize(function() 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 ad6c657fe5..b57de84b75 100644 --- a/data/assets/scene/solarsystem/planets/mars/layers/colorlayers/hirisels.asset +++ b/data/assets/scene/solarsystem/planets/mars/layers/colorlayers/hirisels.asset @@ -17,7 +17,7 @@ local layer = { may not be briny seeps. Hundreds of science papers have been published with our data. (Description from URL). This map contains a subet set of the HiRISE imagaery, only containing locations where a corresponding HiRISE digital terrain - model (DTM) was available as of 2018]], + model (DTM) was available as of 2018]] } asset.onInitialize(function() diff --git a/data/assets/scene/solarsystem/planets/mars/layers/colorlayers/moc_wa_color_sweden.asset b/data/assets/scene/solarsystem/planets/mars/layers/colorlayers/moc_wa_color_sweden.asset index 78f6213e8f..1c8ae9569a 100644 --- a/data/assets/scene/solarsystem/planets/mars/layers/colorlayers/moc_wa_color_sweden.asset +++ b/data/assets/scene/solarsystem/planets/mars/layers/colorlayers/moc_wa_color_sweden.asset @@ -8,11 +8,11 @@ local layer = { Settings = { Gamma = 1.6, Multiplier = 1.07 - }, + }, Description = [[This map is an AMNH version of the global mossaic produced by the Mars Global Surveyor Wide Angle Camera. This version has color added and the shadows subdued based on the MOLA DTM. Data Reference: - https://www.jpl.nasa.gov/spaceimages/details.php?id=PIA03467]], + https://www.jpl.nasa.gov/spaceimages/details.php?id=PIA03467]] } asset.onInitialize(function() 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 6edfd2b144..559bee89b6 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 @@ -8,11 +8,11 @@ local layer = { Settings = { Gamma = 1.6, Multiplier = 1.07 - }, + }, Description = [[This map is an AMNH version of the global mossaic produced by the Mars Global Surveyor Wide Angle Camera. This version has color added and the shadows subdued based on the MOLA DTM. Data Reference: - https://www.jpl.nasa.gov/spaceimages/details.php?id=PIA03467]], + https://www.jpl.nasa.gov/spaceimages/details.php?id=PIA03467]] } asset.onInitialize(function() 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 41a7e58ea4..c36564c052 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 @@ -8,7 +8,7 @@ local layer = { 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]], + https://astrogeology.usgs.gov/search/map/Mars/Topography/HRSC_MOLA_Blend/Mars_HRSC_MOLA_BlendDEM_Global_200mp_v2]] } asset.onInitialize(function() 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 586fc94d53..610b7bdd89 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 @@ -8,7 +8,7 @@ local layer = { 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]], + https://astrogeology.usgs.gov/search/map/Mars/Topography/HRSC_MOLA_Blend/Mars_HRSC_MOLA_BlendDEM_Global_200mp_v2]] } asset.onInitialize(function() 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 f3c6fce1d3..150becf708 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 @@ -18,7 +18,7 @@ local layer = { Neumann, et al., 2003). However, the total elevation uncertainty is at least ±3 m due to the global error in the areoid (±1.8 meters; Lemoine, et al., 2001) and regional uncertainties in its shape (Neumann, 2002). Pixel resolution of this map - is 463 meters per pixel (m). (Description from URL). Data Reference: (See URL)]], + is 463 meters per pixel (m). (Description from URL). Data Reference: (See URL)]] } asset.onInitialize(function() 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 a77ebf805e..2918b76a81 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 @@ -18,7 +18,7 @@ local layer = { Neumann, et al., 2003). However, the total elevation uncertainty is at least ±3 m due to the global error in the areoid (±1.8 meters; Lemoine, et al., 2001) and regional uncertainties in its shape (Neumann, 2002). Pixel resolution of this map - is 463 meters per pixel (m). (Description from URL). Data Reference: (See URL)]], + is 463 meters per pixel (m). (Description from URL). Data Reference: (See URL)]] } asset.onInitialize(function() 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 384d1365ef..a545e3aca3 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 @@ -15,7 +15,7 @@ local layer = { global planetary image datasets: 1. Techniques and data processing for Thermal Emission Imaging System (THEMIS) multi-spectral data, J. Geophys. Res., 116, E10008, doi:10.1029/2010JE003755. http://dx.doi.org/10.1029/2010JE003755 - (Description from URL)]], + (Description from URL)]] } asset.onInitialize(function() 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 3304a6357d..97289d5bda 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 @@ -15,7 +15,7 @@ local layer = { global planetary image datasets: 1. Techniques and data processing for Thermal Emission Imaging System (THEMIS) multi-spectral data, J. Geophys. Res., 116, E10008, doi:10.1029/2010JE003755. http://dx.doi.org/10.1029/2010JE003755 - (Description from URL)]], + (Description from URL)]] } asset.onInitialize(function() 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 1ea2a3d787..a69ce8891c 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 @@ -16,7 +16,7 @@ local layer = { datasets: 1. Techniques and data processing for Thermal Emission Imaging System (THEMIS) multi-spectral data, J. Geophys. Res., 116, E10008, doi:10.1029/2010JE003755. http://dx.doi.org/10.1029/2010JE003755 (Description from - URL)]], + URL)]] } asset.onInitialize(function() 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 b733dcda8a..30cdfc028b 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 @@ -16,7 +16,7 @@ local layer = { datasets: 1. Techniques and data processing for Thermal Emission Imaging System (THEMIS) multi-spectral data, J. Geophys. Res., 116, E10008, doi:10.1029/2010JE003755. http://dx.doi.org/10.1029/2010JE003755 (Description from - URL)]], + URL)]] } asset.onInitialize(function() 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 0e70efbced..06f49543b9 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 @@ -23,7 +23,7 @@ local layer = { as an accurate basemap on which data from future missions can be plotted. (Description from URL).

References: Williams, D. R. (2018). Viking Mission to Mars. https://nssdc.gsfc.nasa.gov/planetary/viking.html Additional - references available here: http://astrogeology.usgs.gov/maps/mdim-2-1]], + references available here: http://astrogeology.usgs.gov/maps/mdim-2-1]] } asset.onInitialize(function() 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 c05d8811d9..1dcdf64327 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 @@ -23,7 +23,7 @@ local layer = { as an accurate basemap on which data from future missions can be plotted. (Description from URL).

References: Williams, D. R. (2018). Viking Mission to Mars. https://nssdc.gsfc.nasa.gov/planetary/viking.html Additional - references available here: http://astrogeology.usgs.gov/maps/mdim-2-1]], + references available here: http://astrogeology.usgs.gov/maps/mdim-2-1]] } asset.onInitialize(function() 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 9167fd9081..71d2a18dda 100644 --- a/data/assets/scene/solarsystem/planets/mars/layers/heightlayers/MDEM200M.asset +++ b/data/assets/scene/solarsystem/planets/mars/layers/heightlayers/MDEM200M.asset @@ -5,13 +5,13 @@ local layer = { Name = "HRSC MOLA Blended DEM Global 200m v2", Enabled = asset.enabled, FilePath = asset.localResource("mdem200m.wms"), - Description = [[Blend of data derived from the Mars Orbiter Laser Altimeter + 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 Stereo Camera (HRSC, an instrument aboard the European Space - Agency's Mars Express spacecraft). The average accuracy is ~100 meters in horizontal + Agency's Mars 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)]], + (Description from URL)]] } asset.onInitialize(function() 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 a79605374b..8316ddf28d 100644 --- a/data/assets/scene/solarsystem/planets/mars/layers/heightlayers/hirisels.asset +++ b/data/assets/scene/solarsystem/planets/mars/layers/heightlayers/hirisels.asset @@ -15,7 +15,7 @@ local layer = { we've also imaged avalanches in progress, and discovered dark flows that may or may not be briny seeps. Hundreds of science papers have been published with our data. (Description from URL). This map contains a subet set of the HiRISE - DEM where available as of 2018]], + DEM where available as of 2018]] } asset.onInitialize(function() diff --git a/data/assets/scene/solarsystem/planets/mars/layers/heightlayers/mola_sweden.asset b/data/assets/scene/solarsystem/planets/mars/layers/heightlayers/mola_sweden.asset index 66ba2d1c64..3f5af3afd4 100644 --- a/data/assets/scene/solarsystem/planets/mars/layers/heightlayers/mola_sweden.asset +++ b/data/assets/scene/solarsystem/planets/mars/layers/heightlayers/mola_sweden.asset @@ -19,7 +19,7 @@ local layer = { elevation uncertainty is at least ±3 m due to the global error in the areoid (±1.8 meters; Neumann et al., 2001) and regional uncertainties in its shape (Neumann, 2002). Pixel resolution is 463 meters per pixel (m). (Description from - URL). Data Reference: (See URL)]], + URL). Data Reference: (See URL)]] } asset.onInitialize(function() 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 73aacf3fb1..3c6ff351ec 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 @@ -19,7 +19,7 @@ local layer = { elevation uncertainty is at least ±3 m due to the global error in the areoid (±1.8 meters; Neumann et al., 2001) and regional uncertainties in its shape (Neumann, 2002). Pixel resolution is 463 meters per pixel (m). (Description from - URL). Data Reference: (See URL)]], + URL). Data Reference: (See URL)]] } asset.onInitialize(function() diff --git a/data/assets/scene/solarsystem/planets/mars/mars.asset b/data/assets/scene/solarsystem/planets/mars/mars.asset index f7c65dc58e..0ba2b7f20b 100644 --- a/data/assets/scene/solarsystem/planets/mars/mars.asset +++ b/data/assets/scene/solarsystem/planets/mars/mars.asset @@ -61,8 +61,8 @@ local MarsLabel = { Type = "RenderableLabel", Text = "Mars", FontSize = 70.0, - Size = 8.66, - MinMaxSize = { 1, 100 }, + Size = 8.50, + MinMaxSize = { 1, 50 }, OrientationOption = "Camera View Direction", BlendMode = "Additive", TransformationMatrix = { @@ -71,6 +71,10 @@ local MarsLabel = { 0.0, 0.0, 1.0, 1.0E7, 0.0, 0.0, 0.0, 1.0 }, + EnableFading = true, + FadeUnit = "au", + FadeDistances = { 1.5, 40.0 }, + FadeWidths = { 1.0, 50.0 } }, Tag = { "solarsystem_labels" }, GUI = { @@ -84,12 +88,12 @@ 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) diff --git a/data/assets/scene/solarsystem/planets/mars/moons/deimos.asset b/data/assets/scene/solarsystem/planets/mars/moons/deimos.asset index 031336a8b3..7ef7f8f2ac 100644 --- a/data/assets/scene/solarsystem/planets/mars/moons/deimos.asset +++ b/data/assets/scene/solarsystem/planets/mars/moons/deimos.asset @@ -19,6 +19,7 @@ local kernels = asset.syncedResource({ local Deimos = { Identifier = "Deimos", Parent = transforms.MarsBarycenter.Identifier, + InteractionSphere = 8000, Transform = { Rotation = { Type = "SpiceRotation", @@ -76,16 +77,45 @@ local DeimosTrail = { } } + +local DeimosLabel = { + Identifier = "DeimosLabel", + Parent = Deimos.Identifier, + Renderable = { + Enabled = false, + Type = "RenderableLabel", + Text = "Deimos", + FontSize = 70.0, + Size = 5.0, + MinMaxSize = { 1, 25 }, + OrientationOption = "Camera View Direction", + BlendMode = "Additive", + EnableFading = true, + FadeUnit = "Mm", + FadeDistances = { 50.0, 1000.0 }, + FadeWidths = { 50.0, 2000.0 } + }, + Tag = { "solarsystem_labels", "moon_labels", "major_moon_labels" }, + GUI = { + Name = "Deimos Label", + Path = "/Solar System/Planets/Mars/Moons", + Description = "Label for Mars' moon Deimos" + } +} + + asset.onInitialize(function() openspace.addSceneGraphNode(Deimos) openspace.addSceneGraphNode(DeimosTrail) + openspace.addSceneGraphNode(DeimosLabel) end) - + asset.onDeinitialize(function() + openspace.removeSceneGraphNode(DeimosLabel) openspace.removeSceneGraphNode(DeimosTrail) openspace.removeSceneGraphNode(Deimos) end) - + asset.export(Deimos) asset.export(DeimosTrail) diff --git a/data/assets/scene/solarsystem/planets/mars/moons/phobos.asset b/data/assets/scene/solarsystem/planets/mars/moons/phobos.asset index 2749acc643..4189cc20ee 100644 --- a/data/assets/scene/solarsystem/planets/mars/moons/phobos.asset +++ b/data/assets/scene/solarsystem/planets/mars/moons/phobos.asset @@ -20,6 +20,7 @@ local kernels = asset.syncedResource({ local Phobos = { Identifier = "Phobos", Parent = transforms.MarsBarycenter.Identifier, + InteractionSphere = 15000, Transform = { Rotation = { Type = "SpiceRotation", @@ -78,16 +79,43 @@ local PhobosTrail = { } } +local PhobosLabel = { + Identifier = "PhobosLabel", + Parent = Phobos.Identifier, + Renderable = { + Enabled = false, + Type = "RenderableLabel", + Text = "Phobos", + FontSize = 70.0, + Size = 5.0, + MinMaxSize = { 1, 25 }, + OrientationOption = "Camera View Direction", + BlendMode = "Additive", + EnableFading = true, + FadeUnit = "Mm", + FadeDistances = { 30.0, 1000.0 }, + FadeWidths = { 30.0, 2000.0 } + }, + Tag = { "solarsystem_labels", "moon_labels", "major_moon_labels" }, + GUI = { + Name = "Phobos Label", + Path = "/Solar System/Planets/Mars/Moons", + Description = "Label for Mars' moon Phobos" + } +} + asset.onInitialize(function() openspace.addSceneGraphNode(Phobos) openspace.addSceneGraphNode(PhobosTrail) + openspace.addSceneGraphNode(PhobosLabel) end) - + asset.onDeinitialize(function() + openspace.removeSceneGraphNode(PhobosLabel) openspace.removeSceneGraphNode(PhobosTrail) openspace.removeSceneGraphNode(Phobos) end) - + asset.export(Phobos) asset.export(PhobosTrail) diff --git a/data/assets/scene/solarsystem/planets/mars/trail.asset b/data/assets/scene/solarsystem/planets/mars/trail.asset index 93a6b92063..852d10a03a 100644 --- a/data/assets/scene/solarsystem/planets/mars/trail.asset +++ b/data/assets/scene/solarsystem/planets/mars/trail.asset @@ -29,11 +29,11 @@ local MarsTrail = { asset.onInitialize(function() openspace.addSceneGraphNode(MarsTrail) end) - + asset.onDeinitialize(function() openspace.removeSceneGraphNode(MarsTrail) end) - + asset.export(MarsTrail) diff --git a/data/assets/scene/solarsystem/planets/mars/trail_barycenter.asset b/data/assets/scene/solarsystem/planets/mars/trail_barycenter.asset index 505c537aff..bc906a01bd 100644 --- a/data/assets/scene/solarsystem/planets/mars/trail_barycenter.asset +++ b/data/assets/scene/solarsystem/planets/mars/trail_barycenter.asset @@ -30,11 +30,11 @@ local MarsBarycenterTrail = { asset.onInitialize(function() openspace.addSceneGraphNode(MarsBarycenterTrail) end) - + asset.onDeinitialize(function() openspace.removeSceneGraphNode(MarsBarycenterTrail) end) - + asset.export(MarsBarycenterTrail) diff --git a/data/assets/scene/solarsystem/planets/mars/trail_earth.asset b/data/assets/scene/solarsystem/planets/mars/trail_earth.asset index e1da3b261d..bc31504e48 100644 --- a/data/assets/scene/solarsystem/planets/mars/trail_earth.asset +++ b/data/assets/scene/solarsystem/planets/mars/trail_earth.asset @@ -31,11 +31,11 @@ local MarsTrailEarth = { asset.onInitialize(function() openspace.addSceneGraphNode(MarsTrailEarth) end) - + asset.onDeinitialize(function() openspace.removeSceneGraphNode(MarsTrailEarth) end) - + asset.export(MarsTrailEarth) diff --git a/data/assets/scene/solarsystem/planets/mars/transforms.asset b/data/assets/scene/solarsystem/planets/mars/transforms.asset index 51a33f600f..7c332f84a4 100644 --- a/data/assets/scene/solarsystem/planets/mars/transforms.asset +++ b/data/assets/scene/solarsystem/planets/mars/transforms.asset @@ -22,11 +22,11 @@ local MarsBarycenter = { asset.onInitialize(function() openspace.addSceneGraphNode(MarsBarycenter) end) - + asset.onDeinitialize(function() openspace.removeSceneGraphNode(MarsBarycenter) end) - + asset.export(MarsBarycenter) diff --git a/data/assets/scene/solarsystem/planets/mercury/default_layers.asset b/data/assets/scene/solarsystem/planets/mercury/default_layers.asset index 2e144aefea..0b37e5e9f0 100644 --- a/data/assets/scene/solarsystem/planets/mercury/default_layers.asset +++ b/data/assets/scene/solarsystem/planets/mercury/default_layers.asset @@ -1,5 +1,5 @@ --mdis -asset.require("./layers/colorlayers/messenger_mdis_utah", false) +asset.require("./layers/colorlayers/messenger_mdis_utah", false) asset.require("./layers/colorlayers/messenger_mdis_sweden", false) --mossaic asset.require("./layers/colorlayers/messenger_mosaic_utah", false) 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 e94e4a0f2b..b8e573261f 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 @@ -6,13 +6,13 @@ local layer = { Enabled = asset.enabled, 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 + 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]] } 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 64736bb155..f4e66b1193 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 @@ -6,13 +6,13 @@ local layer = { Enabled = asset.enabled, 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 + 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]] } 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 4ef6c16d41..0d2112dcdb 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 @@ -5,15 +5,15 @@ local layer = { Name = "Messenger MDIS [Sweden]", Enabled = asset.enabled, 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 + 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)]] } 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 8e728d476a..2e6603d969 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 @@ -5,15 +5,15 @@ local layer = { Name = "Messenger MDIS [Utah]", Enabled = asset.enabled, 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 + 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)]] } 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 ed776dad23..26f86f1744 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 @@ -5,7 +5,7 @@ local layer = { Name = "Messenger SHADE [Sweden]", Enabled = asset.enabled, FilePath = asset.localResource("messenger_shade_sweden.wms"), - Settings = { + Settings = { Gamma = 1.33, Multiplier = 1.15 }, 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 4f9869c07f..4795e2e2ef 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 @@ -5,7 +5,7 @@ local layer = { Name = "Messenger SHADE [Utah]", Enabled = asset.enabled, FilePath = asset.localResource("messenger_shade_utah.wms"), - Settings = { + Settings = { Gamma = 1.33, Multiplier = 1.15 }, 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 7f8bd0ab54..31965838a2 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 @@ -12,7 +12,7 @@ local layer = { Identifier = "mgsimap_02122015", Enabled = asset.enabled, FilePath = texturesPath .. "mgsimap_02122015.png", - Settings = { + Settings = { Gamma = 1.33, Multiplier = 1.15 }, 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 index 1827b74929..4bd91d0fbc 100644 --- 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 @@ -12,7 +12,7 @@ local layer = { TilePixelSize = 64 } -asset.onInitialize(function () +asset.onInitialize(function () openspace.globebrowsing.addLayer(globeIdentifier, "HeightLayers", layer) end) diff --git a/data/assets/scene/solarsystem/planets/mercury/mercury.asset b/data/assets/scene/solarsystem/planets/mercury/mercury.asset index 9481feb37b..ca5e1e7def 100644 --- a/data/assets/scene/solarsystem/planets/mercury/mercury.asset +++ b/data/assets/scene/solarsystem/planets/mercury/mercury.asset @@ -59,10 +59,14 @@ local MercuryLabel = { Type = "RenderableLabel", Text = "Mercury", FontSize = 70.0, - Size = 8.46, - MinMaxSize = { 1, 100 }, + Size = 8.5, + MinMaxSize = { 1, 40 }, OrientationOption = "Camera View Direction", - BlendMode = "Additive" + BlendMode = "Additive", + EnableFading = true, + FadeUnit = "au", + FadeDistances = { 1.5, 20.0 }, + FadeWidths = { 1.0, 30.0 } }, Tag = { "solarsystem_labels" }, GUI = { @@ -75,12 +79,12 @@ 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) diff --git a/data/assets/scene/solarsystem/planets/mercury/trail.asset b/data/assets/scene/solarsystem/planets/mercury/trail.asset index 238ec0662b..dbc716e3ec 100644 --- a/data/assets/scene/solarsystem/planets/mercury/trail.asset +++ b/data/assets/scene/solarsystem/planets/mercury/trail.asset @@ -28,11 +28,11 @@ local MercuryTrail = { asset.onInitialize(function() openspace.addSceneGraphNode(MercuryTrail) end) - + asset.onDeinitialize(function() openspace.removeSceneGraphNode(MercuryTrail) end) - + asset.export(MercuryTrail) diff --git a/data/assets/scene/solarsystem/planets/mercury/trail_barycenter.asset b/data/assets/scene/solarsystem/planets/mercury/trail_barycenter.asset index 0d4a567fbf..ec542ab50e 100644 --- a/data/assets/scene/solarsystem/planets/mercury/trail_barycenter.asset +++ b/data/assets/scene/solarsystem/planets/mercury/trail_barycenter.asset @@ -29,11 +29,11 @@ local MercuryBarycenterTrail = { asset.onInitialize(function() openspace.addSceneGraphNode(MercuryBarycenterTrail) end) - + asset.onDeinitialize(function() openspace.removeSceneGraphNode(MercuryBarycenterTrail) end) - + asset.export(MercuryBarycenterTrail) diff --git a/data/assets/scene/solarsystem/planets/mercury/trail_earth.asset b/data/assets/scene/solarsystem/planets/mercury/trail_earth.asset index aaebe35f01..f4531f8868 100644 --- a/data/assets/scene/solarsystem/planets/mercury/trail_earth.asset +++ b/data/assets/scene/solarsystem/planets/mercury/trail_earth.asset @@ -31,11 +31,11 @@ local MercuryTrailEarth = { asset.onInitialize(function() openspace.addSceneGraphNode(MercuryTrailEarth) end) - + asset.onDeinitialize(function() openspace.removeSceneGraphNode(MercuryTrailEarth) end) - + asset.export(MercuryTrailEarth) diff --git a/data/assets/scene/solarsystem/planets/mercury/transforms.asset b/data/assets/scene/solarsystem/planets/mercury/transforms.asset index a19bd84d39..1002431e7d 100644 --- a/data/assets/scene/solarsystem/planets/mercury/transforms.asset +++ b/data/assets/scene/solarsystem/planets/mercury/transforms.asset @@ -22,11 +22,11 @@ local MercuryBarycenter = { asset.onInitialize(function() openspace.addSceneGraphNode(MercuryBarycenter) end) - + asset.onDeinitialize(function() openspace.removeSceneGraphNode(MercuryBarycenter) end) - + asset.export(MercuryBarycenter) diff --git a/data/assets/scene/solarsystem/planets/neptune/inner_moons.asset b/data/assets/scene/solarsystem/planets/neptune/inner_moons.asset index ba4d5ad49e..29372eb903 100644 --- a/data/assets/scene/solarsystem/planets/neptune/inner_moons.asset +++ b/data/assets/scene/solarsystem/planets/neptune/inner_moons.asset @@ -9,13 +9,14 @@ local kernel088 = kernels.nep088 local parentIdentifier = transforms.NeptuneBarycenter.Identifier local parentSpice = "NEPTUNE BARYCENTER" -local tags = { "moon_solarSystem", "moon_giants", "moon_neptune", "moon_inner", "moon_minor" } +local tags = { "moon_solarSystem", "moon_giants", "moon_neptune", "moon_inner", "moon_minor", "moon_minor_neptune" } local trailColor = { 0.2, 0.5, 0.75 } -local trailTags = { +local trailTags = { "moonTrail_solarSystem", "moonTrail_giants", "moonTrail_neptune", - "moonTrail_minor" + "moonTrail_minor", + "moonTrail_minor_neptune" } local innerMoons = { @@ -141,20 +142,61 @@ local innerMoons = { } } + +-- Generate labels for each moon +local moon_labels = {} + +for i, moon in ipairs(innerMoons) do + local moonName = moon.GUI.Name or moon.Identifier + moon_labels[i] = { + Identifier = moon.Identifier .. "Label", + Parent = moon.Identifier, + Renderable = { + Enabled = false, + Type = "RenderableLabel", + Text = moonName, + FontSize = 50.0, + Size = 5.2, + MinMaxSize = { 1, 20 }, + OrientationOption = "Camera View Direction", + BlendMode = "Additive", + EnableFading = true, + FadeUnit = "Mm", + FadeDistances = { 100, 800.0 }, + FadeWidths = { 100, 1200.0 }, + }, + Tag = { "solarsystem_labels", "moon_labels", "minor_moon_labels" }, + GUI = { + Name = moonName .. " Label", + Path = "/Solar System/Planets/Neptune/Moons", + Description = "Label for Neptune's moon " .. moonName .. " (inner group)" + } + } +end + + local nodes = proceduralGlobes.createGlobes(innerMoons) asset.onInitialize(function() for _, node in ipairs(nodes) do openspace.addSceneGraphNode(node) end + + for _, moonlabel in ipairs(moon_labels) do + openspace.addSceneGraphNode(moonlabel) + end end) - + asset.onDeinitialize(function() + for i = #moon_labels, 1, -1 do + openspace.removeSceneGraphNode(moon_labels[i]) + end + 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/planets/neptune/irregular_prograde_moons.asset b/data/assets/scene/solarsystem/planets/neptune/irregular_prograde_moons.asset index 3b9f6572de..4677234303 100644 --- a/data/assets/scene/solarsystem/planets/neptune/irregular_prograde_moons.asset +++ b/data/assets/scene/solarsystem/planets/neptune/irregular_prograde_moons.asset @@ -9,13 +9,14 @@ local kernel088 = kernels.nep088 local parentIdentifier = transforms.NeptuneBarycenter.Identifier local parentSpice = "NEPTUNE BARYCENTER" -local tags = { "moon_solarSystem", "moon_giants", "moon_neptune", "moon_irregular_prograde", "moon_minor" } +local tags = { "moon_solarSystem", "moon_giants", "moon_neptune", "moon_irregular_prograde", "moon_minor", "moon_minor_neptune" } local trailColor = { 0.2, 0.5, 0.75 } -local trailTags = { +local trailTags = { "moonTrail_solarSystem", "moonTrail_giants", "moonTrail_neptune", - "moonTrail_minor" + "moonTrail_minor", + "moonTrail_minor_neptune" } local irregularProgradeMoons = { @@ -72,20 +73,61 @@ local irregularProgradeMoons = { } } + +-- Generate labels for each moon +local moon_labels = {} + +for i, moon in ipairs(irregularProgradeMoons) do + local moonName = moon.GUI.Name or moon.Identifier + moon_labels[i] = { + Identifier = moon.Identifier .. "Label", + Parent = moon.Identifier, + Renderable = { + Enabled = false, + Type = "RenderableLabel", + Text = moonName, + FontSize = 70.0, + Size = 7.4, + MinMaxSize = { 1, 25 }, + OrientationOption = "Camera View Direction", + BlendMode = "Additive", + EnableFading = true, + FadeUnit = "Gm", + FadeDistances = { 1, 250.0 }, + FadeWidths = { 1, 250.0 }, + }, + Tag = { "solarsystem_labels", "moon_labels", "minor_moon_labels" }, + GUI = { + Name = moonName .. " Label", + Path = "/Solar System/Planets/Neptune/Moons", + Description = "Label for Neptune's moon " .. moonName .. " (Irregular prograde group)" + } + } +end + + local nodes = proceduralGlobes.createGlobes(irregularProgradeMoons) asset.onInitialize(function() for _, node in ipairs(nodes) do openspace.addSceneGraphNode(node) end + + for _, moonlabel in ipairs(moon_labels) do + openspace.addSceneGraphNode(moonlabel) + end end) - + asset.onDeinitialize(function() + for i = #moon_labels, 1, -1 do + openspace.removeSceneGraphNode(moon_labels[i]) + end + 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/planets/neptune/irregular_retrograde_moons.asset b/data/assets/scene/solarsystem/planets/neptune/irregular_retrograde_moons.asset index 6a545c1720..ff8e2102c1 100644 --- a/data/assets/scene/solarsystem/planets/neptune/irregular_retrograde_moons.asset +++ b/data/assets/scene/solarsystem/planets/neptune/irregular_retrograde_moons.asset @@ -8,13 +8,14 @@ local kernel086 = kernels.nep086 local parentIdentifier = transforms.NeptuneBarycenter.Identifier local parentSpice = "NEPTUNE BARYCENTER" -local tags = { "moon_solarSystem", "moon_giants", "moon_neptune", "moon_irregular_retrograde", "moon_minor" } +local tags = { "moon_solarSystem", "moon_giants", "moon_neptune", "moon_irregular_retrograde", "moon_minor", "moon_minor_neptune" } local trailColor = { 0.2, 0.5, 0.75 } -local trailTags = { +local trailTags = { "moonTrail_solarSystem", "moonTrail_giants", "moonTrail_neptune", - "moonTrail_minor" + "moonTrail_minor", + "moonTrail_minor_neptune" } local irregularRetrogradeMoons = { @@ -71,20 +72,60 @@ local irregularRetrogradeMoons = { } } + +-- Generate labels for each moon +local moon_labels = {} + +for i, moon in ipairs(irregularRetrogradeMoons) do + local moonName = moon.GUI.Name or moon.Identifier + moon_labels[i] = { + Identifier = moon.Identifier .. "Label", + Parent = moon.Identifier, + Renderable = { + Enabled = false, + Type = "RenderableLabel", + Text = moonName, + FontSize = 70.0, + Size = 7.4, + MinMaxSize = { 1, 25 }, + OrientationOption = "Camera View Direction", + BlendMode = "Additive", + EnableFading = true, + FadeUnit = "Gm", + FadeDistances = { 1, 250.0 }, + FadeWidths = { 1, 250.0 }, + }, + Tag = { "solarsystem_labels", "moon_labels", "minor_moon_labels" }, + GUI = { + Name = moonName .. " Label", + Path = "/Solar System/Planets/Neptune/Moons", + Description = "Label for Neptune's moon " .. moonName .. " (Irregular retrograde group)" + } + } +end + local nodes = proceduralGlobes.createGlobes(irregularRetrogradeMoons) asset.onInitialize(function() for _, node in ipairs(nodes) do openspace.addSceneGraphNode(node) end + + for _, moonlabel in ipairs(moon_labels) do + openspace.addSceneGraphNode(moonlabel) + end end) - + asset.onDeinitialize(function() + for i = #moon_labels, 1, -1 do + openspace.removeSceneGraphNode(moon_labels[i]) + end + 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/planets/neptune/minor_moons.asset b/data/assets/scene/solarsystem/planets/neptune/minor_moons.asset index c4d744d769..9bc23449ea 100644 --- a/data/assets/scene/solarsystem/planets/neptune/minor_moons.asset +++ b/data/assets/scene/solarsystem/planets/neptune/minor_moons.asset @@ -2,11 +2,68 @@ asset.require("./inner_moons") asset.require("./irregular_prograde_moons") asset.require("./irregular_retrograde_moons") +local minormoons_on = { + Identifier = "os.solarsystem.neptune.minormoonson", + Name = "Turn ON minor moons and trails", + Command = [[ + local trails = openspace.getProperty('{moonTrail_minor_neptune}.Renderable.Enabled'); + local trails_fade = openspace.getProperty('{moonTrail_minor_neptune}.Renderable.Fade'); + + local moons = openspace.getProperty('{moon_minor_neptune}.Renderable.Enabled'); + local moons_fade = openspace.getProperty('{moon_minor_neptune}.Renderable.Fade'); + + for i, v in pairs(trails_fade) do + openspace.setPropertyValueSingle(trails[i], true) + openspace.setPropertyValueSingle(v, 1, 2, 'Linear') + end + + for i, v in pairs(moons_fade) do + openspace.setPropertyValueSingle(moons[i], true) + openspace.setPropertyValueSingle(v, 1, 2, 'Linear') + end + ]], + Documentation = "Turn ON Neptune's minor moons and their trails", + GuiPath = "/Solar System/Neptune", + IsLocal = true +} + +local minormoons_off = { + Identifier = "os.solarsystem.neptune.minormoonsoff", + Name = "Turn OFF minors moon and trails", + Command = [[ + local trails = openspace.getProperty('{moonTrail_minor_neptune}.Renderable.Enabled'); + local trails_fade = openspace.getProperty('{moonTrail_minor_neptune}.Renderable.Fade'); + + local moons = openspace.getProperty('{moon_minor_neptune}.Renderable.Enabled'); + local moons_fade = openspace.getProperty('{moon_minor_neptune}.Renderable.Fade'); + + for i, v in pairs(trails_fade) do + openspace.setPropertyValueSingle(v, 0, 2, 'Linear', "openspace.setPropertyValueSingle('" .. trails[i] .. "', false)" ) + end + + for i, v in pairs(moons_fade) do + openspace.setPropertyValueSingle(v, 0, 2, 'Linear', "openspace.setPropertyValueSingle('" .. moons[i] .. "', false)" ) + end + ]], + Documentation = "Turn OFF Neptune's minor moons and their trails", + GuiPath = "/Solar System/Neptune", + IsLocal = true +} + +asset.onInitialize(function() + openspace.action.registerAction(minormoons_on) + openspace.action.registerAction(minormoons_off) +end) + +asset.onDeinitialize(function() + openspace.action.removeAction(minormoons_off) + openspace.action.removeAction(minormoons_on) +end) asset.meta = { Name = "Neptune Minor Moons", - Version = "1.0", - Description = [[Meta asset containing 3 moon groups: inner_moons, + Version = "1.1", + Description = [[Meta asset containing 3 moon groups: inner_moons, irregular_prograde_moons, and irregular_retrograde_moons]], Author = "OpenSpace Team", URL = "http://openspaceproject.com", diff --git a/data/assets/scene/solarsystem/planets/neptune/neptune.asset b/data/assets/scene/solarsystem/planets/neptune/neptune.asset index 7e5a991e51..917cbe7439 100644 --- a/data/assets/scene/solarsystem/planets/neptune/neptune.asset +++ b/data/assets/scene/solarsystem/planets/neptune/neptune.asset @@ -39,10 +39,14 @@ local NeptuneLabel = { Type = "RenderableLabel", Text = "Neptune", FontSize = 70.0, - Size = 8.96, - MinMaxSize = { 1, 100 }, + Size = 9.0, + MinMaxSize = { 1, 80 }, OrientationOption = "Camera View Direction", - BlendMode = "Additive" + BlendMode = "Additive", + EnableFading = true, + FadeUnit = "au", + FadeDistances = { 6.0, 120.0 }, + FadeWidths = { 2.0, 150.0 } }, Tag = { "solarsystem_labels" }, GUI = { @@ -56,12 +60,12 @@ 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) diff --git a/data/assets/scene/solarsystem/planets/neptune/trail.asset b/data/assets/scene/solarsystem/planets/neptune/trail.asset index bf0e729156..4af5ba2cd4 100644 --- a/data/assets/scene/solarsystem/planets/neptune/trail.asset +++ b/data/assets/scene/solarsystem/planets/neptune/trail.asset @@ -39,11 +39,11 @@ local NeptuneTrail = { asset.onInitialize(function() openspace.addSceneGraphNode(NeptuneTrail) end) - + asset.onDeinitialize(function() openspace.removeSceneGraphNode(NeptuneTrail) end) - + asset.export(NeptuneTrail) diff --git a/data/assets/scene/solarsystem/planets/neptune/trail_barycenter.asset b/data/assets/scene/solarsystem/planets/neptune/trail_barycenter.asset index ec1e11566f..112c4a71ed 100644 --- a/data/assets/scene/solarsystem/planets/neptune/trail_barycenter.asset +++ b/data/assets/scene/solarsystem/planets/neptune/trail_barycenter.asset @@ -29,11 +29,11 @@ local NeptuneBarycenterTrail = { asset.onInitialize(function() openspace.addSceneGraphNode(NeptuneBarycenterTrail) end) - + asset.onDeinitialize(function() openspace.removeSceneGraphNode(NeptuneBarycenterTrail) end) - + asset.export(NeptuneBarycenterTrail) diff --git a/data/assets/scene/solarsystem/planets/neptune/trail_earth.asset b/data/assets/scene/solarsystem/planets/neptune/trail_earth.asset index afc38367d7..b79ed5ac5c 100644 --- a/data/assets/scene/solarsystem/planets/neptune/trail_earth.asset +++ b/data/assets/scene/solarsystem/planets/neptune/trail_earth.asset @@ -31,11 +31,11 @@ local NeptuneTrailEarth = { asset.onInitialize(function() openspace.addSceneGraphNode(NeptuneTrailEarth) end) - + asset.onDeinitialize(function() openspace.removeSceneGraphNode(NeptuneTrailEarth) end) - + asset.export(NeptuneTrailEarth) diff --git a/data/assets/scene/solarsystem/planets/neptune/transforms.asset b/data/assets/scene/solarsystem/planets/neptune/transforms.asset index 609a53eb4d..a4c81387b8 100644 --- a/data/assets/scene/solarsystem/planets/neptune/transforms.asset +++ b/data/assets/scene/solarsystem/planets/neptune/transforms.asset @@ -22,11 +22,11 @@ local NeptuneBarycenter = { asset.onInitialize(function() openspace.addSceneGraphNode(NeptuneBarycenter) end) - + asset.onDeinitialize(function() openspace.removeSceneGraphNode(NeptuneBarycenter) end) - + asset.export(NeptuneBarycenter) diff --git a/data/assets/scene/solarsystem/planets/neptune/triton.asset b/data/assets/scene/solarsystem/planets/neptune/triton.asset index e27d507659..0f63edb6c8 100644 --- a/data/assets/scene/solarsystem/planets/neptune/triton.asset +++ b/data/assets/scene/solarsystem/planets/neptune/triton.asset @@ -22,20 +22,61 @@ local Triton = { Kernels = kernel } + +-- Generate labels for each moon +local moon_labels = {} + +for i, moon in ipairs({ Triton }) do + local moonName = moon.GUI.Name or moon.Identifier + moon_labels[i] = { + Identifier = moon.Identifier .. "Label", + Parent = moon.Identifier, + Renderable = { + Enabled = false, + Type = "RenderableLabel", + Text = moonName, + FontSize = 50.0, + Size = 7.0, + MinMaxSize = { 1, 25 }, + OrientationOption = "Camera View Direction", + BlendMode = "Additive", + EnableFading = true, + FadeUnit = "Gm", + FadeDistances = { 1, 15.0 }, + FadeWidths = { 1, 15.0 }, + }, + Tag = { "solarsystem_labels", "moon_labels", "major_moon_labels" }, + GUI = { + Name = moonName .. " Label", + Path = "/Solar System/Planets/Neptune/Moons", + Description = "Label for Neptune's moon " .. moonName + } + } +end + + local nodes = proceduralGlobes.createGlobes({ Triton }) asset.onInitialize(function() for _, node in ipairs(nodes) do openspace.addSceneGraphNode(node) end + + for _, moonlabel in ipairs(moon_labels) do + openspace.addSceneGraphNode(moonlabel) + end end) - + asset.onDeinitialize(function() + for i = #moon_labels, 1, -1 do + openspace.removeSceneGraphNode(moon_labels[i]) + end + 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/planets/saturn/dione/dione.asset b/data/assets/scene/solarsystem/planets/saturn/dione/dione.asset index 6286ffb82b..5a2baed2ee 100644 --- a/data/assets/scene/solarsystem/planets/saturn/dione/dione.asset +++ b/data/assets/scene/solarsystem/planets/saturn/dione/dione.asset @@ -24,7 +24,7 @@ local Dione = { SourceFrame = "IAU_ENCELADUS", DestinationFrame = "GALACTIC" } - }, + }, Renderable = { Type = "RenderableGlobe", Radii = 561400, @@ -49,14 +49,43 @@ local Dione = { } } + +local DioneLabel = { + Identifier = "DioneLabel", + Parent = Dione.Identifier, + Renderable = { + Enabled = false, + Type = "RenderableLabel", + Text = "Dione", + FontSize = 70.0, + Size = 6.0, + MinMaxSize = { 1, 25 }, + OrientationOption = "Camera View Direction", + BlendMode = "Normal", + EnableFading = true, + FadeUnit = "Gm", + FadeDistances = { 0.3, 10.0 }, + FadeWidths = { 0.15, 10.0 } + }, + Tag = { "solarsystem_labels", "moon_labels", "major_moon_labels" }, + GUI = { + Name = "Dione Label", + Path = "/Solar System/Planets/Saturn/Moons", + Description = "Label for Saturn's moon Dione" + } +} + + asset.onInitialize(function() openspace.addSceneGraphNode(Dione) + openspace.addSceneGraphNode(DioneLabel) end) - + asset.onDeinitialize(function() + openspace.removeSceneGraphNode(DioneLabel) openspace.removeSceneGraphNode(Dione) end) - + asset.export(Dione) diff --git a/data/assets/scene/solarsystem/planets/saturn/dione/trail.asset b/data/assets/scene/solarsystem/planets/saturn/dione/trail.asset index 71ec816017..0bd7895e15 100644 --- a/data/assets/scene/solarsystem/planets/saturn/dione/trail.asset +++ b/data/assets/scene/solarsystem/planets/saturn/dione/trail.asset @@ -29,11 +29,11 @@ local DioneTrail = { asset.onInitialize(function() openspace.addSceneGraphNode(DioneTrail) end) - + asset.onDeinitialize(function() openspace.removeSceneGraphNode(DioneTrail) end) - + asset.export(DioneTrail) diff --git a/data/assets/scene/solarsystem/planets/saturn/enceladus/enceladus.asset b/data/assets/scene/solarsystem/planets/saturn/enceladus/enceladus.asset index a9f5c3eb00..4035fe53f5 100644 --- a/data/assets/scene/solarsystem/planets/saturn/enceladus/enceladus.asset +++ b/data/assets/scene/solarsystem/planets/saturn/enceladus/enceladus.asset @@ -24,7 +24,7 @@ local Enceladus = { SourceFrame = "IAU_ENCELADUS", DestinationFrame = "GALACTIC" } - }, + }, Renderable = { Type = "RenderableGlobe", Radii = 252000, @@ -51,14 +51,43 @@ local Enceladus = { } } + +local EnceladusLabel = { + Identifier = "EnceladusLabel", + Parent = Enceladus.Identifier, + Renderable = { + Enabled = false, + Type = "RenderableLabel", + Text = "Enceladus", + FontSize = 70.0, + Size = 6.0, + MinMaxSize = { 1, 25 }, + OrientationOption = "Camera View Direction", + BlendMode = "Normal", + EnableFading = true, + FadeUnit = "Gm", + FadeDistances = { 0.3, 10.0 }, + FadeWidths = { 0.15, 10.0 } + }, + Tag = { "solarsystem_labels", "moon_labels", "major_moon_labels" }, + GUI = { + Name = "Enceladus Label", + Path = "/Solar System/Planets/Saturn/Moons", + Description = "Label for Saturn's moon Enceladus" + } +} + + asset.onInitialize(function() openspace.addSceneGraphNode(Enceladus) + openspace.addSceneGraphNode(EnceladusLabel) end) - + asset.onDeinitialize(function() + openspace.removeSceneGraphNode(EnceladusLabel) openspace.removeSceneGraphNode(Enceladus) end) - + asset.export(Enceladus) diff --git a/data/assets/scene/solarsystem/planets/saturn/enceladus/trail.asset b/data/assets/scene/solarsystem/planets/saturn/enceladus/trail.asset index 32ebb9c0ec..8918169f3b 100644 --- a/data/assets/scene/solarsystem/planets/saturn/enceladus/trail.asset +++ b/data/assets/scene/solarsystem/planets/saturn/enceladus/trail.asset @@ -29,11 +29,11 @@ local EnceladusTrail = { asset.onInitialize(function() openspace.addSceneGraphNode(EnceladusTrail) end) - + asset.onDeinitialize(function() openspace.removeSceneGraphNode(EnceladusTrail) end) - + asset.export(EnceladusTrail) diff --git a/data/assets/scene/solarsystem/planets/saturn/hyperion/hyperion.asset b/data/assets/scene/solarsystem/planets/saturn/hyperion/hyperion.asset index 5f8b1e277f..9df51d793f 100644 --- a/data/assets/scene/solarsystem/planets/saturn/hyperion/hyperion.asset +++ b/data/assets/scene/solarsystem/planets/saturn/hyperion/hyperion.asset @@ -50,14 +50,43 @@ local Hyperion = { } } + +local HyperionLabel = { + Identifier = "HyperionLabel", + Parent = Hyperion.Identifier, + Renderable = { + Enabled = false, + Type = "RenderableLabel", + Text = "Hyperion", + FontSize = 70.0, + Size = 6.2, + MinMaxSize = { 1, 35 }, + OrientationOption = "Camera View Direction", + BlendMode = "Normal", + EnableFading = true, + FadeUnit = "Gm", + FadeDistances = { 0.5, 20.0 }, + FadeWidths = { 0.3, 20.0 } + }, + Tag = { "solarsystem_labels", "moon_labels", "major_moon_labels" }, + GUI = { + Name = "Hyperion Label", + Path = "/Solar System/Planets/Saturn/Moons", + Description = "Label for Saturn's moon Hyperion" + } +} + + asset.onInitialize(function() openspace.addSceneGraphNode(Hyperion) + openspace.addSceneGraphNode(HyperionLabel) end) - + asset.onDeinitialize(function() + openspace.removeSceneGraphNode(HyperionLabel) openspace.removeSceneGraphNode(Hyperion) end) - + asset.export(Hyperion) diff --git a/data/assets/scene/solarsystem/planets/saturn/hyperion/trail.asset b/data/assets/scene/solarsystem/planets/saturn/hyperion/trail.asset index 24a6fa3209..09f870b4f7 100644 --- a/data/assets/scene/solarsystem/planets/saturn/hyperion/trail.asset +++ b/data/assets/scene/solarsystem/planets/saturn/hyperion/trail.asset @@ -28,11 +28,11 @@ local HyperionTrail = { asset.onInitialize(function() openspace.addSceneGraphNode(HyperionTrail) end) - + asset.onDeinitialize(function() openspace.removeSceneGraphNode(HyperionTrail) end) - + asset.export(HyperionTrail) diff --git a/data/assets/scene/solarsystem/planets/saturn/iapetus/iapetus.asset b/data/assets/scene/solarsystem/planets/saturn/iapetus/iapetus.asset index 71582077b0..a841b2e21f 100644 --- a/data/assets/scene/solarsystem/planets/saturn/iapetus/iapetus.asset +++ b/data/assets/scene/solarsystem/planets/saturn/iapetus/iapetus.asset @@ -51,14 +51,42 @@ local Iapetus = { } } +local IapetusLabel = { + Identifier = "IapetusLabel", + Parent = Iapetus.Identifier, + Renderable = { + Enabled = false, + Type = "RenderableLabel", + Text = "Iapetus", + FontSize = 70.0, + Size = 6.2, + MinMaxSize = { 1, 35 }, + OrientationOption = "Camera View Direction", + BlendMode = "Normal", + EnableFading = true, + FadeUnit = "Gm", + FadeDistances = { 0.5, 20.0 }, + FadeWidths = { 0.3, 20.0 } + }, + Tag = { "solarsystem_labels", "moon_labels", "major_moon_labels" }, + GUI = { + Name = "Iapetus Label", + Path = "/Solar System/Planets/Saturn/Moons", + Description = "Label for Saturn's moon Iapetus" + } +} + + asset.onInitialize(function() openspace.addSceneGraphNode(Iapetus) + openspace.addSceneGraphNode(IapetusLabel) end) - + asset.onDeinitialize(function() + openspace.removeSceneGraphNode(IapetusLabel) openspace.removeSceneGraphNode(Iapetus) end) - + asset.export(Iapetus) diff --git a/data/assets/scene/solarsystem/planets/saturn/iapetus/trail.asset b/data/assets/scene/solarsystem/planets/saturn/iapetus/trail.asset index dc692ad016..b9b3371148 100644 --- a/data/assets/scene/solarsystem/planets/saturn/iapetus/trail.asset +++ b/data/assets/scene/solarsystem/planets/saturn/iapetus/trail.asset @@ -29,11 +29,11 @@ local IapetusTrail = { asset.onInitialize(function() openspace.addSceneGraphNode(IapetusTrail) end) - + asset.onDeinitialize(function() openspace.removeSceneGraphNode(IapetusTrail) end) - + asset.export(IapetusTrail) diff --git a/data/assets/scene/solarsystem/planets/saturn/mimas/mimas.asset b/data/assets/scene/solarsystem/planets/saturn/mimas/mimas.asset index 6afc469fbf..1c63b5c0ef 100644 --- a/data/assets/scene/solarsystem/planets/saturn/mimas/mimas.asset +++ b/data/assets/scene/solarsystem/planets/saturn/mimas/mimas.asset @@ -51,14 +51,43 @@ local Mimas = { } } + +local MimasLabel = { + Identifier = "MimasLabel", + Parent = Mimas.Identifier, + Renderable = { + Enabled = false, + Type = "RenderableLabel", + Text = "Mimas", + FontSize = 70.0, + Size = 6.0, + MinMaxSize = { 1, 25 }, + OrientationOption = "Camera View Direction", + BlendMode = "Normal", + EnableFading = true, + FadeUnit = "Gm", + FadeDistances = { 0.3, 10.0 }, + FadeWidths = { 0.15, 10.0 } + }, + Tag = { "solarsystem_labels", "moon_labels", "major_moon_labels" }, + GUI = { + Name = "Mimas Label", + Path = "/Solar System/Planets/Saturn/Moons", + Description = "Label for Saturn's moon Mimas" + } +} + + asset.onInitialize(function() openspace.addSceneGraphNode(Mimas) + openspace.addSceneGraphNode(MimasLabel) end) - + asset.onDeinitialize(function() + openspace.removeSceneGraphNode(MimasLabel) openspace.removeSceneGraphNode(Mimas) end) - + asset.export(Mimas) diff --git a/data/assets/scene/solarsystem/planets/saturn/mimas/trail.asset b/data/assets/scene/solarsystem/planets/saturn/mimas/trail.asset index 170286b22d..16326c78b1 100644 --- a/data/assets/scene/solarsystem/planets/saturn/mimas/trail.asset +++ b/data/assets/scene/solarsystem/planets/saturn/mimas/trail.asset @@ -29,11 +29,11 @@ local MimasTrail = { asset.onInitialize(function() openspace.addSceneGraphNode(MimasTrail) end) - + asset.onDeinitialize(function() openspace.removeSceneGraphNode(MimasTrail) end) - + asset.export(MimasTrail) 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 ecda3a9331..7b2f72efdb 100644 --- a/data/assets/scene/solarsystem/planets/saturn/minor/gallic_group.asset +++ b/data/assets/scene/solarsystem/planets/saturn/minor/gallic_group.asset @@ -6,13 +6,14 @@ local kernel = asset.require("../kernels").sat368 local parentIdentifier = transforms.SaturnBarycenter.Identifier local parentSpice = "SATURN BARYCENTER" -local tags = { "moon_solarSystem", "moon_giants", "moon_saturn", "moon_gallic", "moon_minor" } +local tags = { "moon_solarSystem", "moon_giants", "moon_saturn", "moon_gallic", "moon_minor", "moon_minor_saturn" } local trailColor = { 0.5, 0.3, 0.3 } -local trailTags = { +local trailTags = { "moonTrail_solarSystem", "moonTrail_giants", "moonTrail_saturn", - "moonTrail_minor" + "moonTrail_minor", + "moonTrail_minor_saturn" } local gallicGroup = { @@ -86,20 +87,59 @@ local gallicGroup = { } } +-- Generate all moon labels +local moon_labels = {} + +for i, moon in ipairs(gallicGroup) do + local moonName = moon.GUI.Name or moon.Identifier + moon_labels[i] = { + Identifier = moon.Identifier .. "Label", + Parent = moon.Identifier, + Renderable = { + Enabled = false, + Type = "RenderableLabel", + Text = moonName, + FontSize = 70.0, + Size = 7.1, + MinMaxSize = { 1, 25 }, + OrientationOption = "Camera View Direction", + BlendMode = "Additive", + EnableFading = true, + FadeUnit = "Gm", + FadeDistances = { 1.25, 90.0 }, + FadeWidths = { 0.25, 90.0 } + }, + Tag = { "solarsystem_labels", "moon_labels", "minor_moon_labels" }, + GUI = { + Name = moonName .. " Label", + Path = "/Solar System/Planets/Saturn/Moons", + Description = "Label for Saturn's moon " .. moonName .. " (Gallic group)" + } + } +end + local nodes = proceduralGlobes.createGlobes(gallicGroup) asset.onInitialize(function() for _, node in ipairs(nodes) do openspace.addSceneGraphNode(node) end + + for _, moon in ipairs(moon_labels) do + openspace.addSceneGraphNode(moon) + end end) - + asset.onDeinitialize(function() + for i = #moon_labels, 1, -1 do + openspace.removeSceneGraphNode(moon_labels[i]) + end + 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/planets/saturn/minor/inuit_group.asset b/data/assets/scene/solarsystem/planets/saturn/minor/inuit_group.asset index 51b51409dd..6642e7850f 100644 --- a/data/assets/scene/solarsystem/planets/saturn/minor/inuit_group.asset +++ b/data/assets/scene/solarsystem/planets/saturn/minor/inuit_group.asset @@ -6,13 +6,14 @@ local kernel = asset.require("../kernels").sat368 local parentIdentifier = transforms.SaturnBarycenter.Identifier local parentSpice = "SATURN BARYCENTER" -local tags = { "moon_solarSystem", "moon_giants", "moon_saturn", "moon_inuit", "moon_minor" } +local tags = { "moon_solarSystem", "moon_giants", "moon_saturn", "moon_inuit", "moon_minor", "moon_minor_saturn" } local trailColor = { 0.5, 0.3, 0.3 } -local trailTags = { +local trailTags = { "moonTrail_solarSystem", "moonTrail_giants", "moonTrail_saturn", - "moonTrail_minor" + "moonTrail_minor", + "moonTrail_minor_saturn" } local inuitGroup = { @@ -103,20 +104,59 @@ local inuitGroup = { } } +-- Generate all moon labels +local moon_labels = {} + +for i, moon in ipairs(inuitGroup) do + local moonName = moon.GUI.Name or moon.Identifier + moon_labels[i] = { + Identifier = moon.Identifier .. "Label", + Parent = moon.Identifier, + Renderable = { + Enabled = false, + Type = "RenderableLabel", + Text = moonName, + FontSize = 70.0, + Size = 7.1, + MinMaxSize = { 1, 25 }, + OrientationOption = "Camera View Direction", + BlendMode = "Additive", + EnableFading = true, + FadeUnit = "Gm", + FadeDistances = { 1.25, 90.0 }, + FadeWidths = { 0.25, 90.0 } + }, + Tag = { "solarsystem_labels", "moon_labels", "minor_moon_labels" }, + GUI = { + Name = moonName .. " Label", + Path = "/Solar System/Planets/Saturn/Moons", + Description = "Label for Saturn's moon " .. moonName .. " (Inuit group)" + } + } +end + local nodes = proceduralGlobes.createGlobes(inuitGroup) asset.onInitialize(function() for _, node in ipairs(nodes) do openspace.addSceneGraphNode(node) end + + for _, moon in ipairs(moon_labels) do + openspace.addSceneGraphNode(moon) + end end) - + asset.onDeinitialize(function() + for i = #moon_labels, 1, -1 do + openspace.removeSceneGraphNode(moon_labels[i]) + end + 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/planets/saturn/minor/norse_group.asset b/data/assets/scene/solarsystem/planets/saturn/minor/norse_group.asset index f7ffb62ca7..0a1efada10 100644 --- a/data/assets/scene/solarsystem/planets/saturn/minor/norse_group.asset +++ b/data/assets/scene/solarsystem/planets/saturn/minor/norse_group.asset @@ -8,13 +8,14 @@ local kernel375 = kernels.sat375 local parentIdentifier = transforms.SaturnBarycenter.Identifier local parentSpice = "SATURN BARYCENTER" -local tags = { "moon_solarSystem", "moon_giants", "moon_saturn", "moon_norse", "moon_minor" } +local tags = { "moon_solarSystem", "moon_giants", "moon_saturn", "moon_norse", "moon_minor", "moon_minor_saturn" } local trailColor = { 0.5, 0.3, 0.3 } -local trailTags = { +local trailTags = { "moonTrail_solarSystem", "moonTrail_giants", "moonTrail_saturn", - "moonTrail_minor" + "moonTrail_minor", + "moonTrail_minor_saturn" } local norseGroup = { @@ -521,20 +522,59 @@ local norseGroup = { } } +-- Generate all moon labels +local moon_labels = {} + +for i, moon in ipairs(norseGroup) do + local moonName = moon.GUI.Name or moon.Identifier + moon_labels[i] = { + Identifier = moon.Identifier .. "Label", + Parent = moon.Identifier, + Renderable = { + Enabled = false, + Type = "RenderableLabel", + Text = moonName, + FontSize = 70.0, + Size = 7.1, + MinMaxSize = { 1, 25 }, + OrientationOption = "Camera View Direction", + BlendMode = "Additive", + EnableFading = true, + FadeUnit = "Gm", + FadeDistances = { 1.25, 90.0 }, + FadeWidths = { 0.25, 90.0 } + }, + Tag = { "solarsystem_labels", "moon_labels", "minor_moon_labels" }, + GUI = { + Name = moonName .. " Label", + Path = "/Solar System/Planets/Saturn/Moons", + Description = "Label for Saturn's moon " .. moonName .. " (Norse group)" + } + } +end + local nodes = proceduralGlobes.createGlobes(norseGroup) asset.onInitialize(function() for _, node in ipairs(nodes) do openspace.addSceneGraphNode(node) end + + for _, moon in ipairs(moon_labels) do + openspace.addSceneGraphNode(moon) + end end) - + asset.onDeinitialize(function() + for i = #moon_labels, 1, -1 do + openspace.removeSceneGraphNode(moon_labels[i]) + end + 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/planets/saturn/minor/other_group.asset b/data/assets/scene/solarsystem/planets/saturn/minor/other_group.asset index 82576da913..552104b632 100644 --- a/data/assets/scene/solarsystem/planets/saturn/minor/other_group.asset +++ b/data/assets/scene/solarsystem/planets/saturn/minor/other_group.asset @@ -8,13 +8,14 @@ local kernel393 = kernels.sat393 local parentIdentifier = transforms.SaturnBarycenter.Identifier local parentSpice = "SATURN BARYCENTER" -local tags = { "moon_solarSystem", "moon_giants", "moon_saturn", "moon_other", "moon_minor" } +local tags = { "moon_solarSystem", "moon_giants", "moon_saturn", "moon_other", "moon_minor", "moon_minor_saturn" } local trailColor = { 0.5, 0.3, 0.3 } -local trailTags = { +local trailTags = { "moonTrail_solarSystem", "moonTrail_giants", "moonTrail_saturn", - "moonTrail_minor" + "moonTrail_minor", + "moonTrail_minor_saturn" } local otherGroup = { @@ -156,20 +157,59 @@ local otherGroup = { } } +-- Generate all moon labels +local moon_labels = {} + +for i, moon in ipairs(otherGroup) do + local moonName = moon.GUI.Name or moon.Identifier + moon_labels[i] = { + Identifier = moon.Identifier .. "Label", + Parent = moon.Identifier, + Renderable = { + Enabled = false, + Type = "RenderableLabel", + Text = moonName, + FontSize = 70.0, + Size = 5.5, + MinMaxSize = { 1, 20 }, + OrientationOption = "Camera View Direction", + BlendMode = "Additive", + EnableFading = true, + FadeUnit = "Mm", + FadeDistances = { 250.0, 1500.0 }, + FadeWidths = { 100.0, 1500.0 } + }, + Tag = { "solarsystem_labels", "moon_labels", "minor_moon_labels" }, + GUI = { + Name = moonName .. " Label", + Path = "/Solar System/Planets/Saturn/Moons", + Description = "Label for Saturn's moon " .. moonName .. " (other group)" + } + } +end + local nodes = proceduralGlobes.createGlobes(otherGroup) asset.onInitialize(function() for _, node in ipairs(nodes) do openspace.addSceneGraphNode(node) end + + for _, moon in ipairs(moon_labels) do + openspace.addSceneGraphNode(moon) + end end) - + asset.onDeinitialize(function() + for i = #moon_labels, 1, -1 do + openspace.removeSceneGraphNode(moon_labels[i]) + end + 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/planets/saturn/minor/shepherd_group.asset b/data/assets/scene/solarsystem/planets/saturn/minor/shepherd_group.asset index 15d1402d0a..79715fa18a 100644 --- a/data/assets/scene/solarsystem/planets/saturn/minor/shepherd_group.asset +++ b/data/assets/scene/solarsystem/planets/saturn/minor/shepherd_group.asset @@ -16,13 +16,14 @@ local kernels = { local parentIdentifier = transforms.SaturnBarycenter.Identifier local parentSpice = "SATURN BARYCENTER" local guiPath = "/Solar System/Planets/Saturn/Moons/Shepherd Moons" -local tags = { "moon_solarSystem", "moon_giants", "moon_saturn", "moon_shepherd", "moon_minor" } +local tags = { "moon_solarSystem", "moon_giants", "moon_saturn", "moon_shepherd", "moon_minor", "moon_minor_saturn" } local trailColor = { 0.5, 0.3, 0.3 } -local trailTags = { +local trailTags = { "moonTrail_solarSystem", "moonTrail_giants", "moonTrail_saturn", - "moonTrail_minor" + "moonTrail_minor", + "moonTrail_minor_saturn" } local shepherdGroup = { @@ -147,15 +148,54 @@ local shepherdGroup = { } } +-- Generate all moon labels +local moon_labels = {} + +for i, moon in ipairs(shepherdGroup) do + local moonName = moon.GUI.Name or moon.Identifier + moon_labels[i] = { + Identifier = moon.Identifier .. "Label", + Parent = moon.Identifier, + Renderable = { + Enabled = false, + Type = "RenderableLabel", + Text = moonName, + FontSize = 70.0, + Size = 5.5, + MinMaxSize = { 1, 20 }, + OrientationOption = "Camera View Direction", + BlendMode = "Normal", + EnableFading = true, + FadeUnit = "Mm", + FadeDistances = { 75.0, 1000.0 }, + FadeWidths = { 25.0, 800.0 } + }, + Tag = { "solarsystem_labels", "moon_labels", "minor_moon_labels" }, + GUI = { + Name = moonName .. " Label", + Path = "/Solar System/Planets/Saturn/Moons", + Description = "Label for Saturn's moon " .. moonName .. " (Shepherd group)" + } + } +end + local nodes = proceduralGlobes.createGlobes(shepherdGroup) asset.onInitialize(function() for _, node in ipairs(nodes) do openspace.addSceneGraphNode(node) end + + for _, moon in ipairs(moon_labels) do + openspace.addSceneGraphNode(moon) + end end) asset.onDeinitialize(function() + for i = #moon_labels, 1, -1 do + openspace.removeSceneGraphNode(moon_labels[i]) + end + for i = #nodes, 1, -1 do openspace.removeSceneGraphNode(nodes[i]) end diff --git a/data/assets/scene/solarsystem/planets/saturn/minor_moons.asset b/data/assets/scene/solarsystem/planets/saturn/minor_moons.asset index 0012552b4c..cf98ce0f4f 100644 --- a/data/assets/scene/solarsystem/planets/saturn/minor_moons.asset +++ b/data/assets/scene/solarsystem/planets/saturn/minor_moons.asset @@ -4,10 +4,67 @@ asset.require("./minor/norse_group") asset.require("./minor/other_group") asset.require("./minor/shepherd_group") +local minormoons_on = { + Identifier = "os.solarsystem.saturn.minormoonson", + Name = "Turn ON minor moons and trails", + Command = [[ + local trails = openspace.getProperty('{moonTrail_minor_saturn}.Renderable.Enabled'); + local trails_fade = openspace.getProperty('{moonTrail_minor_saturn}.Renderable.Fade'); + + local moons = openspace.getProperty('{moon_minor_saturn}.Renderable.Enabled'); + local moons_fade = openspace.getProperty('{moon_minor_saturn}.Renderable.Fade'); + + for i, v in pairs(trails_fade) do + openspace.setPropertyValueSingle(trails[i], true) + openspace.setPropertyValueSingle(v, 1, 2, 'Linear') + end + + for i, v in pairs(moons_fade) do + openspace.setPropertyValueSingle(moons[i], true) + openspace.setPropertyValueSingle(v, 1, 2, 'Linear') + end + ]], + Documentation = "Turn ON Saturn's minor moons and their trails", + GuiPath = "/Solar System/Saturn", + IsLocal = true +} + +local minormoons_off = { + Identifier = "os.solarsystem.saturn.minormoonsoff", + Name = "Turn OFF minors moon and trails", + Command = [[ + local trails = openspace.getProperty('{moonTrail_minor_saturn}.Renderable.Enabled'); + local trails_fade = openspace.getProperty('{moonTrail_minor_saturn}.Renderable.Fade'); + + local moons = openspace.getProperty('{moon_minor_saturn}.Renderable.Enabled'); + local moons_fade = openspace.getProperty('{moon_minor_saturn}.Renderable.Fade'); + + for i, v in pairs(trails_fade) do + openspace.setPropertyValueSingle(v, 0, 2, 'Linear', "openspace.setPropertyValueSingle('" .. trails[i] .. "', false)" ) + end + + for i, v in pairs(moons_fade) do + openspace.setPropertyValueSingle(v, 0, 2, 'Linear', "openspace.setPropertyValueSingle('" .. moons[i] .. "', false)" ) + end + ]], + Documentation = "Turn OFF Saturn's minor moons and their trails", + GuiPath = "/Solar System/Saturn", + IsLocal = true +} + +asset.onInitialize(function() + openspace.action.registerAction(minormoons_on) + openspace.action.registerAction(minormoons_off) +end) + +asset.onDeinitialize(function() + openspace.action.removeAction(minormoons_off) + openspace.action.removeAction(minormoons_on) +end) asset.meta = { Name = "Saturn Minor Moons", - Version = "1.0", + Version = "1.1", Description = [[Meta asset containing five moon groups: Gallic, Inuit, Norse, Shepherd moons and Other]], Author = "OpenSpace Team", diff --git a/data/assets/scene/solarsystem/planets/saturn/rhea/rhea.asset b/data/assets/scene/solarsystem/planets/saturn/rhea/rhea.asset index 0630f53e08..b1b441fa04 100644 --- a/data/assets/scene/solarsystem/planets/saturn/rhea/rhea.asset +++ b/data/assets/scene/solarsystem/planets/saturn/rhea/rhea.asset @@ -51,14 +51,43 @@ local Rhea = { } } + +local RheaLabel = { + Identifier = "RheaLabel", + Parent = Rhea.Identifier, + Renderable = { + Enabled = false, + Type = "RenderableLabel", + Text = "Rhea", + FontSize = 70.0, + Size = 6.0, + MinMaxSize = { 1, 25 }, + OrientationOption = "Camera View Direction", + BlendMode = "Normal", + EnableFading = true, + FadeUnit = "Gm", + FadeDistances = { 0.3, 10.0 }, + FadeWidths = { 0.15, 10.0 } + }, + Tag = { "solarsystem_labels", "moon_labels", "major_moon_labels" }, + GUI = { + Name = "Rhea Label", + Path = "/Solar System/Planets/Saturn/Moons", + Description = "Label for Saturn's moon Rhea" + } +} + + asset.onInitialize(function() openspace.addSceneGraphNode(Rhea) + openspace.addSceneGraphNode(RheaLabel) end) - + asset.onDeinitialize(function() + openspace.removeSceneGraphNode(RheaLabel) openspace.removeSceneGraphNode(Rhea) end) - + asset.export(Rhea) diff --git a/data/assets/scene/solarsystem/planets/saturn/rhea/trail.asset b/data/assets/scene/solarsystem/planets/saturn/rhea/trail.asset index a632b0928a..a985709375 100644 --- a/data/assets/scene/solarsystem/planets/saturn/rhea/trail.asset +++ b/data/assets/scene/solarsystem/planets/saturn/rhea/trail.asset @@ -29,11 +29,11 @@ local RheaTrail = { asset.onInitialize(function() openspace.addSceneGraphNode(RheaTrail) end) - + asset.onDeinitialize(function() openspace.removeSceneGraphNode(RheaTrail) end) - + asset.export(RheaTrail) diff --git a/data/assets/scene/solarsystem/planets/saturn/saturn.asset b/data/assets/scene/solarsystem/planets/saturn/saturn.asset index 7118460ce9..7c0d914a74 100644 --- a/data/assets/scene/solarsystem/planets/saturn/saturn.asset +++ b/data/assets/scene/solarsystem/planets/saturn/saturn.asset @@ -41,7 +41,7 @@ local Saturn = { TextureColor = texturesPath .. "color_original_single.png", TextureTransparency = texturesPath .. "trans_original_single.png", ColorFilter = 0.8, - + NightFactor = 1.0, Size = 140445000, Offset = { 74500 / 140445.100671159, 1.0 }, -- min / max extend @@ -49,7 +49,7 @@ local Saturn = { Shadows = { Enabled = true, DistanceFraction = 40.0 - } + } }, Tag = { "planet_solarSystem", "planet_giants" }, GUI = { @@ -67,10 +67,14 @@ local SaturnLabel = { Type = "RenderableLabel", Text = "Saturn", FontSize = 70.0, - Size = 8.85, - MinMaxSize = { 1, 100 }, + Size = 8.9, + MinMaxSize = { 1, 60 }, BlendMode = "Additive", - OrientationOption = "Camera View Direction" + OrientationOption = "Camera View Direction", + EnableFading = true, + FadeUnit = "au", + FadeDistances = { 2.5, 80.0 }, + FadeWidths = { 1.0, 100.0 } }, Tag = { "solarsystem_labels" }, GUI = { @@ -84,12 +88,12 @@ 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) diff --git a/data/assets/scene/solarsystem/planets/saturn/tethys/tethys.asset b/data/assets/scene/solarsystem/planets/saturn/tethys/tethys.asset index 2ca80bdaee..78f5825189 100644 --- a/data/assets/scene/solarsystem/planets/saturn/tethys/tethys.asset +++ b/data/assets/scene/solarsystem/planets/saturn/tethys/tethys.asset @@ -49,14 +49,43 @@ local Tethys = { } } + +local TethysLabel = { + Identifier = "TethysLabel", + Parent = Tethys.Identifier, + Renderable = { + Enabled = false, + Type = "RenderableLabel", + Text = "Tethys", + FontSize = 70.0, + Size = 6.0, + MinMaxSize = { 1, 25 }, + OrientationOption = "Camera View Direction", + BlendMode = "Normal", + EnableFading = true, + FadeUnit = "Gm", + FadeDistances = { 0.3, 10.0 }, + FadeWidths = { 0.15, 10.0 } + }, + Tag = { "solarsystem_labels", "moon_labels", "major_moon_labels" }, + GUI = { + Name = "Tethys Label", + Path = "/Solar System/Planets/Saturn/Moons", + Description = "Label for Saturn's moon Tethys" + } +} + + asset.onInitialize(function() openspace.addSceneGraphNode(Tethys) + openspace.addSceneGraphNode(TethysLabel) end) - + asset.onDeinitialize(function() + openspace.removeSceneGraphNode(TethysLabel) openspace.removeSceneGraphNode(Tethys) end) - + asset.export(Tethys) diff --git a/data/assets/scene/solarsystem/planets/saturn/tethys/trail.asset b/data/assets/scene/solarsystem/planets/saturn/tethys/trail.asset index 281b5b2803..7fa5e94717 100644 --- a/data/assets/scene/solarsystem/planets/saturn/tethys/trail.asset +++ b/data/assets/scene/solarsystem/planets/saturn/tethys/trail.asset @@ -29,11 +29,11 @@ local TethysTrail = { asset.onInitialize(function() openspace.addSceneGraphNode(TethysTrail) end) - + asset.onDeinitialize(function() openspace.removeSceneGraphNode(TethysTrail) end) - + asset.export(TethysTrail) diff --git a/data/assets/scene/solarsystem/planets/saturn/titan/atmosphere.asset b/data/assets/scene/solarsystem/planets/saturn/titan/atmosphere.asset index 8af3a546e6..dad3403036 100644 --- a/data/assets/scene/solarsystem/planets/saturn/titan/atmosphere.asset +++ b/data/assets/scene/solarsystem/planets/saturn/titan/atmosphere.asset @@ -47,11 +47,11 @@ local Atmosphere = { asset.onInitialize(function() openspace.addSceneGraphNode(Atmosphere) end) - + asset.onDeinitialize(function() openspace.removeSceneGraphNode(Atmosphere) end) - + asset.export(Atmosphere) diff --git a/data/assets/scene/solarsystem/planets/saturn/titan/titan.asset b/data/assets/scene/solarsystem/planets/saturn/titan/titan.asset index 5108690898..6cddd13b22 100644 --- a/data/assets/scene/solarsystem/planets/saturn/titan/titan.asset +++ b/data/assets/scene/solarsystem/planets/saturn/titan/titan.asset @@ -51,14 +51,43 @@ local Titan = { } } + +local TitanLabel = { + Identifier = "TitanLabel", + Parent = Titan.Identifier, + Renderable = { + Enabled = false, + Type = "RenderableLabel", + Text = "Titan", + FontSize = 70.0, + Size = 6.2, + MinMaxSize = { 1, 35 }, + OrientationOption = "Camera View Direction", + BlendMode = "Normal", + EnableFading = true, + FadeUnit = "Gm", + FadeDistances = { 0.5, 20.0 }, + FadeWidths = { 0.3, 20.0 } + }, + Tag = { "solarsystem_labels", "moon_labels", "major_moon_labels" }, + GUI = { + Name = "Titan Label", + Path = "/Solar System/Planets/Saturn/Moons", + Description = "Label for Saturn's moon Titan" + } +} + + asset.onInitialize(function() openspace.addSceneGraphNode(Titan) + openspace.addSceneGraphNode(TitanLabel) end) - + asset.onDeinitialize(function() + openspace.removeSceneGraphNode(TitanLabel) openspace.removeSceneGraphNode(Titan) end) - + asset.export(Titan) diff --git a/data/assets/scene/solarsystem/planets/saturn/titan/trail.asset b/data/assets/scene/solarsystem/planets/saturn/titan/trail.asset index 705b7f02ad..65384fbc8d 100644 --- a/data/assets/scene/solarsystem/planets/saturn/titan/trail.asset +++ b/data/assets/scene/solarsystem/planets/saturn/titan/trail.asset @@ -29,11 +29,11 @@ local TitanTrail = { asset.onInitialize(function() openspace.addSceneGraphNode(TitanTrail) end) - + asset.onDeinitialize(function() openspace.removeSceneGraphNode(TitanTrail) end) - + asset.export(TitanTrail) diff --git a/data/assets/scene/solarsystem/planets/saturn/trail.asset b/data/assets/scene/solarsystem/planets/saturn/trail.asset index 9bf0bb2a6a..6e0b3f2f7a 100644 --- a/data/assets/scene/solarsystem/planets/saturn/trail.asset +++ b/data/assets/scene/solarsystem/planets/saturn/trail.asset @@ -27,11 +27,11 @@ local SaturnTrail = { asset.onInitialize(function() openspace.addSceneGraphNode(SaturnTrail) end) - + asset.onDeinitialize(function() openspace.removeSceneGraphNode(SaturnTrail) end) - + asset.export(SaturnTrail) diff --git a/data/assets/scene/solarsystem/planets/saturn/trail_barycenter.asset b/data/assets/scene/solarsystem/planets/saturn/trail_barycenter.asset index 9c926add1c..ad107322e6 100644 --- a/data/assets/scene/solarsystem/planets/saturn/trail_barycenter.asset +++ b/data/assets/scene/solarsystem/planets/saturn/trail_barycenter.asset @@ -28,11 +28,11 @@ local SaturnBarycenterTrail = { asset.onInitialize(function() openspace.addSceneGraphNode(SaturnBarycenterTrail) end) - + asset.onDeinitialize(function() openspace.removeSceneGraphNode(SaturnBarycenterTrail) end) - + asset.export(SaturnBarycenterTrail) diff --git a/data/assets/scene/solarsystem/planets/saturn/trail_earth.asset b/data/assets/scene/solarsystem/planets/saturn/trail_earth.asset index 4d088f0787..fe17f23f83 100644 --- a/data/assets/scene/solarsystem/planets/saturn/trail_earth.asset +++ b/data/assets/scene/solarsystem/planets/saturn/trail_earth.asset @@ -31,11 +31,11 @@ local SaturnTrailEarth = { asset.onInitialize(function() openspace.addSceneGraphNode(SaturnTrailEarth) end) - + asset.onDeinitialize(function() openspace.removeSceneGraphNode(SaturnTrailEarth) end) - + asset.export(SaturnTrailEarth) diff --git a/data/assets/scene/solarsystem/planets/saturn/transforms.asset b/data/assets/scene/solarsystem/planets/saturn/transforms.asset index 6457f1a17c..5883d58117 100644 --- a/data/assets/scene/solarsystem/planets/saturn/transforms.asset +++ b/data/assets/scene/solarsystem/planets/saturn/transforms.asset @@ -22,11 +22,11 @@ local SaturnBarycenter = { asset.onInitialize(function() openspace.addSceneGraphNode(SaturnBarycenter) end) - + asset.onDeinitialize(function() openspace.removeSceneGraphNode(SaturnBarycenter) end) - + asset.export(SaturnBarycenter) diff --git a/data/assets/scene/solarsystem/planets/uranus/inner_moons.asset b/data/assets/scene/solarsystem/planets/uranus/inner_moons.asset index ec89cafe3a..c9cbabebe9 100644 --- a/data/assets/scene/solarsystem/planets/uranus/inner_moons.asset +++ b/data/assets/scene/solarsystem/planets/uranus/inner_moons.asset @@ -6,14 +6,15 @@ local kernel = asset.require("./kernels").ura091 local parentIdentifier = transforms.UranusBarycenter.Identifier local parentSpice = "URANUS BARYCENTER" -local tags = { "moon_solarSystem", "moon_giants", "moon_uranus", "moon_inner", "moon_minor" } +local tags = { "moon_solarSystem", "moon_giants", "moon_uranus", "moon_inner", "moon_minor", "moon_minor_uranus" } local trailColor = { 0.60, 0.65, 0.84 } -local trailTags = { +local trailTags = { "moonTrail_solarSystem", "moonTrail_giants", "moonTrail_uranus", - "moonTrail_minor" + "moonTrail_minor", + "moonTrail_minor_uranus" } @@ -241,20 +242,59 @@ local innerMoons = { } } +-- Generate all moon labels +local moon_labels = {} + +for i, moon in ipairs(innerMoons) do + local moonName = moon.GUI.Name or moon.Identifier + moon_labels[i] = { + Identifier = moon.Identifier .. "Label", + Parent = moon.Identifier, + Renderable = { + Enabled = false, + Type = "RenderableLabel", + Text = moonName, + FontSize = 70.0, + Size = 5.5, + MinMaxSize = { 1, 17 }, + OrientationOption = "Camera View Direction", + BlendMode = "Normal", + EnableFading = true, + FadeUnit = "Mm", + FadeDistances = { 100.0, 500.0 }, + FadeWidths = { 25.0, 500.0 } + }, + Tag = { "solarsystem_labels", "moon_labels", "minor_moon_labels" }, + GUI = { + Name = moonName .. " Label", + Path = "/Solar System/Planets/Uranus/Moons", + Description = "Label for Uranus' moon " .. moonName .. " (inner group)" + } + } +end + local nodes = proceduralGlobes.createGlobes(innerMoons) asset.onInitialize(function() for _, node in ipairs(nodes) do openspace.addSceneGraphNode(node) end + + for _, moon in ipairs(moon_labels) do + openspace.addSceneGraphNode(moon) + end end) - + asset.onDeinitialize(function() + for i = #moon_labels, 1, -1 do + openspace.removeSceneGraphNode(moon_labels[i]) + end + 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/planets/uranus/irregular_prograde_moons.asset b/data/assets/scene/solarsystem/planets/uranus/irregular_prograde_moons.asset index 7c865e7385..b82b0446b3 100644 --- a/data/assets/scene/solarsystem/planets/uranus/irregular_prograde_moons.asset +++ b/data/assets/scene/solarsystem/planets/uranus/irregular_prograde_moons.asset @@ -6,13 +6,14 @@ local kernel = asset.require("./kernels").ura112 local parentIdentifier = transforms.UranusBarycenter.Identifier local parentSpice = "URANUS BARYCENTER" -local tags = { "moon_solarSystem", "moon_giants", "moon_uranus", "moon_irregular_prograde", "moon_minor" } +local tags = { "moon_solarSystem", "moon_giants", "moon_uranus", "moon_irregular_prograde", "moon_minor", "moon_minor_uranus" } local trailColor = { 0.60, 0.65, 0.84 } -local trailTags = { +local trailTags = { "moonTrail_solarSystem", "moonTrail_giants", "moonTrail_uranus", - "moonTrail_minor" + "moonTrail_minor", + "moonTrail_minor_uranus" } local irregularMoons = { @@ -35,20 +36,60 @@ local irregularMoons = { } } +--Generate all moon labels +local moon_labels = {} + +for i, moon in ipairs(irregularMoons) do + local moonName = moon.GUI.Name or moon.Identifier + moon_labels[i] = { + Identifier = moon.Identifier .. "Label", + Parent = moon.Identifier, + Renderable = { + Enabled = false, + Type = "RenderableLabel", + Text = moonName, + FontSize = 70.0, + Size = 7.0, + MinMaxSize = { 1, 25 }, + OrientationOption = "Camera View Direction", + BlendMode = "Normal", + EnableFading = true, + FadeUnit = "Gm", + FadeDistances = { 2.0, 80.0 }, + FadeWidths = { 1.0, 40.0 } + }, + Tag = { "solarsystem_labels", "moon_labels", "minor_moon_labels" }, + GUI = { + Name = moonName .. " Label", + Path = "/Solar System/Planets/Uranus/Moons", + Description = "Label for Uranus' moon " .. moonName .. " (Irregular prograde group)" + } + } +end + + local nodes = proceduralGlobes.createGlobes(irregularMoons) asset.onInitialize(function() for _, node in ipairs(nodes) do openspace.addSceneGraphNode(node) end + + for _, moon in ipairs(moon_labels) do + openspace.addSceneGraphNode(moon) + end end) - + asset.onDeinitialize(function() + for i = #moon_labels, 1, -1 do + openspace.removeSceneGraphNode(moon_labels[i]) + end + 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/planets/uranus/irregular_retrograde_moons.asset b/data/assets/scene/solarsystem/planets/uranus/irregular_retrograde_moons.asset index 888821b770..df1e401f53 100644 --- a/data/assets/scene/solarsystem/planets/uranus/irregular_retrograde_moons.asset +++ b/data/assets/scene/solarsystem/planets/uranus/irregular_retrograde_moons.asset @@ -6,13 +6,14 @@ local kernel = asset.require("./kernels").ura112 local parentIdentifier = transforms.UranusBarycenter.Identifier local parentSpice = "URANUS BARYCENTER" -local tags = { "moon_solarSystem", "moon_giants", "moon_uranus", "moon_irregular_retrograde", "moon_minor" } +local tags = { "moon_solarSystem", "moon_giants", "moon_uranus", "moon_irregular_retrograde", "moon_minor", "moon_minor_uranus" } local trailColor = { 0.60, 0.65, 0.84 } -local trailTags = { +local trailTags = { "moonTrail_solarSystem", "moonTrail_giants", "moonTrail_uranus", - "moonTrail_minor" + "moonTrail_minor", + "moonTrail_minor_uranus" } local irregularMoons = { @@ -154,20 +155,59 @@ local irregularMoons = { } } +-- Generate all moon labels +local moon_labels = {} + +for i, moon in ipairs(irregularMoons) do + local moonName = moon.GUI.Name or moon.Identifier + moon_labels[i] = { + Identifier = moon.Identifier .. "Label", + Parent = moon.Identifier, + Renderable = { + Enabled = false, + Type = "RenderableLabel", + Text = moonName, + FontSize = 70.0, + Size = 7.0, + MinMaxSize = { 1, 25 }, + OrientationOption = "Camera View Direction", + BlendMode = "Normal", + EnableFading = true, + FadeUnit = "Gm", + FadeDistances = { 2.0, 80.0 }, + FadeWidths = { 1.0, 40.0 } + }, + Tag = { "solarsystem_labels", "moon_labels", "minor_moon_labels" }, + GUI = { + Name = moonName .. " Label", + Path = "/Solar System/Planets/Uranus/Moons", + Description = "Label for Uranus' moon " .. moonName .. " (Irregular retrograde group)" + } + } +end + local nodes = proceduralGlobes.createGlobes(irregularMoons) asset.onInitialize(function() for _, node in ipairs(nodes) do openspace.addSceneGraphNode(node) end + + for _, moon in ipairs(moon_labels) do + openspace.addSceneGraphNode(moon) + end end) - + asset.onDeinitialize(function() + for i = #moon_labels, 1, -1 do + openspace.removeSceneGraphNode(moon_labels[i]) + end + 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/planets/uranus/major_moons.asset b/data/assets/scene/solarsystem/planets/uranus/major_moons.asset index e325ee67f9..cc39438f0a 100644 --- a/data/assets/scene/solarsystem/planets/uranus/major_moons.asset +++ b/data/assets/scene/solarsystem/planets/uranus/major_moons.asset @@ -99,20 +99,59 @@ local majorMoons = { } } +-- Generate all moon labels +local moon_labels = {} + +for i, moon in ipairs(majorMoons) do + local moonName = moon.GUI.Name or moon.Identifier + moon_labels[i] = { + Identifier = moon.Identifier .. "Label", + Parent = moon.Identifier, + Renderable = { + Enabled = false, + Type = "RenderableLabel", + Text = moonName, + FontSize = 70.0, + Size = 5.9, + MinMaxSize = { 1, 25 }, + OrientationOption = "Camera View Direction", + BlendMode = "Normal", + EnableFading = true, + FadeUnit = "Mm", + FadeDistances = { 175.0, 4000.0 }, + FadeWidths = { 35.0, 2000.0 } + }, + Tag = { "solarsystem_labels", "moon_labels", "major_moon_labels" }, + GUI = { + Name = moonName .. " Label", + Path = "/Solar System/Planets/Uranus/Moons", + Description = "Label for Uranus' moon " .. moonName .. " (Major moon)" + } + } +end + local nodes = proceduralGlobes.createGlobes(majorMoons) asset.onInitialize(function() for _, node in ipairs(nodes) do openspace.addSceneGraphNode(node) end + + for _, moon in ipairs(moon_labels) do + openspace.addSceneGraphNode(moon) + end end) - + asset.onDeinitialize(function() + for i = #moon_labels, 1, -1 do + openspace.removeSceneGraphNode(moon_labels[i]) + end + 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/planets/uranus/minor_moons.asset b/data/assets/scene/solarsystem/planets/uranus/minor_moons.asset index 7d58e98871..3dda4bd61d 100644 --- a/data/assets/scene/solarsystem/planets/uranus/minor_moons.asset +++ b/data/assets/scene/solarsystem/planets/uranus/minor_moons.asset @@ -2,10 +2,67 @@ asset.require("./inner_moons") asset.require("./irregular_prograde_moons") asset.require("./irregular_retrograde_moons") +local minormoons_on = { + Identifier = "os.solarsystem.uranus.minormoonson", + Name = "Turn ON minor moons and trails", + Command = [[ + local trails = openspace.getProperty('{moonTrail_minor_uranus}.Renderable.Enabled'); + local trails_fade = openspace.getProperty('{moonTrail_minor_uranus}.Renderable.Fade'); + + local moons = openspace.getProperty('{moon_minor_uranus}.Renderable.Enabled'); + local moons_fade = openspace.getProperty('{moon_minor_uranus}.Renderable.Fade'); + + for i, v in pairs(trails_fade) do + openspace.setPropertyValueSingle(trails[i], true) + openspace.setPropertyValueSingle(v, 1, 2, 'Linear') + end + + for i, v in pairs(moons_fade) do + openspace.setPropertyValueSingle(moons[i], true) + openspace.setPropertyValueSingle(v, 1, 2, 'Linear') + end + ]], + Documentation = "Turn ON Uranus's minor moons and their trails", + GuiPath = "/Solar System/Uranus", + IsLocal = true +} + +local minormoons_off = { + Identifier = "os.solarsystem.uranus.minormoonsoff", + Name = "Turn OFF minors moon and trails", + Command = [[ + local trails = openspace.getProperty('{moonTrail_minor_uranus}.Renderable.Enabled'); + local trails_fade = openspace.getProperty('{moonTrail_minor_uranus}.Renderable.Fade'); + + local moons = openspace.getProperty('{moon_minor_uranus}.Renderable.Enabled'); + local moons_fade = openspace.getProperty('{moon_minor_uranus}.Renderable.Fade'); + + for i, v in pairs(trails_fade) do + openspace.setPropertyValueSingle(v, 0, 2, 'Linear', "openspace.setPropertyValueSingle('" .. trails[i] .. "', false)" ) + end + + for i, v in pairs(moons_fade) do + openspace.setPropertyValueSingle(v, 0, 2, 'Linear', "openspace.setPropertyValueSingle('" .. moons[i] .. "', false)" ) + end + ]], + Documentation = "Turn OFF Uranus's minor moons and their trails", + GuiPath = "/Solar System/Uranus", + IsLocal = true +} + +asset.onInitialize(function() + openspace.action.registerAction(minormoons_on) + openspace.action.registerAction(minormoons_off) +end) + +asset.onDeinitialize(function() + openspace.action.removeAction(minormoons_off) + openspace.action.removeAction(minormoons_on) +end) asset.meta = { Name = "Uranus Minor Moons", - Version = "1.0", + Version = "1.1", Description = [[Meta asset containing three moon groups: Inner Moons, Irregular Prograde Moons and Irregular Retrograde Moons]], Author = "OpenSpace Team", diff --git a/data/assets/scene/solarsystem/planets/uranus/trail.asset b/data/assets/scene/solarsystem/planets/uranus/trail.asset index 97c27a8053..f368239867 100644 --- a/data/assets/scene/solarsystem/planets/uranus/trail.asset +++ b/data/assets/scene/solarsystem/planets/uranus/trail.asset @@ -27,11 +27,11 @@ local UranusTrail = { asset.onInitialize(function() openspace.addSceneGraphNode(UranusTrail) end) - + asset.onDeinitialize(function() openspace.removeSceneGraphNode(UranusTrail) end) - + asset.export(UranusTrail) diff --git a/data/assets/scene/solarsystem/planets/uranus/trail_barycenter.asset b/data/assets/scene/solarsystem/planets/uranus/trail_barycenter.asset index 51cd58e5e7..05052ac3b7 100644 --- a/data/assets/scene/solarsystem/planets/uranus/trail_barycenter.asset +++ b/data/assets/scene/solarsystem/planets/uranus/trail_barycenter.asset @@ -28,11 +28,11 @@ local UranusBarycenterTrail = { asset.onInitialize(function() openspace.addSceneGraphNode(UranusBarycenterTrail) end) - + asset.onDeinitialize(function() openspace.removeSceneGraphNode(UranusBarycenterTrail) end) - + asset.export(UranusBarycenterTrail) diff --git a/data/assets/scene/solarsystem/planets/uranus/trail_earth.asset b/data/assets/scene/solarsystem/planets/uranus/trail_earth.asset index 43ccb1f95a..50e50024d5 100644 --- a/data/assets/scene/solarsystem/planets/uranus/trail_earth.asset +++ b/data/assets/scene/solarsystem/planets/uranus/trail_earth.asset @@ -31,11 +31,11 @@ local UranusTrailEarth = { asset.onInitialize(function() openspace.addSceneGraphNode(UranusTrailEarth) end) - + asset.onDeinitialize(function() openspace.removeSceneGraphNode(UranusTrailEarth) end) - + asset.export(UranusTrailEarth) diff --git a/data/assets/scene/solarsystem/planets/uranus/transforms.asset b/data/assets/scene/solarsystem/planets/uranus/transforms.asset index ea2e82e775..9ff90b5d67 100644 --- a/data/assets/scene/solarsystem/planets/uranus/transforms.asset +++ b/data/assets/scene/solarsystem/planets/uranus/transforms.asset @@ -24,11 +24,11 @@ local UranusBarycenter = { asset.onInitialize(function() openspace.addSceneGraphNode(UranusBarycenter) end) - + asset.onDeinitialize(function() openspace.removeSceneGraphNode(UranusBarycenter) end) - + asset.export(UranusBarycenter) diff --git a/data/assets/scene/solarsystem/planets/uranus/uranus.asset b/data/assets/scene/solarsystem/planets/uranus/uranus.asset index f1d836bc62..58370d57f2 100644 --- a/data/assets/scene/solarsystem/planets/uranus/uranus.asset +++ b/data/assets/scene/solarsystem/planets/uranus/uranus.asset @@ -39,10 +39,14 @@ local UranusLabel = { Type = "RenderableLabel", Text = "Uranus", FontSize = 70.0, - Size = 8.86, - MinMaxSize = { 1, 100 }, + Size = 9.0, + MinMaxSize = { 1, 80 }, OrientationOption = "Camera View Direction", - BlendMode = "Additive" + BlendMode = "Additive", + EnableFading = true, + FadeUnit = "au", + FadeDistances = { 2.5, 100.0 }, + FadeWidths = { 1.0, 120.0 } }, Tag = { "solarsystem_labels" }, GUI = { @@ -56,12 +60,12 @@ 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) diff --git a/data/assets/scene/solarsystem/planets/venus/atmosphere.asset b/data/assets/scene/solarsystem/planets/venus/atmosphere.asset index 9a0f784386..bd5a5ad8ec 100644 --- a/data/assets/scene/solarsystem/planets/venus/atmosphere.asset +++ b/data/assets/scene/solarsystem/planets/venus/atmosphere.asset @@ -19,7 +19,7 @@ local Atmosphere = { Wavelengths = { 680, 550, 440 }, -- Reflection coefficients are given in km^-1 Scattering = { 19.518E-3, 13.83E-3, 3.65E-3 } - -- In Rayleigh scattering, the coefficients of + -- In Rayleigh scattering, the coefficients of -- absorption and scattering are the same. }, -- Thickness of atmosphere if its density were uniform, in Km @@ -36,7 +36,7 @@ local Atmosphere = { }, -- Mie Height scale (atmosphere thickness for constant density) in Km H_M = 5.42, - -- Mie Phase Function Value (G e [-1.0, 1.0]. + -- Mie Phase Function Value (G e [-1.0, 1.0]. -- If G = 1.0, Mie phase function = Rayleigh Phase Function) G = 0.85 }, @@ -55,11 +55,11 @@ local Atmosphere = { asset.onInitialize(function() openspace.addSceneGraphNode(Atmosphere) end) - + asset.onDeinitialize(function() openspace.removeSceneGraphNode(Atmosphere) end) - + asset.export(Atmosphere) diff --git a/data/assets/scene/solarsystem/planets/venus/trail.asset b/data/assets/scene/solarsystem/planets/venus/trail.asset index f1097c23b4..17a2b7a565 100644 --- a/data/assets/scene/solarsystem/planets/venus/trail.asset +++ b/data/assets/scene/solarsystem/planets/venus/trail.asset @@ -29,11 +29,11 @@ local VenusTrail = { asset.onInitialize(function() openspace.addSceneGraphNode(VenusTrail) end) - + asset.onDeinitialize(function() openspace.removeSceneGraphNode(VenusTrail) end) - + asset.export(VenusTrail) diff --git a/data/assets/scene/solarsystem/planets/venus/trail_barycenter.asset b/data/assets/scene/solarsystem/planets/venus/trail_barycenter.asset index ead7112d00..13001eacbf 100644 --- a/data/assets/scene/solarsystem/planets/venus/trail_barycenter.asset +++ b/data/assets/scene/solarsystem/planets/venus/trail_barycenter.asset @@ -28,11 +28,11 @@ local VenusBarycenterTrail = { asset.onInitialize(function() openspace.addSceneGraphNode(VenusBarycenterTrail) end) - + asset.onDeinitialize(function() openspace.removeSceneGraphNode(VenusBarycenterTrail) end) - + asset.export(VenusBarycenterTrail) diff --git a/data/assets/scene/solarsystem/planets/venus/trail_earth.asset b/data/assets/scene/solarsystem/planets/venus/trail_earth.asset index 2a6a6dd990..41ddf83e77 100644 --- a/data/assets/scene/solarsystem/planets/venus/trail_earth.asset +++ b/data/assets/scene/solarsystem/planets/venus/trail_earth.asset @@ -30,11 +30,11 @@ local VenusTrailEarth = { asset.onInitialize(function() openspace.addSceneGraphNode(VenusTrailEarth) end) - + asset.onDeinitialize(function() openspace.removeSceneGraphNode(VenusTrailEarth) end) - + asset.export(VenusTrailEarth) diff --git a/data/assets/scene/solarsystem/planets/venus/transforms.asset b/data/assets/scene/solarsystem/planets/venus/transforms.asset index 43e8daf16d..239c905652 100644 --- a/data/assets/scene/solarsystem/planets/venus/transforms.asset +++ b/data/assets/scene/solarsystem/planets/venus/transforms.asset @@ -22,11 +22,11 @@ local VenusBarycenter = { asset.onInitialize(function() openspace.addSceneGraphNode(VenusBarycenter) end) - + asset.onDeinitialize(function() openspace.removeSceneGraphNode(VenusBarycenter) end) - + asset.export(VenusBarycenter) diff --git a/data/assets/scene/solarsystem/planets/venus/venus.asset b/data/assets/scene/solarsystem/planets/venus/venus.asset index bc4f227572..4ec5f82398 100644 --- a/data/assets/scene/solarsystem/planets/venus/venus.asset +++ b/data/assets/scene/solarsystem/planets/venus/venus.asset @@ -64,10 +64,14 @@ local VenusLabel = { Type = "RenderableLabel", Text = "Venus", FontSize = 70.0, - Size = 8.54, - MinMaxSize = { 1, 100 }, + Size = 8.5, + MinMaxSize = { 1, 40 }, OrientationOption = "Camera View Direction", - BlendMode = "Additive" + BlendMode = "Additive", + EnableFading = true, + FadeUnit = "au", + FadeDistances = { 1.5, 25.0 }, + FadeWidths = { 1.0, 35.0 } }, Tag = { "solarsystem_labels" }, GUI = { @@ -81,12 +85,12 @@ 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) diff --git a/data/assets/scene/solarsystem/sssb/amor_asteroid.asset b/data/assets/scene/solarsystem/sssb/amor_asteroid.asset index d8f0fb6cf7..d333ce1207 100644 --- a/data/assets/scene/solarsystem/sssb/amor_asteroid.asset +++ b/data/assets/scene/solarsystem/sssb/amor_asteroid.asset @@ -26,15 +26,15 @@ local object = { Earth's but interior to Mars'.]] } } - + asset.onInitialize(function() openspace.addSceneGraphNode(object) end) - + asset.onDeinitialize(function() openspace.removeSceneGraphNode(object) end) - + asset.export(object) diff --git a/data/assets/scene/solarsystem/sssb/apollo_asteroid.asset b/data/assets/scene/solarsystem/sssb/apollo_asteroid.asset index 8959b3fc01..a0afaf2538 100644 --- a/data/assets/scene/solarsystem/sssb/apollo_asteroid.asset +++ b/data/assets/scene/solarsystem/sssb/apollo_asteroid.asset @@ -30,11 +30,11 @@ local object = { asset.onInitialize(function() openspace.addSceneGraphNode(object) end) - + asset.onDeinitialize(function() openspace.removeSceneGraphNode(object) end) - + asset.export(object) diff --git a/data/assets/scene/solarsystem/sssb/astraea.asset b/data/assets/scene/solarsystem/sssb/astraea.asset index a6b9a9722a..cccb2f6d77 100644 --- a/data/assets/scene/solarsystem/sssb/astraea.asset +++ b/data/assets/scene/solarsystem/sssb/astraea.asset @@ -50,12 +50,12 @@ 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) diff --git a/data/assets/scene/solarsystem/sssb/aten_asteroid.asset b/data/assets/scene/solarsystem/sssb/aten_asteroid.asset index bde6a0cd97..9afd541a71 100644 --- a/data/assets/scene/solarsystem/sssb/aten_asteroid.asset +++ b/data/assets/scene/solarsystem/sssb/aten_asteroid.asset @@ -30,11 +30,11 @@ local object = { asset.onInitialize(function() openspace.addSceneGraphNode(object) end) - + asset.onDeinitialize(function() openspace.removeSceneGraphNode(object) end) - + asset.export(object) diff --git a/data/assets/scene/solarsystem/sssb/atira_asteroid.asset b/data/assets/scene/solarsystem/sssb/atira_asteroid.asset index 31e6221811..440ccb83cf 100644 --- a/data/assets/scene/solarsystem/sssb/atira_asteroid.asset +++ b/data/assets/scene/solarsystem/sssb/atira_asteroid.asset @@ -30,11 +30,11 @@ local object = { asset.onInitialize(function() openspace.addSceneGraphNode(object) end) - + asset.onDeinitialize(function() openspace.removeSceneGraphNode(object) end) - + asset.export(object) diff --git a/data/assets/scene/solarsystem/sssb/c2019y4atlas.asset b/data/assets/scene/solarsystem/sssb/c2019y4atlas.asset index 61847df142..d9bad7a287 100644 --- a/data/assets/scene/solarsystem/sssb/c2019y4atlas.asset +++ b/data/assets/scene/solarsystem/sssb/c2019y4atlas.asset @@ -54,12 +54,12 @@ 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) diff --git a/data/assets/scene/solarsystem/sssb/centaur_asteroid.asset b/data/assets/scene/solarsystem/sssb/centaur_asteroid.asset index c86a9f5ebb..4720ade3cf 100644 --- a/data/assets/scene/solarsystem/sssb/centaur_asteroid.asset +++ b/data/assets/scene/solarsystem/sssb/centaur_asteroid.asset @@ -30,13 +30,13 @@ local 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/sssb/chiron-type_comet.asset b/data/assets/scene/solarsystem/sssb/chiron-type_comet.asset index 45693cd7e7..d5a55e7f24 100644 --- a/data/assets/scene/solarsystem/sssb/chiron-type_comet.asset +++ b/data/assets/scene/solarsystem/sssb/chiron-type_comet.asset @@ -30,11 +30,11 @@ local object = { asset.onInitialize(function() openspace.addSceneGraphNode(object) end) - + asset.onDeinitialize(function() openspace.removeSceneGraphNode(object) end) - + asset.export(object) diff --git a/data/assets/scene/solarsystem/sssb/encke-type_comet.asset b/data/assets/scene/solarsystem/sssb/encke-type_comet.asset index 011f588df5..494ff0f797 100644 --- a/data/assets/scene/solarsystem/sssb/encke-type_comet.asset +++ b/data/assets/scene/solarsystem/sssb/encke-type_comet.asset @@ -30,13 +30,13 @@ local 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/sssb/halley-type_comet.asset b/data/assets/scene/solarsystem/sssb/halley-type_comet.asset index 2eb3f87ac2..347c4ede8a 100644 --- a/data/assets/scene/solarsystem/sssb/halley-type_comet.asset +++ b/data/assets/scene/solarsystem/sssb/halley-type_comet.asset @@ -29,11 +29,11 @@ local object = { asset.onInitialize(function() openspace.addSceneGraphNode(object) end) - + asset.onDeinitialize(function() openspace.removeSceneGraphNode(object) end) - + asset.export(object) 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 7bd30ffefa..06310f1fe2 100644 --- a/data/assets/scene/solarsystem/sssb/inner_main_belt_asteroid.asset +++ b/data/assets/scene/solarsystem/sssb/inner_main_belt_asteroid.asset @@ -30,11 +30,11 @@ local object = { asset.onInitialize(function() openspace.addSceneGraphNode(object) end) - + asset.onDeinitialize(function() openspace.removeSceneGraphNode(object) end) - + asset.export(object) diff --git a/data/assets/scene/solarsystem/sssb/jupiter-family_comet.asset b/data/assets/scene/solarsystem/sssb/jupiter-family_comet.asset index 64e79450f4..3f1f5478fb 100644 --- a/data/assets/scene/solarsystem/sssb/jupiter-family_comet.asset +++ b/data/assets/scene/solarsystem/sssb/jupiter-family_comet.asset @@ -30,11 +30,11 @@ local object = { asset.onInitialize(function() openspace.addSceneGraphNode(object) end) - + asset.onDeinitialize(function() openspace.removeSceneGraphNode(object) end) - + asset.export(object) diff --git a/data/assets/scene/solarsystem/sssb/jupiter_trojan_asteroid.asset b/data/assets/scene/solarsystem/sssb/jupiter_trojan_asteroid.asset index 282cc1cc41..2764a497c5 100644 --- a/data/assets/scene/solarsystem/sssb/jupiter_trojan_asteroid.asset +++ b/data/assets/scene/solarsystem/sssb/jupiter_trojan_asteroid.asset @@ -30,11 +30,11 @@ local object = { asset.onInitialize(function() openspace.addSceneGraphNode(object) end) - + asset.onDeinitialize(function() openspace.removeSceneGraphNode(object) end) - + asset.export(object) diff --git a/data/assets/scene/solarsystem/sssb/main_belt_asteroid.asset b/data/assets/scene/solarsystem/sssb/main_belt_asteroid.asset index 442ccbf0b8..6d0cb6ed3a 100644 --- a/data/assets/scene/solarsystem/sssb/main_belt_asteroid.asset +++ b/data/assets/scene/solarsystem/sssb/main_belt_asteroid.asset @@ -31,11 +31,11 @@ local object = { asset.onInitialize(function() openspace.addSceneGraphNode(object) end) - + asset.onDeinitialize(function() openspace.removeSceneGraphNode(object) end) - + asset.export(object) diff --git a/data/assets/scene/solarsystem/sssb/mars-crossing_asteroid.asset b/data/assets/scene/solarsystem/sssb/mars-crossing_asteroid.asset index b840a15e07..a3d41f26ba 100644 --- a/data/assets/scene/solarsystem/sssb/mars-crossing_asteroid.asset +++ b/data/assets/scene/solarsystem/sssb/mars-crossing_asteroid.asset @@ -30,11 +30,11 @@ local object = { asset.onInitialize(function() openspace.addSceneGraphNode(object) end) - + asset.onDeinitialize(function() openspace.removeSceneGraphNode(object) end) - + asset.export(object) 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 7fb79168eb..5d23b83adb 100644 --- a/data/assets/scene/solarsystem/sssb/outer_main_belt_asteroid.asset +++ b/data/assets/scene/solarsystem/sssb/outer_main_belt_asteroid.asset @@ -29,11 +29,11 @@ local object = { asset.onInitialize(function() openspace.addSceneGraphNode(object) end) - + asset.onDeinitialize(function() openspace.removeSceneGraphNode(object) end) - + asset.export(object) diff --git a/data/assets/scene/solarsystem/sssb/pha.asset b/data/assets/scene/solarsystem/sssb/pha.asset index e5ae832015..c0e388e988 100644 --- a/data/assets/scene/solarsystem/sssb/pha.asset +++ b/data/assets/scene/solarsystem/sssb/pha.asset @@ -32,11 +32,11 @@ local object = { asset.onInitialize(function() openspace.addSceneGraphNode(object) end) - + asset.onDeinitialize(function() openspace.removeSceneGraphNode(object) end) - + asset.export(object) diff --git a/data/assets/scene/solarsystem/sssb/swifttuttle.asset b/data/assets/scene/solarsystem/sssb/swifttuttle.asset index 71610aed03..5d3f81311c 100644 --- a/data/assets/scene/solarsystem/sssb/swifttuttle.asset +++ b/data/assets/scene/solarsystem/sssb/swifttuttle.asset @@ -50,12 +50,12 @@ 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) diff --git a/data/assets/scene/solarsystem/sssb/tesla_roadster.asset b/data/assets/scene/solarsystem/sssb/tesla_roadster.asset index 134c86b786..f771556121 100644 --- a/data/assets/scene/solarsystem/sssb/tesla_roadster.asset +++ b/data/assets/scene/solarsystem/sssb/tesla_roadster.asset @@ -52,12 +52,12 @@ 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) diff --git a/data/assets/scene/solarsystem/sssb/transneptunian_object_asteroid.asset b/data/assets/scene/solarsystem/sssb/transneptunian_object_asteroid.asset index 2bf8dd14fb..d96ec0484a 100644 --- a/data/assets/scene/solarsystem/sssb/transneptunian_object_asteroid.asset +++ b/data/assets/scene/solarsystem/sssb/transneptunian_object_asteroid.asset @@ -30,11 +30,11 @@ local object = { asset.onInitialize(function() openspace.addSceneGraphNode(object) end) - + asset.onDeinitialize(function() openspace.removeSceneGraphNode(object) end) - + asset.export(object) diff --git a/data/assets/scene/solarsystem/sun/EUV_layer.asset b/data/assets/scene/solarsystem/sun/EUV_layer.asset index 88f171310a..6ec99ebad3 100644 --- a/data/assets/scene/solarsystem/sun/EUV_layer.asset +++ b/data/assets/scene/solarsystem/sun/EUV_layer.asset @@ -31,7 +31,7 @@ local EUVLayer = { } local toggle_EUV_layer = { - Identifier = "euv_layer.toggle_EUV", + Identifier = "os.solarsystem.sun.toggleeuv", Name = "Toggle EUV Layer", Command = propertyHelper.invert("Scene.EUV-Layer-bastille-day-2000.Renderable.Enabled"), Documentation = "Toggle EUV layer of sun", @@ -54,7 +54,7 @@ asset.export(EUVLayer) asset.meta = { Name = "Predictive Science Inc. EUV texture sequence Bastille Days", - Version = "1.1", + Version = "1.2", Description = [[Texture sequence of an extreme ultraviolet (EUV) simulation during, the CME]], Author = "CCMC, OpenSpace team", diff --git a/data/assets/scene/solarsystem/sun/glare.asset b/data/assets/scene/solarsystem/sun/glare.asset index 1185d5d456..6f497ca306 100644 --- a/data/assets/scene/solarsystem/sun/glare.asset +++ b/data/assets/scene/solarsystem/sun/glare.asset @@ -32,11 +32,11 @@ local SunGlare = { asset.onInitialize(function() openspace.addSceneGraphNode(SunGlare) end) - + asset.onDeinitialize(function() openspace.removeSceneGraphNode(SunGlare) end) - + asset.export(SunGlare) diff --git a/data/assets/scene/solarsystem/sun/habitablezone.asset b/data/assets/scene/solarsystem/sun/habitablezone.asset index 2cf9747f1f..b6852e07d7 100644 --- a/data/assets/scene/solarsystem/sun/habitablezone.asset +++ b/data/assets/scene/solarsystem/sun/habitablezone.asset @@ -23,11 +23,11 @@ local HabitableZone = { asset.onInitialize(function() openspace.addSceneGraphNode(HabitableZone) end) - + asset.onDeinitialize(function() openspace.removeSceneGraphNode(HabitableZone) end) - + asset.export(HabitableZone) diff --git a/data/assets/scene/solarsystem/sun/marker.asset b/data/assets/scene/solarsystem/sun/marker.asset index d2f0ff3a3a..b293d2f82c 100644 --- a/data/assets/scene/solarsystem/sun/marker.asset +++ b/data/assets/scene/solarsystem/sun/marker.asset @@ -31,11 +31,11 @@ local SunMarker = { asset.onInitialize(function() openspace.addSceneGraphNode(SunMarker) end) - + asset.onDeinitialize(function() openspace.removeSceneGraphNode(SunMarker) end) - + asset.export(SunMarker) diff --git a/data/assets/scene/solarsystem/sun/transforms.asset b/data/assets/scene/solarsystem/sun/transforms.asset index cd9f61713c..aaa9949ef2 100644 --- a/data/assets/scene/solarsystem/sun/transforms.asset +++ b/data/assets/scene/solarsystem/sun/transforms.asset @@ -90,14 +90,14 @@ asset.onInitialize(function() 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) diff --git a/data/assets/spice/base.asset b/data/assets/spice/base.asset index 16314c0c6d..87fb784bab 100644 --- a/data/assets/spice/base.asset +++ b/data/assets/spice/base.asset @@ -17,10 +17,10 @@ asset.onInitialize(function() openspace.spice.loadKernel(kernel) end end) - + asset.onDeinitialize(function() for i = #kernels, 1, -1 do - openspace.spice.unloadKernel(kernels[i]) + openspace.spice.unloadKernel(kernels[i]) end end) diff --git a/data/assets/util/asset_helper.asset b/data/assets/util/asset_helper.asset index 20ada1e52a..07b229d7e1 100644 --- a/data/assets/util/asset_helper.asset +++ b/data/assets/util/asset_helper.asset @@ -16,7 +16,7 @@ local registerSpiceKernels = function (spiceAsset, kernels) spiceAsset.onDeinitialize(function () for i = #kernels, 1, -1 do local kernel = kernels[i] - openspace.spice.unloadKernel(kernel) + openspace.spice.unloadKernel(kernel) end end) end @@ -170,7 +170,7 @@ local createModelPart = function (parent, sunLightSourceNode, models, geometry, GeometryFile = models .. "/" .. geometry .. ".obj", LightSources = lightSources, PerformShading = performShading, - DisableFaceCulling = true + DisableFaceCulling = true }, GUI = { Hidden = true diff --git a/data/assets/util/default_actions.asset b/data/assets/util/default_actions.asset index f4b34c1683..ab7beaad76 100644 --- a/data/assets/util/default_actions.asset +++ b/data/assets/util/default_actions.asset @@ -2,3 +2,5 @@ asset.require("actions/trails/toggle_all_trails"); asset.require("actions/trails/toggle_trails_planets_moons"); asset.require("actions/planets/planet_lighting"); asset.require("actions/system/undo_event_fades"); +asset.require("actions/trails/toggle_all_minor_moon_trails"); +asset.require("actions/trails/on_off_all_minor_moons"); \ No newline at end of file diff --git a/data/assets/util/default_keybindings.asset b/data/assets/util/default_keybindings.asset index 6fd051350e..4e7026033a 100644 --- a/data/assets/util/default_keybindings.asset +++ b/data/assets/util/default_keybindings.asset @@ -83,7 +83,7 @@ local toggle_roll_friction = { Documentation = "Toggles the roll friction of the camera. If it is disabled, the camera rolls around its own axis indefinitely", GuiPath = "/Navigation", IsLocal = false, - + Key = "Ctrl+f" } @@ -100,7 +100,7 @@ local fade_to_black = { Documentation = "Toggles the fade to black within 3 seconds or shows the rendering after 3 seconds", GuiPath = "/Rendering", IsLocal = false, - + Key = "w" } @@ -111,7 +111,7 @@ local toggle_main_gui = { Documentation = "Toggles the main GUI", GuiPath = "/System/GUI", IsLocal = true, - + Key = "Tab" } @@ -127,7 +127,7 @@ openspace.setPropertyValueSingle("RenderEngine.ShowCamera", not isEnabled)]], Documentation = "Toggles the dashboard and overlays", GuiPath = "/System/GUI", IsLocal = true, - + Key = "Shift+Tab" } @@ -138,7 +138,7 @@ local toggle_master_rendering = { Documentation = "Toggles the rendering on master", GuiPath = "/System/Rendering", IsLocal = true, - + Key = "Alt+R" } @@ -149,7 +149,7 @@ local next_delta_step_interpolate = { Documentation = "Smoothly interpolates the simulation speed to the next delta time step, if one exists", GuiPath = "/Time/Simulation Speed", IsLocal = true, - + Key = "Right" } @@ -160,7 +160,7 @@ local next_delta_step_immediate = { Documentation = "Immediately set the simulation speed to the next delta time step, if one exists", GuiPath = "/Time/Simulation Speed", IsLocal = true, - + Key = "Shift+Right" } @@ -171,7 +171,7 @@ local previous_delta_step_interpolate = { Documentation = "Smoothly interpolates the simulation speed to the previous delta time step, if one exists", GuiPath = "/Time/Simulation Speed", IsLocal = true, - + Key = "Left" } @@ -182,7 +182,7 @@ local previous_delta_step_immediate = { Documentation = "Immediately set the simulation speed to the previous delta time step, if one exists", GuiPath = "/Time/Simulation Speed", IsLocal = true, - + Key = "Shift+Left" } diff --git a/data/assets/util/generate_bookmarks.asset b/data/assets/util/generate_bookmarks.asset index 989a1720ef..c1e3940f96 100644 --- a/data/assets/util/generate_bookmarks.asset +++ b/data/assets/util/generate_bookmarks.asset @@ -20,7 +20,7 @@ local getBookmarks = function (guiPath, bookmarkfile) Scale = { Type = "StaticScale", Scale = tonumber(scale); - }, + }, Rotation = { Type = "StaticRotation", Rotation = { @@ -65,7 +65,7 @@ local getBookmarks = function (guiPath, bookmarkfile) } if (altitude == nil) then sgn.Transform.Translation.UseHeightMap = true; - else + else sgn.Transform.Translation.UseHeightMap = false; sgn.Transform.Translation.Altitude = tonumber(altitude); end diff --git a/data/assets/util/joysticks/ps4.asset b/data/assets/util/joysticks/ps4.asset index 58441ee338..770f138fcd 100644 --- a/data/assets/util/joysticks/ps4.asset +++ b/data/assets/util/joysticks/ps4.asset @@ -182,7 +182,7 @@ asset.onInitialize(function() name, controller.Square, [[ - -- <-- Copy paste your custum script here + -- <-- Copy paste your custom script here ]], "" -- <-- Description of your custom script here (optional) ) @@ -192,7 +192,7 @@ asset.onInitialize(function() name, controller.Share, [[ - -- <-- Copy paste your custum script here + -- <-- Copy paste your custom script here ]], "" -- <-- Description of your custom script here (optional) ) @@ -202,7 +202,7 @@ asset.onInitialize(function() name, controller.LeftStickButton, [[ - -- <-- Copy paste your custum script here + -- <-- Copy paste your custom script here ]], "" -- <-- Description of your custom script here (optional) ) @@ -212,7 +212,7 @@ asset.onInitialize(function() name, controller.PS, [[ - -- <-- Copy paste your custum script here + -- <-- Copy paste your custom script here ]], "" -- <-- Description of your custom script here (optional) ) diff --git a/data/assets/util/joysticks/xbox-wireless.asset b/data/assets/util/joysticks/xbox-wireless.asset index c6d3a087df..0c98947505 100644 --- a/data/assets/util/joysticks/xbox-wireless.asset +++ b/data/assets/util/joysticks/xbox-wireless.asset @@ -180,7 +180,7 @@ asset.onInitialize(function() name, controller.X, [[ - -- <-- Copy paste your custum script here + -- <-- Copy paste your custom script here ]], "" -- <-- Description of your custom script here (optional) ) @@ -190,7 +190,7 @@ asset.onInitialize(function() name, controller.LeftStickButton, [[ - -- <-- Copy paste your custum script here + -- <-- Copy paste your custom script here ]], "" -- <-- Description of your custom script here (optional) ) diff --git a/data/assets/util/joysticks/xbox.asset b/data/assets/util/joysticks/xbox.asset index e1e93600fb..03685efbfe 100644 --- a/data/assets/util/joysticks/xbox.asset +++ b/data/assets/util/joysticks/xbox.asset @@ -180,7 +180,7 @@ asset.onInitialize(function() name, controller.X, [[ - -- <-- Copy paste your custum script here + -- <-- Copy paste your custom script here ]], "" -- <-- Description of your custom script here (optional) ) @@ -190,7 +190,7 @@ asset.onInitialize(function() name, controller.LeftStickButton, [[ - -- <-- Copy paste your custum script here + -- <-- Copy paste your custom script here ]], "" -- <-- Description of your custom script here (optional) ) diff --git a/data/assets/util/script_scheduler_helper.asset b/data/assets/util/script_scheduler_helper.asset index 129732ab43..e25aebe31d 100644 --- a/data/assets/util/script_scheduler_helper.asset +++ b/data/assets/util/script_scheduler_helper.asset @@ -1,6 +1,6 @@ local renderableHelper = asset.require("./renderable_helper") --- Function that schedules scripts setting the enabled property +-- Function that schedules scripts setting the enabled property -- of to at time