<html><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; line-break: after-white-space;" class=""><div class=""><br class=""></div><div class=""><b class=""><br class=""></b></div><div class=""><span id="docs-internal-guid-7ab84a0a-7fff-0219-82fa-850fa38bc031" class=""><div style="line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;" class=""><span style="font-size: 12pt; font-family: Calibri, sans-serif; font-variant-ligatures: normal; font-variant-east-asian: normal; font-variant-position: normal; vertical-align: baseline; white-space: pre-wrap;" class="">Dear NCL Community,</span></div><br class=""><div style="line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;" class=""><span style="font-size: 12pt; font-family: Calibri, sans-serif; font-variant-ligatures: normal; font-variant-east-asian: normal; font-variant-position: normal; vertical-align: baseline; white-space: pre-wrap;" class="">I hope this open letter finds you well during these unprecedented and challenging times. I apologize for the length of this note, but it has been a while since I’ve provided an update to the community and there are many exciting developments to report on. </span></div><p dir="ltr" style="line-height:1.38;margin-top:0pt;margin-bottom:0pt;" class=""><span style="font-size: 12pt; font-family: Calibri, sans-serif; font-variant-ligatures: normal; font-variant-east-asian: normal; font-variant-position: normal; vertical-align: baseline; white-space: pre-wrap;" class=""> </span></p><div style="line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;" class=""><span style="font-size: 12pt; font-family: Calibri, sans-serif; font-weight: 700; font-variant-ligatures: normal; font-variant-east-asian: normal; font-variant-position: normal; vertical-align: baseline; white-space: pre-wrap;" class="">NCAR’s Commitment to NCL</span></div><div style="line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;" class=""><span style="font-size: 12pt; font-family: Calibri, sans-serif; font-variant-ligatures: normal; font-variant-east-asian: normal; font-variant-position: normal; vertical-align: baseline; white-space: pre-wrap;" class="">In January of 2019 NCAR announced plans to transition away from the NCL language and focus efforts on providing geosciences analysis tools that were based on the Python Scientific Ecosystem. Furthermore, we announced that NCL would be put into “maintenance mode”, and due to limited staffing resources, would no longer be actively developed by NCAR.</span></div><br class=""><div style="line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;" class=""><span style="font-size: 12pt; font-family: Calibri, sans-serif; font-variant-ligatures: normal; font-variant-east-asian: normal; font-variant-position: normal; vertical-align: baseline; white-space: pre-wrap;" class="">I wanted to take this opportunity to elaborate further on what “maintenance mode” means for the community, and hopefully relieve anxiety that some may be feeling. </span><span style="font-size: 12pt; font-family: Calibri, sans-serif; font-weight: 700; font-variant-ligatures: normal; font-variant-east-asian: normal; font-variant-position: normal; vertical-align: baseline; white-space: pre-wrap;" class="">Maintenance mode means that NCAR will not add new features to the NCL language or function library, nor will we fix sub-critical software defects. However, NCAR will - for as long as we are reasonably able and there is a sufficient demand - put out periodic bug-fix releases and ensure NCL continues to build on currently supported platforms</span><span style="font-size: 12pt; font-family: Calibri, sans-serif; font-variant-ligatures: normal; font-variant-east-asian: normal; font-variant-position: normal; vertical-align: baseline; white-space: pre-wrap;" class="">. In addition, we will do our best to timely address installation questions that are related to the Conda package management system. Furthermore, as part of our embracement of Open Development practices, we will facilitate community contributions of all types (e.g. bug fixes, new functions, etc.). Stay tuned for more information on Open Development.</span></div><br class=""><div style="line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;" class=""><span style="font-size: 12pt; font-family: Calibri, sans-serif; font-variant-ligatures: normal; font-variant-east-asian: normal; font-variant-position: normal; vertical-align: baseline; white-space: pre-wrap;" class="">I fully recognize that many in the community have substantial investments in NCL scripts and I do not expect, nor would I advise, translating thousands of lines of NCL code into Python. That said, I would caution against making substantial new investments in workflows based on NCL. To repeat, it is our intent to ensure that existing NCL scripts will continue to run for as long as reasonably possible, but NCAR’s priority for the future will be on modern Python tools.</span></div><br class=""><div style="line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;" class=""><span style="font-size: 12pt; font-family: Calibri, sans-serif; font-weight: 700; font-variant-ligatures: normal; font-variant-east-asian: normal; font-variant-position: normal; vertical-align: baseline; white-space: pre-wrap;" class="">The GeoCAT Team</span></div><div style="line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;" class=""><span style="font-size: 12pt; font-family: Calibri, sans-serif; font-variant-ligatures: normal; font-variant-east-asian: normal; font-variant-position: normal; vertical-align: baseline; white-space: pre-wrap;" class="">Development of our new Python based tools, and support for NCL, is the responsibility of NCAR’s GeoCAT group. This is a brand new team of highly motivated, and talented software engineers, who are excited by the opportunity to collaborate with and serve the geoscience communities. All four of the team members are very new to the organization, and bring with them diverse and valuable skill sets, and new ways of thinking. They are already having an impact and I am excited for their potential. The team is managed under the excellent leadership of Orhan Eroglu, who has an extensive background in both geoscience and software engineering. I feel incredibly fortunate that we have been able to assemble such an outstanding team in the midst of the pandemic! Please give them your support and patience as they continue to come up to speed.</span></div><br class=""><div style="line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;" class=""><span style="font-size: 12pt; font-family: Calibri, sans-serif; font-weight: 700; font-variant-ligatures: normal; font-variant-east-asian: normal; font-variant-position: normal; vertical-align: baseline; white-space: pre-wrap;" class="">Project Pythia</span></div><div style="line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;" class=""><span style="font-size: 12pt; font-family: Calibri, sans-serif; font-variant-ligatures: normal; font-variant-east-asian: normal; font-variant-position: normal; vertical-align: baseline; white-space: pre-wrap;" class="">I am happy to announce that the GeoCAT team was successful in an NSF EarthCube proposal, “Project Pythia”. This three-year effort will provide web-accessible training resources to help geoscientists at all stages of their careers learn how to use Python for geosciences workflows, and learn how to migrate workflows to cloud computing resources if needed. More on the nascent Project Pythia effort can be found here: <a href="https://ncar.github.io/ProjectPythia/" class="">https://ncar.github.io/ProjectPythia/</a></span></div><br class=""><div style="line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;" class=""><span style="font-size: 12pt; font-family: Calibri, sans-serif; font-weight: 700; font-variant-ligatures: normal; font-variant-east-asian: normal; font-variant-position: normal; vertical-align: baseline; white-space: pre-wrap;" class="">PyNGL and the GeoCAT Examples Gallery</span></div><div style="line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;" class=""><span style="font-size: 12pt; font-family: Calibri, sans-serif; font-variant-ligatures: normal; font-variant-east-asian: normal; font-variant-position: normal; vertical-align: baseline; white-space: pre-wrap;" class="">Earlier this year the GeoCAT team conducted an investigation of Python's scientific visualization ecosystem in an effort to better understand the relative strengths and weaknesses between more modern and widely used Python packages (e.g. Matplotlib and Cartopy) and PyNGL. As part of this exploration nearly 100 NCL example plots from the NCL web site were translated into Python. These new plots now form the GeoCAT plotting gallery: </span><a href="https://geocat-examples.readthedocs.io/en/latest/" style="text-decoration:none;" class=""><span style="font-size: 12pt; font-family: Calibri, sans-serif; color: rgb(17, 85, 204); font-variant-ligatures: normal; font-variant-east-asian: normal; font-variant-position: normal; text-decoration: underline; text-decoration-skip: none; vertical-align: baseline; white-space: pre-wrap;" class="">https://geocat-examples.readthedocs.io/en/latest/</span></a><span style="font-size: 12pt; font-family: Calibri, sans-serif; font-variant-ligatures: normal; font-variant-east-asian: normal; font-variant-position: normal; vertical-align: baseline; white-space: pre-wrap;" class="">.</span></div><br class=""><div style="line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;" class=""><span style="font-size: 12pt; font-family: Calibri, sans-serif; font-variant-ligatures: normal; font-variant-east-asian: normal; font-variant-position: normal; vertical-align: baseline; white-space: pre-wrap;" class="">The aim of this effort was not only to understand what, if any, limitations might be posed by MPL/Cartopy, but to also provide the NCL community with well-documented examples that could be used to convert their own NCL plotting scripts into Python. Thus, of paramount importance to the effort was to try to make the Python versions of the plots indistinguishable from their NCL counterparts. The NCL, and broader geosciences communities were invited to both suggest plots to translate and provide feedback on the results. Thank you for the efforts of all those who contributed!</span></div><p dir="ltr" style="line-height:1.38;margin-top:0pt;margin-bottom:0pt;" class=""><span style="font-size: 12pt; font-family: Calibri, sans-serif; font-variant-ligatures: normal; font-variant-east-asian: normal; font-variant-position: normal; vertical-align: baseline; white-space: pre-wrap;" class=""> </span></p><div style="line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;" class=""><span style="font-size: 12pt; font-family: Calibri, sans-serif; font-variant-ligatures: normal; font-variant-east-asian: normal; font-variant-position: normal; vertical-align: baseline; white-space: pre-wrap;" class="">An important finding of this investigation was that nearly all of the NCL example plots can readily be reproduced with MPL/Cartopy without any noticeable loss of information or aesthetic quality. In some instances, helper functions were developed to simplify and speed the process of producing an NCL-like plot. These helper functions are publicly available as part of the growing GeoCAT-viz toolkit: </span><span style="font-size: 12pt; font-family: Calibri, sans-serif; color: rgb(17, 85, 204); font-variant-ligatures: normal; font-variant-east-asian: normal; font-variant-position: normal; text-decoration: underline; text-decoration-skip: none; vertical-align: baseline; white-space: pre-wrap;" class=""><a href="https://github.com/NCAR/geocat-viz" class="">https://github.com/NCAR/geocat-viz</a></span><span style="font-size: 12pt; font-family: Calibri, sans-serif; font-variant-ligatures: normal; font-variant-east-asian: normal; font-variant-position: normal; vertical-align: baseline; white-space: pre-wrap;" class="">.</span></div><p dir="ltr" style="line-height:1.38;margin-top:0pt;margin-bottom:0pt;" class=""><span style="font-size: 12pt; font-family: Calibri, sans-serif; font-variant-ligatures: normal; font-variant-east-asian: normal; font-variant-position: normal; vertical-align: baseline; white-space: pre-wrap;" class=""> </span></p><div style="line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;" class=""><span style="font-size: 12pt; font-family: Calibri, sans-serif; font-variant-ligatures: normal; font-variant-east-asian: normal; font-variant-position: normal; vertical-align: baseline; white-space: pre-wrap;" class="">MPL and Cartopy are large efforts with vibrant development communities and sizable user bases. They are designed with modern software best programming practices, and adhere to the "Pythonic" programming philosophy. PyNGL, on the other hand, has decades-old Fortran code as its underpinnings, is not compatible with other Python ecosystem packages, has little potential for active development outside of NCAR, and has a relatively small (and shrinking) user base. Thus, regretfully, a decision has been made to put PyNGL in maintenance mode and focus future efforts in the area of plotting on leveraging more widely-used and actively developed Python packages such as MPL. With this decision, the list of toolkits that have gone into maintenance mode now includes NCL, PyNIO, and PyNGL.</span></div><p dir="ltr" style="line-height:1.38;margin-top:0pt;margin-bottom:0pt;" class=""><span style="font-size: 12pt; font-family: Calibri, sans-serif; font-variant-ligatures: normal; font-variant-east-asian: normal; font-variant-position: normal; vertical-align: baseline; white-space: pre-wrap;" class=""> </span></p><div style="line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;" class=""><span style="font-size: 12pt; font-family: Calibri, sans-serif; font-weight: 700; font-variant-ligatures: normal; font-variant-east-asian: normal; font-variant-position: normal; vertical-align: baseline; white-space: pre-wrap;" class="">Summary of current plans and status</span></div><br class=""><ul style="margin-top:0;margin-bottom:0;" class=""><li dir="ltr" style="list-style-type: disc; font-size: 12pt; font-family: Calibri, sans-serif; font-variant-ligatures: normal; font-variant-east-asian: normal; font-variant-position: normal; vertical-align: baseline; white-space: pre;" class=""><div style="line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;" class=""><span style="font-size: 12pt; font-weight: 700; font-variant-ligatures: normal; font-variant-east-asian: normal; font-variant-position: normal; vertical-align: baseline; white-space: pre-wrap;" class="">Maintenance mode</span><span style="font-size: 12pt; font-variant-ligatures: normal; font-variant-east-asian: normal; font-variant-position: normal; vertical-align: baseline; white-space: pre-wrap;" class="">: Packages in maintenance mode will no longer be actively developed by NCAR. We will, however, continue to distribute bug-fix releases for as long as reasonably possible to help preserve the community's substantial existing investments in NCL, and we will facilitate community contributions. Furthermore, we will try to respond to Conda-related </span><span style="font-size: 11pt; font-family: Arial; color: rgb(34, 34, 34); background-color: rgb(255, 255, 255); font-variant-ligatures: normal; font-variant-east-asian: normal; font-variant-position: normal; vertical-align: baseline; white-space: pre-wrap;" class="">installation questions in a reasonable time.</span></div></li><li dir="ltr" style="list-style-type: disc; font-size: 12pt; font-family: Calibri, sans-serif; font-variant-ligatures: normal; font-variant-east-asian: normal; font-variant-position: normal; vertical-align: baseline; white-space: pre;" class=""><div style="line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;" class=""><span style="font-size: 12pt; font-weight: 700; font-variant-ligatures: normal; font-variant-east-asian: normal; font-variant-position: normal; vertical-align: baseline; white-space: pre-wrap;" class="">WRF-Python</span><span style="font-size: 12pt; font-variant-ligatures: normal; font-variant-east-asian: normal; font-variant-position: normal; vertical-align: baseline; white-space: pre-wrap;" class="">: The GeoCAT team will continue to actively develop and support WRF-python. Our future plans for this package call for greater compatibility with Xarray. The GeoCAT team has been investigating this compatibility, and will address it in the future when schedules permit.</span></div></li><li dir="ltr" style="list-style-type: disc; font-size: 12pt; font-family: Calibri, sans-serif; font-variant-ligatures: normal; font-variant-east-asian: normal; font-variant-position: normal; vertical-align: baseline; white-space: pre;" class=""><div style="line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;" class=""><span style="font-size: 12pt; font-weight: 700; font-variant-ligatures: normal; font-variant-east-asian: normal; font-variant-position: normal; vertical-align: baseline; white-space: pre-wrap;" class="">NCL</span><span style="font-size: 12pt; font-variant-ligatures: normal; font-variant-east-asian: normal; font-variant-position: normal; vertical-align: baseline; white-space: pre-wrap;" class="">: NCL is in maintenance mode. The GeoCAT team is actively implementing migration of NCL functionality into Python with the development of GeoCAT toolkits (e.g. GeoCAT-comp and GeoCAT-examples, for computational and plotting functionality), and help of other commonly used Python packages. </span></div></li><li dir="ltr" style="list-style-type: disc; font-size: 12pt; font-family: Calibri, sans-serif; font-variant-ligatures: normal; font-variant-east-asian: normal; font-variant-position: normal; vertical-align: baseline; white-space: pre;" class=""><div style="line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;" class=""><span style="font-size: 12pt; font-weight: 700; font-variant-ligatures: normal; font-variant-east-asian: normal; font-variant-position: normal; vertical-align: baseline; white-space: pre-wrap;" class="">PyNIO and PyNGL:</span><span style="font-size: 12pt; font-variant-ligatures: normal; font-variant-east-asian: normal; font-variant-position: normal; vertical-align: baseline; white-space: pre-wrap;" class=""> These packages are also in maintenance mode. The GeoCAT team plans to replace their functionality with existing, well-established Python ecosystem packages (e.g. Xarray, MPL, Cartopy, etc.), and will ease community migration to these packages with the development of suitable documentation and examples. </span></div></li><li dir="ltr" style="list-style-type: disc; font-size: 12pt; font-family: Calibri, sans-serif; font-variant-ligatures: normal; font-variant-east-asian: normal; font-variant-position: normal; vertical-align: baseline; white-space: pre;" class=""><div style="line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;" class=""><span style="font-size: 12pt; font-weight: 700; font-variant-ligatures: normal; font-variant-east-asian: normal; font-variant-position: normal; vertical-align: baseline; white-space: pre-wrap;" class="">Project Pythia:</span><span style="font-size: 12pt; font-variant-ligatures: normal; font-variant-east-asian: normal; font-variant-position: normal; vertical-align: baseline; white-space: pre-wrap;" class=""> NSF has awarded the GeoCAT team a three-year Earth Cube grant to develop and provision training resources to help educate scientists on the use of the Python Scientific Ecosystem for geoscience workflows. </span></div></li></ul><br class=""><div style="line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;" class=""><span style="font-size: 12pt; font-family: Calibri, sans-serif; font-variant-ligatures: normal; font-variant-east-asian: normal; font-variant-position: normal; vertical-align: baseline; white-space: pre-wrap;" class="">As always we welcome and value your comments, questions, and collaboration ideas.</span></div><div class=""><span style="font-size: 12pt; font-family: Calibri, sans-serif; font-variant-ligatures: normal; font-variant-east-asian: normal; font-variant-position: normal; vertical-align: baseline; white-space: pre-wrap;" class=""><br class=""></span></div></span></div><div class=""><br class="webkit-block-placeholder"></div><div class="">John Clyne<br class="">CISL/NCAR<br class=""><br class=""></div><br class=""></body></html>