Wednesday, 15 January 2020: 3:00 PM
157AB (Boston Convention and Exhibition Center)
For as long as there has been meteorological satellites generating continuous streams of data, there have been software packages to convert those data to useful products, run by the various weather services in an operational context. Such software packages are usually complex, have many ancillary inputs, and run on "Big Iron". For nearly as long, people have wanted to run such packages on a personal computer, in situations where access to the primary or ancillary input data might vary. A common use case is Direct Broadcast (DB), wherein users with a suitable satellite dish can ingest the primary satellite data in real time for as long as the satellite is above the horizon at the users' location.
Direct broadcast software packages generally consist of a compiled binary containing the "science" code for generating products of interest from the primary satellite data, and some means of identifying, ingesting and staging the required primary and ancillary inputs. The latter part generally requires the most work, as the methods of data input used in the operational system, where memory and storage are plentiful, must be replicated in a manner suitable for use on a personal computer with much fewer resources.
The general solution to the above problem is to pair the compiled science code with a higher level scripting language. In our case, the Community Satellite Processing Package leverages the rich variety of scientific and general computing modules available for the Python language, which allows us to script almost any task in a way that is readable and maintainable, while avoiding the mental context switching that comes with using multiple languages for various tasks. This presentation will describe the various Python technologies which are useful in constructing user-friendly DB packages, and approaches to packaging which allow us to keep the installation of our packages to a simple "untar, set env and run".
Direct broadcast software packages generally consist of a compiled binary containing the "science" code for generating products of interest from the primary satellite data, and some means of identifying, ingesting and staging the required primary and ancillary inputs. The latter part generally requires the most work, as the methods of data input used in the operational system, where memory and storage are plentiful, must be replicated in a manner suitable for use on a personal computer with much fewer resources.
The general solution to the above problem is to pair the compiled science code with a higher level scripting language. In our case, the Community Satellite Processing Package leverages the rich variety of scientific and general computing modules available for the Python language, which allows us to script almost any task in a way that is readable and maintainable, while avoiding the mental context switching that comes with using multiple languages for various tasks. This presentation will describe the various Python technologies which are useful in constructing user-friendly DB packages, and approaches to packaging which allow us to keep the installation of our packages to a simple "untar, set env and run".
- Indicates paper has been withdrawn from meeting
- Indicates an Award Winner