## Materials and Methods  
### FGI AIRS Hardware  
In designing the FGI AIRS, the following design goals were set:  
* Full irradiance spectrum in 350-1000 nm spectral range with in-flight stability better than \(\pm\)1% and absolute accuracy better than \(\pm\)5%
* Image position with RTK accuracy
* System orientation (roll, pitch, heading) with as high accuracy as feasible for small Inertial Navigation System (INS)
* Synchronization to camera exposures with better than 1 ms accuracy.
* Capability to trigger external cameras
* Real-time processing and output of the data to a serial output, to a cloud service, and to a USB flash drive.  
To meet the design goals, the FGI AIRS (Figure 1) was selected to consist of the components listed in Table 1. Firstly, a miniature spectrometer was included to measure the irradiance spectrum. The spectrometer was attached behind the diffuser optics to provide a near-Lambertian field of view, and the system was calibrated against ASD FieldSpec Pro to output irradiance in absolute units. Secondly, to measure irradiance on varying tilt angles, three RGB+Pan photodiodes were installed on the frame--each tilted 10\({}^{\circ}\) from zenith to opposite directions. Similarly, as with the spectrometer, the photodiodes were mounted behind diffusers and calibrated for irradiance outputs. Thirdly, a GNSS INS was added to measure tilt and position of the system. Fourth, as the INS did not have accurate enough positioning, a single band kinematic GNSS receiver was added for RTK/PPK positioning. Fifth, a miniature computer with Wi-Fi connectivity was added to handle the data acquisition and real-time processing. All the components were mounted into a custom-designed frame that was SLS 3D printed (selective laser sintering) in nylon and painted in black. The system has dimensions of 132 \(\times\) 86 \(\times\) 98 mm and weighs 650 g.  
The FGI AIRS has versatile options for connections. It has a USB port for connecting flash memory. This memory is used both to input the camera configuration file and to store the acquired data. The AIRS allow simultaneous connection of up to five cameras. When connected, each camera gets one general-purpose input/output (GPIO) pin as input to send camera exposure synchronization pulses to the AIRS and one output pin so that the AIRS optionally can trigger the camera at desired intervals. The AIRS also supports real-time output of the processed data. This data can be sent to a local or cloud-based processing unit over Wi-Fi/internet or shared locally over a three-wire TTLserial cable. A cloud-based web page user interface has also been developed to visualize the data in real time.  
The AIRS provides timing of the camera exposures as GPS time, based on the trigger pulses sent to the GPIO pin. The GPIO pulse arrival is timed using the Raspberry Pi's internal microsecond clock, which has a practical resolution of a few microseconds. The microsecond clock is continuously synchronized to the GPS time provided by the INS unit using the GPS pulse-per-second (PPS) signal with approximately the same accuracy. Thus, the GPS time of camera synchronization pulses can be determined with an accuracy better than 10 \(\upmu\)s. This can be considered better than sufficient as the remote sensing cameras typically use 1-10 ms exposures, and there is rarely any need for better than 1 ms timing accuracy.