SkyWinder: a PyHC package to investigate dynamics, clouds, and turbulence in the middle and upper atmosphere

Skywinder is Python package created for the NASA HelioPython effort at heliopython.org in support of NASA Heliophysics science goals including:
1. Dynamics and coupling between the mesosphere and thermosphere on small (<10m) to suborbital scales
2. Physical processes of the sun-earth system such as polar mesospheric clouds, turbulence and neutral atmosphere waves and
instabilities.

We are creating a python software package broadly applicable to suborbital mobile aeronomy experiments such as balloon- borne payloads, airplanes, sounding rockets, and suborbital reusable launch vehicles (sRLVs) funded by NASA Heliophysics H-FORT/Low Cost Access to Space (LCAS). We will standardize, package, document, and expand on the successful NASA PMC-Turbo balloon mission software which used python for flight control, telemetry, analysis of imager and lidar data, and data visualization. The package developed in this effort will have broad uses for mid- and upper-atmosphere science and instrumentation including mesospheric airglow imagers, optical cameras, and other lidars, especially those hosted on moving platforms. The current PyHC codebase includes more than 50 projects, but there is a need for a package dealing with mobile, suborbital missions and dynamics, coupling, and clouds in the mesosphere and lower thermosphere.

PMC-Turbo was a balloon-borne experiment designed to observe gravity waves, instabilities, and turbulence using Polar Mesospheric Clouds (PMCs) as tracers. PMCs form a thin layer at ~83 km altitude above the summer polar regions that act as sensitive tracers for small to medium scale dynamics in a very active region of the atmosphere. The PMC-Turbo balloon-borne platform was built to record these turbulent events using seven high-resolution imagers to measure PMC brightness variations and a Rayleigh lidar which measured the PMC altitudes. PMC-Turbo flew at 38 km altitude for nearly 6 days from Esrange Space Center in Sweden to northern Canada. In flight, our modular Python flight software ran on a distributed array of 7 CPU’s to receive and execute commands sent from the ground and downlink compressed images and housekeeping data over three independent telecom channels in a resilient manner.

Many mobile platforms (balloon, aircraft, sRLV) require star cameras to keep track of their pointing at float. This technology has not been standardized, but the software written for PMC-Turbo provides a robust, tested, and resilient base for other groups needing pointing and flight control. Most of these platforms communicate via TDRSS and/or Iridium and the PMC-Turbo telemetry software already gracefully handles communication over a variety of channels.
After the successful flight, the PMC-Turbo team developed python analysis software to flat-field the captured images, find the pointing of the images using the star field, and combining and projecting the images to accurate spatial scales on the PMC layer. The team also developed data visualization tools to use the combined images and lidar profiles to observe dynamics at a variety of resolutions and time scales.

The code is hosted publicly on github (SkyWinder, SkyWinder Analysis) and PyPi (SkyWinder, SkyWinder-Analysis) - which means a user can just pip install SkyWinder to get the code and dependencies.

The project status of SkyWinder is shown on the PyHC website at https://heliopython.org/projects/. The Python in Heliophysics Comminity (PyHC) is a community knowledge base for performing heliophysics research in Python, aiming to provide a variety of tutorials, resources, a list of useful packages, general discussion, and advice.