# Skyfall: Signal Fusion from a Smartphone Falling from the Stratosphere
## 3 Materials and Methods
### Smartphone  
All modern-day COTS smartphones come loaded with a suite of advanced low SWaP-C sensors. All mobile phones contain a microphone (mic) for voice communication. Starting with flip phones and continuing with smartphones, cameras shortly followed, along with accelerometers, gyroscopes, barometers, and other more esoteric sensor modalities. All operating systems (OSs) have a native application programming interface (API) to access data from internal sensors. An API is a formal definition of inputs and outputs for a given computational system; ideally, it provides a contract and documentation to a developer for how to interact with a given system. For example, the Google Android Platform API [63] describes what fields or methods are available, the data and types of data that can be accepted, and the data and types of data that can be returned. However, many OEMs interpret the Android API as recommendations and deviate from the ideal contract. The Google Android API provides access to all the possible elements in a smartphone. This is too much information for most applications. In contrast, the RedVox API [52] is much lighter and is used to organize and transport selected smartphone data. RedVox APIs are tailored for collecting and standardizing a range of heterogeneous sensor data on diverse OSs. Google's Protocol Buffers [64] provide a common serialization \begin{table}
\begin{tabular}{c c c} \hline \hline
**Description** & **Field** & **Units** \\ \hline Pres & Atmospheric pressure & hPa = mbar \\ \hline Lon /Lat & GNSS longitude and latitude & degree decimal \\ \hline Alt & GNSS altitude above ellipsoid & meters \\ \hline Date & GNSS date & YYYYMMDD \\ \hline Time & GNSS time & HH:MM:SS \\ \hline Sample Interval & 1.004, Derived from Time & seconds \\ \hline Interval St Dev & 0.061, Derived from Time & seconds \\ \hline \hline \end{tabular}
\end{table} 
Table 2: Bounder Location Sensor. Figure 3: Balloon trajectory for complete event. The Skyfall case study concentrates on the rapid descent from its peak height. format and allow data to be accessed from multiple programming languages and environments. We store both device-specific metadata as well as user-specified sensor data. This includes sensors with stable, (mostly) evenly spaced sampling rates such as audio, sensors with unevenly spaced sampling rates, single channel sensors, and multi-channel sensors. Metadata includes station identification information, state-of-health metrics, and a summary of the station's hardware and configuration. Enhanced metadata includes location, timing, timing correction information, and edge-computed event streams. Data are quantized into individual files called packets. The duration of a packet is determined by the requested number of audio samples stored in the packet for a given sampling rate. Packets are compressed for both transport and storage using the LZ4 compression algorithm. The packets are always stored on the device and are also streamed to the RedVox Cloud Client [65] hosted by Amazon Web Services (AWS) if either cellular or Wi-Fi communications are available. Data packets collected during the Skyfall were transmitted over the cellular network in flight and after landing. Associated with the API is a software developer kit (SDK) [53] which facilitates access to the data fields. The purpose of the SDK is to provide a wide range of tools to acquire, process, and analyze the data. The SDK functions on a variety of configurations of hardware and software, and should produce a consistent result when run across each of the configurations. The components of the SDK critical to Skyfall are the Station and DataWindow objects. A Station object represents a single device. Each Station is capable of holding a variety of data from various sensors (e.g., audio, barometer, location, accelerometer, gyroscope, and magnetometer). A DataWindow object is a grouping of Station objects with a defined start and end datetime and is created by loading and processing the raw data stored in the packets [50].