Oceanography The Official Magazine of
The Oceanography Society

Early Release


DIY OCEANOGRAPHY • pySAS: Autonomous Solar Tracking System for Surface Water Radiometric Measurements

Nils Haëntjens Kyle ForsytheBradley DenholmJames LoftinEmmanuel Boss
Jump to
Article Abstract Full text Citation References Copyright & Usage
Article Abstract

Data recorded by autonomous solar tracking systems onboard ships can be used to validate remote-sensing reflectance observations collected by satellite sensors. Important water quality parameters can also be derived from these data using inverse models. These systems require a mechanical setup that is interfaced with a computer to log radiometric data and to optimally adjust radiometer direction relative to the sun and the platform on which the system is installed to avoid glint. Although solutions are known, no autonomous module compatible with the Sea-Bird Scientific HyperSAS radiometric system is currently available. Here, we present an open-source system, pySAS, that can be constructed for less than $5,000 (excluding radiometers). The pySAS uses two GPS units for orienting the radiometers to avoid effects of the platform’s magnetic field. The system can be modified for use with other radiometers.

Full Text


Since Mobley’s (1999) analysis of above-​water methods for obtaining remote-​sensing reflectance, efforts have been made to optimize and automate the acquisition of radiometric data to mimic reflectance obtained by satellites sensors (Hooker et al., 2002).

The method we discuss here involves collecting measurements with three radiometers: two pointing at the sky (for downwelling planar irradiance and downwelling radiance) and one measuring the light leaving the ocean surface (upwelling radiance). This method provides more accurate red and near-infrared retrievals, essential for atmospheric correction, than is possible with in-water techniques (Li et al., 2016). It also offers the ability to obtain data autonomously over long oceanic transects via ferries (Yang et al., 2018) and research vessels (Balch et al., 2008). These data are critical for validation of space measurements as well as for obtaining, via inversion modeling, optical and biogeochemical properties of water.

Mobley (1999) advocated specific optimal orientation of radiometers relative to the solar plane. Therefore, systems were designed to track the sun as it traversed the sky, as well as to adjust the radiometer position as the vessel changed its heading (Balch, 2004). Several commercial radiometer setups (e.g., CIMEL CE318, Biospherical Instruments OSPREy, In Situ Marine Optics DALEC, and Water Insight WISP-Station) are fully autonomous, so that they are capable of logging data while orienting the radiometers on a moving platform. In contrast, other radiometer models, such as the TriOS RAMSES or the Sea-Bird Scientific HyperSAS, are deployed as single radiometers for manual operation, requiring an independently developed autonomous orienting and logging system. To our knowledge, such systems have been made for moderate costs (<$10 k) for the TriOS RAMSES radiometers (e.g., REFLEX/SO-RAD from S. Simis https://github.com/StefanSimis/so-rad and PANTHYR, Vansteenwegen et al., 2019), but there is no commercially available system for Sea-Bird Scientific’s HyperSAS radiometers.

We designed, constructed, and tested three radiometer pointing systems, each costing less than $5,000 in parts (excluding radiometers). The data collected were processed by the open-source software HyperInSPACE from Dirk Aurin, supported by NASA (https://github.com/nasa/HyperInSPACE). HyperInSPACE automatically quality checks the measured spectra and generates a variety of biogeochemical products via established inversions. Wide deployment of such systems on research vessels and ships of opportunity as well as on stable platforms, such as ocean rigs and piers, could enable expanded data collection globally, providing critical information on the state of upper ocean biogeochemistry (e.g., concentrations of chlorophyll a and particulate organic matter) and validating remotely sensed measurements (e.g., to evaluate different atmospheric correction schemes).


pySAS System

Materials and Assembly Steps

The pySAS system is composed of (1) a Sea-Bird Scientific HyperSAS consisting of four sensors that measure water-​leaving radiance (Lt), sky radiance (Li), and downwelling irradiance (Es), as well as the vessel’s pitch and roll; (2) a tower that orients and holds the radiometers; and (3) a controller box that calculates the desired sensor orientation and logs data (Figures 1 and 2). The <$5,000 cost includes the tower (materials and build) and the controller box (for details, see the list of materials on the project’s GitHub page at https://github.com/OceanOptics/pySAS). The Sea-Bird Scientific sensors could be replaced by other radiometers, provided they meet the 12 VDC power and RS‑232 communication requirements and the pySAS software is adjusted to the appropriate data format. When conditions are suitable for collecting measurements, the controller box turns the sensor power on, records data, and displays the observations. The controller box turns the HyperSAS sensors off in unsuitable conditions.


FIGURE 1. Schematic of pySAS hardware, not to scale. The Sea-Bird Scientific HyperSAS radiometers, tilt sensor, support (colored in blue), and cables (dashed) are not included in the pySAS materials list. > High res figure


FIGURE 2. pySAS was mounted on the bows of (a) R/V Ira C and (b) R/V Roger Revelle. > High res figure


The tower is composed of a stationary base constructed from a stainless steel housing that encloses a stepper motor and a planetary gear box. A rotating shaft with a small platform extends up from the base tower. An aluminum frame that holds the HyperSAS sensors is then attached to the rotating platform. The tower is powered and controlled by the controller box. Like the radiometers, the tower is powered only when conditions for making measurements are suitable. The controller box records the orientation of the radiometers for use in post processing. Technical drawings of the tower’s construction are available in the GitHub repository.

The controller box, a strong watertight enclosure with IP 68 connectors, contains: (1) a power supply, fuses, and relays to control the power distribution to peripherals (tower, HyperSAS, and GPS); (2) a serial hub to interface with peripherals; (3) a Real-Time Kinematic (RTK) Global Navigation Satellite Systems (GNSS) to measure heading accurately; and (4) a single board computer (SBC, Raspberry Pi). The RTK GNSS is a dual GPS system with two external antennas that we recommend placing 1.5 m apart with a clear view of the sky. In addition to the materials list, instructions on how to connect and configure all components are detailed on the project’s GitHub page.

On May 10, 2022, Sea-Bird Scientific discontinued the HyperSAS system but maintained the production of HyperOCR radiometric sensors. Therefore, the system presented here, if reproduced, would lack a pitch and roll sensor, the SAS cable, and a support holding the Li and Lt radiometers at 40°. Many DIY projects interface an inertial measurement unit with a single board computer. While that requires extra work, we have no doubt that it can be done with the present pySAS system. An alternative to the SAS cable would be to add an extra RS232 port so that the Li and Lt sensors are each interfaced through their own serial connections as is presently done for the Es sensor.


The custom Python software that drives the system turns the sensors on and off, orients the radiometers, and logs and displays the data. The software has two modes of operation: (1) in manual mode, the user can control each sensor independently, and also control the orientation of the tower; (2) in automatic mode, the software obtains GPS position, heading, and time in order to calculate the position of the sun (Reda and Andreas, 2005), and then powers, orients, and logs data from the HyperSAS sensors. In automatic mode, the conditions for sampling are met if the sun’s elevation reaches at least X° and the radiometers can be pointed at Y° away from the sun’s azimuth angle (looking at the sea rather than the deck of the ship). X and Y are set by the user, typically at 10° and ±135°, respectively.

Connecting the controller box to power turns it on, and the operating system boots in approximately one minute. If no internet connection is available, the software sets the system time with the GPS, once an adequate fix is set. The software is designed to run autonomously, checking once per minute to determine whether conditions for sampling are met, and if they are, to initiate observations. Users can monitor and control the system by connecting to the wi-fi hotspot broadcasted by the controller box and by loading the web interface with a browser on a smartphone, tablet, or computer (Figure 3). The user interface displays the incoming data, including three hyperspectral radiance and irradiance spectra and system orientation with respect to the sun. The interface also allows the user to control, for example, the direction of the system relative to the vessel and the mode of operation (automatic or manual), or to turn the system off. The user’s configuration is stored for future use.


FIGURE 3. User interface of pySAS when connected to a control-box wi-fi with any device that supports a web interface. The left panel displays a graphical view of the system’s azimuthal orientation (blue line), the sun azimuth angle (yellow line), ship’s heading (black line) and restricted area (gray shade, where the system will be looking at the vessel and hence not provide useful measurements). The middle panel displays real-time radiometric measurements. The right panel displays status and control buttons (see guide on GitHub repository for more details). > High res figure


Validation of System Performance

Data Integrity of Radiometers

We conducted tests to validate the integrity of recorded data, the accuracy of system components, and overall system operation. We validated instrument logging by simultaneously channeling incoming HyperSAS frames to both the pySAS system and a Windows computer running Sea-Bird Scientific’s SatView software. Once logged, both systems’ files were parsed with Sea-Bird Scientific’s SatCon and the Python module pySatlantic. Comparing the logged frames from all four combinations of software revealed that the data were identical, with two expected exceptions: rounding differences in the parsed frames and a slight variation in the two systems’ timestamps (<1 s).

GPS Accuracy

We validated the heading of the system GPS in two ways. We logged the system heading while stationary for 10 minutes to obtain a precise fix. The heading values were compared with satellite imagery and landmarks to determine accuracy, which was ≤0.4° with a 3D fix. Note that the GPS manufacturer claims 0.4° with 1-meter distance between antennas. The system was then rotated from –180° to 180° for three passes, and through linear interpretation we found that the heading remained consistent with the manufacturers’ specifications.

System Performance

System performance was validated by comparing the position of the shadow with the orientation of the tower during a clear sky day. Images from the camera were used to measure the sun azimuth and the tower orientation every five minutes. During the 11.6 hours of operation, the orientation of the tower had a bias varying with the time of day between 0° and 8° with an average of 4.1°. This error encompasses:

  • the GPS heading uncertainty (0.4° according to the manufacturer),
  • the position uncertainty from the tower (theoretical resolution is 9 × 10–8° according to the stepper motor manufacturer after reduction of gear box; however, we measured 0.6° of play in the support of the radiometers),
  • the uncertainty in the sun position model (0.00463 ± 0.00550°, https://pysolar.readthedocs.io/en/latest/),
  • the uncertainty from the camera observation (0.92 ± 0.02° variability from a pixel to another),
  • the bias from the manual alignment of the tower with the GPS antennas regardless of the mechanical frame used for alignment, and
  • the uncertainty in the verticality of the sundial pole (that is, the ground was not perfectly horizontal and the pole may have been slightly tilted).

This procedure confirmed the overall proper orientation of the radiometers with respect to the sun and illustrated the need to carefully align the GPS with the tower to improve accuracy.


Field Deployments

We constructed and then deployed three pySAS systems on five campaigns across the North Atlantic and the North Pacific for a total of 77 days of operation (Table 1). For the EXPORTS-NA1 campaign, remote-sensing reflectance (Rrs) was computed from HyperInSPACE v1.0.9 measurements, with most parameters set at default values (Figure 4). Resulting Rrs spectra were averaged over five minutes corresponding to 1.6 km of transect on average, except for five samples during which the ship was stationary. We validated the observations made with pySAS by comparing them with Rrs measured by ocean color satellites after applying the spectral response function from each satellite sensor to pySAS water-​leaving radiance (Lw). Remote-sensing images were downloaded at level 2 for MODIS-Aqua, MODIS-Terra, VIIRS-SNPP, and VIIRS-JPSS1. Comparisons between the satellites and pySAS Rrs that were made following the criteria of Bailey and Werdell (2006; 5 × 5 pixel boxes, ±3 hour windows, default Ocean Color flag level 3) showed agreement within 28% on average across the spectrum, confirming the quality of the data collected with pySAS (Figure 5).


TABLE 1. List of cruises on which pySAS was deployed. Note that though the hardware is the same for all pySAS versions deployed, the software was significantly updated in the latest version to improve the user experience. EXPORTS = EXport Processes in the Ocean from Remote Sensing program. NP = North Pacific. NA = North Atlantic. > High res table
FIGURE 4. Remote sensing reflectance (Rrs) measured by the pySAS system mounted at the bow of RRS James Cook on May 30, 2021, during an EXPORTS transect across the North Atlantic from 49.10°N, 12.00°W to 49.31°N, 9.82°W. Spectra are colored by time of the day. > High res figure
FIGURE 5. Remote-sensing reflectance (Rrs) matchups between pySAS measurements (n = 21 independent spectra) and MODIS-Aqua (circles, n = 1), MODIS-Terra (diamonds, n = 4), VIIRS-SNPP (crosses, n = 2), and VIIRS-JPSS1 (pluses, n = 1) sensors during the EXPORTS-NA campaign for each visible band. Each color represents a different satellite band. r2 = 0.84. y = 1.04±0.04 x + 0.0001±0.0001. RMSURE = 28%. > High res figure


During the field deployment, the system proved to be reliable and strong, with the use of stainless steel and an oversized stepper motor for the tower. We tested the waterproof quality of the tower in the laboratory by submerging it overnight at ~1 m depth. In the field, we took precautions with the systems by adding desiccant bags inside the controller box and tower, greasing the rotary shaft seal, placing the controller box in the shadow as much as possible, and moving the system out of the weather during rough sea states. Based on our deployments to date, the parts showing the most wear are the cable and connectors to the GPS antennas. Although they worked fine for each deployment, they would benefit from reinforcement.


Summary and Ideas for Improvements

pySAS is a user-friendly system for obtaining optimal radiometer positioning relative to the sun when measuring water-leaving reflectance. The system is currently compatible with Sea-Bird Scientific radiometers, though it is easily adapted for use with other radiometers by modifying the code. An important advantage of pySAS is its web interface, which allows simple control of the system and visualization of the measurements (Lt, Li, and Es) in real time, ensuring that quality data are recorded. In addition, the data recorded with pySAS can be ingested by HyperInSPACE for automatic processing.

Additional improvements to the system could include a sky-facing camera with a fisheye lens to enable greater viewing extent. Combined with a cloud detection algorithm, the system could automatically flag data recorded in suboptimal conditions or save energy if the user wishes to avoid collecting data during cloudy conditions. Similarly, a downward-facing camera could evaluate the presence of white caps, foam, or debris that may degrade measurement quality. Another improvement could be use of a tower with active stabilization in order to maintain the radiometers in horizontal positions despite the vessel’s motion. Commercially available towers are available (e.g., FLIR PTU-D48; $6,000) that may be integrated in future versions of pySAS.



We gratefully acknowledge Jason Morrill for assembling and testing one of the pySAS system. We would like to thank Alison Chase for her contribution to the early deployment of pySAS during NAAMES campaigns. The authors thank one anonymous reviewer and Dave Drapeau for comments that led to an improved manuscript. Funding was provided by NASA grant NNX15AE67G and ONR grant N00014-16-1-2218.



Haëntjens, N., K. Forsythe, B. Denholm, J. Loftin, and E. Boss. 2022. pySAS: Autonomous solar tracking system for surface water radiometric measurements. Oceanography, https://doi.org/10.5670/oceanog.2022.210.


Bailey, S.W., and P.J. Werdell. 2006. A multi-​sensor approach for the on-orbit validation of ocean color satellite data products. Remote Sensing of Environment 102(1–2):12–23, https://doi.org/​10.1016/j.rse.2006.01.015.

Balch, W.M. 2004. Re-evaluation of the physiological ecology of coccolithophores. Pp. 165–190 in Coccolithophores. H.R. Thierstein and J.R. Young, eds, Springer, Berlin, Heidelberg, https://doi.org/​10.1007/​978-3-662-06278-4_7.

Balch, W.M., D.T. Drapeau, B.C. Bowler, E.S. Booth, L.A. Windecker, and A. Ashe. 2008. Space-time variability of carbon standing stocks and fixation rates in the Gulf of Maine, along the GNATS transect between Portland, ME, USA, and Yarmouth, Nova Scotia, Canada. Journal of Plankton Research 30:119–139, https://10.1093/plankt/fbm097.

Hooker, S.B., G. Lazin, G. Zibordi, and S. McLean. 2002. An evaluation of above- and in-​water methods for determining water-​leaving radiances. Journal of Atmospheric and Oceanic Technology 19(4):486–515, https://doi.org/​10.1175/​1520-​0426​(2002)​019​<0486:​AEOAAI>​2.0.CO;2.

Li, L., D. Stramski, and R.A. Reynolds. 2016. Effects of inelastic radiative processes on the determination of water-leaving spectral radiance from extrapolation of underwater near-surface measurements. Applied Optics 55(25):7,050–7,067, https://doi.org/​10.1364/​AO.55.007050.

Mobley, C.D. 1999. Estimation of the remote-​sensing reflectance from above-surface measurements. Applied Optics 38(36):7,442–7,455, https://doi.org/​10.1364/​AO.38.007442.

Reda, I., and A. Andreas. 2005. Solar Position Algorithm for Solar Radiation Applications. Revised January 2008. National Renewable Energy Laboratory NREL/TP-560-34302, 16 pp. plus appendices, https://doi.org/10.2172/15003974.

Vansteenwegen, D., K. Ruddick, A. Cattrijsse, Q. Vanhellemont, and M. Beck. 2019. The pan-and-tilt hyperspectral radiometer system (PANTHYR) for autonomous satellite validation measurements—​prototype design and testing. Remote Sensing 11(11):1360, https://doi.org/10.3390/rs11111360.

Yang, Y., L.L. Cowen, and M. Costa. 2018. Is ocean reflectance acquired by citizen scientists robust for science applications? Remote Sensing 10(6):835, https://doi.org/10.3390/rs10060835.

Copyright & Usage

This is an open access article made available under the terms of the Creative Commons Attribution 4.0 International License (https://creativecommons.org/licenses/by/4.0/), which permits use, sharing, adaptation, distribution, and reproduction in any medium or format as long as users cite the materials appropriately, provide a link to the Creative Commons license, and indicate the changes that were made to the original content. Images, animations, videos, or other third-party material used in articles are included in the Creative Commons license unless indicated otherwise in a credit line to the material. If the material is not included in the article’s Creative Commons license, users will need to obtain permission directly from the license holder to reproduce the material.