OpenSourcePrinciplesUtilizedbytheCERESEdition5Level-3Framework Thomas.N.Hillyer@nasa.gov, ADNET Joshua.C.Wilkins@nasa.gov, ADNET 0. Abstract The Clouds and the Earth’s Radiant Energy System (CERES) Science Team integrates and fuses observations from six CERES instruments aboard the Terra, Aqua, S-NPP, and NOAA-20 missions with data from twenty-five geostationary imagers, in creating a nearly 25-year, ongoing record of the Earth’s radiation budget. In preparation for the next version of CERES data products, the team has been exploring software development methods leveraging open-source principles and software to streamline data product configuration and algorithm implementation. This effort will provide robust software for production while maintaining greater flexibility for the algorithm developers to explore new science. Developers on the CERES Level 3 products have created a framework allowing greater modularization and flexibility to design and configure CERES Level 3 products while reducing development time. The framework leverages open data formats to configure data variables and attributes within the product, declare tolerances for input validation, select resolution and binning schemes, and allow algorithm selection at runtime without requiring recompilation of the product generator. The framework incorporates means to perform unit and integration testing allowing more rapid feedback to the science team. The framework has been used for one current CERES data product and has demonstrated promise for upcoming products in development. 1. Requirements The CERES Level 3 working group lead’s goals for Edition 5 framework are the following improvements over Edition 4: • Modular and Flexible – Single Purpose Algorithms and Functions – Minimal Disruption When Swapping Algorithms • Configurable – Minimize Need for Constant Source Code Changes – Favor Descriptive and Structured Configuration Files Where Possible – Enable/Disable Scientific Parameters as Needed – Easily Change Processing Modes ∗Binning - how footprints are assembled ∗Gridding · 1◦, 1/2◦, etc. · equal angle or equal area gridding • Rapid Development and Analysis – Adjustable Granularity ∗Daily ∗Monthly – Quick Tests or Long-Term Analysis 2. Programming Languages Part of the updated Edition 5 framework in- volves extensive refactoring of the existing Edition 4 Fortran 90 codebase to take greater advantage of object oriented facilities in modern languages. • C++-17 TISA Gridding • Fortran 2018 TISA Averaging 3. Improved Unit Testing Increased modularization allows easier incorporation of unit testing for Level 3 software. CERES Edition 5 framework is using the open source doctest frame- work allowing tests to be written into production code. https://github.com/doctest/doctest 4. JSON-based Product Configuration JSON-based configuration files are used to define the struc- ture of data products, valid ranges for input and output prod- ucts, and various attributes to be included with the final prod- uct. Many libraries exist allowing JSON-based configuration parameters to be shared across both product generators and programming languages. 5. JSON Properties Used in Code The framework makes use of the following open source C++ JSON library hosted on Github: https://github.com/nlohmann/json 6. Proof of Concept (CRS1deg-Hour) The CERES Edition 4 CRS1deg-Hour data product was se- lected to be a proof of concept for exercising the Edition 5 Level 3 framework. The CRS1deg-Hour product provides hourly CERES Clouds and Radiative Swath (CRS) longwave and shortwave computed vertical flux profiles and cloud prop- erties spatially gridded into 1◦-regions. The CRS1deg-Hour PGE was recently delivered to produc- tion and uses the Edition 5 framework (using Edition 4 CRS data) and creates a user-friendly, gridded NetCDF-4 data product. Using the framework, it was easy for the team to use the JSON configuration files to define key features and settings to use at runtime, declare toleranc