A031-0019
Why Robust Software Engineering Matters for Atmospheric Composition Retrievals

Tuesday, 8 December 2020
Poster
James McDuffie1, Mike Smyth1, Sebastian Val1, Vijay Natraj2, Kevin W Bowman2, Mark Richardson1, Jonathan Hobbs3, Sébastien Roche4 and Joseph Mendonca5, (1)NASA Jet Propulsion Laboratory, Pasadena, CA, United States, (2)Jet Propulsion Laboratory, California Institute of Technology, Pasadena, CA, United States, (3)Jet Propulsion Laboratory, Pasadena, CA, United States, (4)University of Toronto, Department of Physics, Toronto, ON, Canada, (5)University of Toronto, Toronto, ON, Canada
Abstract:
The retrieval of atmospheric composition from remote sensing measurements is a complex process that requires the integration of cross cutting domain knowledge into a coherent software package. The complexity is increased many times over when the software has to handle multiple types of instruments, operating in different spectral regions, each with their own peculiarities. This is further compounded when trying to combine information from multiple instruments for joint retrievals. Yet, there is enough overlap between the radiative transfer and retrieval techniques used by various missions that it is wasteful to continually reinvent the wheel every time.

The Reusable Framework for Atmospheric Composition (ReFRACtor) is an extensible multi-instrument atmospheric composition retrieval framework that supports and facilitates data fusion of radiance measurements from different instruments in the ultraviolet, visible, near- and thermal-infrared. This framework is being developed to provide a community available software package that uses robust software engineering practices with well tested, community accepted algorithms and techniques. ReFRACtor is geared not only for the creation of end to end production systems, but also towards independent investigative scientists who need a software package to help answer atmospheric composition questions.

We will explain how the use of succint interfaces between components provides advantages for future proofing, flexibility and reusability. Examples will be given for translating the logical separation of mathematical and scientific concepts into software components. We will describe how having a Python interface to fast compiled algorithms is helpful for rapid prototyping of new systems. The experience of early adopter scientists will also be discussed to give a perspective from outside the software development team.