Real Time Analysis and Display of
Scanning Lidar Scattering Data
B.R.
Lienert1, J.N. Porter2 and S.K. Sharma3
1,2,3HIGP/SOEST, University of Hawaii at Manoa,
2525 Correa Rd., Honolulu HI 96822
1Tel: (808) 956-7815
1e-mail: lienert@soest.hawaii.edu
Abstract
We
describe software we have used to collect, analyze, display and store
backscatter data from a multi-wavelength scanning lidar system. Both one and
two-dimensional distributions of optical scattering coefficients are calculated
from the lidar return signals and displayed in real time. The modular nature of
the software and data acquisition drivers makes it straightforward to adapt the
software to different systems. We show examples of both horizontal and vertical
lidar scans collected at the Makai Pier and Bellows Beach on the northeast side
of the island of Oahu.
Introduction
Lidar
(Light Detection and Ranging) is a well-established technique for determining
the optical properties of the atmosphere to distances of up to 120 km
(Spinhirne et al, 1997). Pulses of light are transmitted from a laser and the
backscattered light is received using detectors coupled to a telescope pointed
at the laser's image, usually with a coaxial geometry. The backscattered signal
has a duration that depends on the range being studied, e.g., for a range of 5
km the signal duration is 30 uS. The distance resolution depends on the speed
of the analog to digital converters (ADC's) used. Because the returned signal
falls off as at least the inverse distance squared, it is highly advantageous
to use 12 bit, rather than higher speed 8-bit ADC's. The recent advent of
commercial 60 MHz ADC's allows a range resolution down to 5 m, corresponding to
a two-way travel time at the Nyquist frequency. Software for lidar data
processing in the past has consisted of packages written for systems containing
custom hardware and usually written for UNIX workstations. The speed of modern
PC's has now made these machines a viable platform for real-time processing of
lidar data at much lower cost. In addition, the availability of a standard
graphical interface to devices such as displays and printers makes it possible
to develop software that will run without modification on any PC. We have made
the source code for our software available so that others can use it as a
template for developing software on the PC platform.
Harware Description
A
schematic diagram of our scanning Lidar is shown in Figure 1. It is a coaxial
system employing a 30-cm diameter Schmidt-Cassegrain telescope and a 20 Hz
Nd:YAG laser (80 mJ/pulse). The laser beam is expanded to a diameter of 4 cm
and reflected off a turning mirror mounted on top of the telescope. A two-axis
30-cm scanner is used to direct the telescope and outgoing beam to any desired
direction at rates of up to 5 degrees per second. A separate PC communicating
with the main PC via a serial port controls the scanner. The outgoing laser
pulse energy is monitored using a small portion of the transmitted beam, collected
using an integrating sphere coupled to high-speed photodiodes. The diode
signals are digitized at 500 MHz and coupled via a GPIB to the main computer.
The backscatter signals from the two detectors, an avalanche photodiode and
photomultiplier tube (PMT), are digitized using 60 MHz 12 bit analog to digital
converters (ADC's). We found that using a tapered voltage divider on the PMT,
rather than the linear divider usually supplied by the manufacturer,
considerably improved its short period response. We also found that shielding
the primary laser beam from the telescope optics, using a series of tubes,
considerably reduced the amplitude of the initial pulse, making it unnecessary
to use a chopper or gate in our system. For far field (>10 km) signals, the
PMT signal can also be processed by a multichannel scaler/averager. An
16-channel 12 bit A/D card is used to digitize wind speed, wind direction,
ambient humidity and temperature.
Backscattering Inversion Method
The
inversion of lidar data to obtain scattering coefficients has been described by
Klett (1981) and Zhang and Hu (1992). We use the iterative forward stepping
technique described by Porter et al. (1999). Rather than assuming a scattering
value in a distant layer (Klett, 1981), this method assumes a scattering value
in the near field, then performs a forward stepping inversion. We then adjust
the calibration constant to give reasonably constant calculated scattering in
the far field for a horizontal profile in which the scattering is known to be
reasonably uniform. Because the overlap function of our system optics is close
to one at a range of 300 m, the assumed near field scattering value up to this
distance has little effect on the inversion, although it can easily be adjusted
interactively if necessary. This method has two major advantages:
(a) We are not
constrained, like Klett (1981), to assuming a power law relationship between
backscatter and extinction. Intially, we assume that this relationship is
linear, with a slope based on size distribution modeling of the aerosols being
studied (Porter and Clarke, 1997). If necessary, different values of the
backscatter to extinction ratio can then be specified in different atmospheric
regimes.
(b) We are able to determine the system
calibration constant using routine measurements by including at least one near
horizontal scan in each series of scans. Since the optical components,
particularly the outer scanner mirror, can change their reflectivity as they
accumulate dust and dirt, and in marine environments, salt spray, the system
calibration constant changes with time. We have observed changes as large as a
factor of three in less than 30 minutes at the Bellows site, which is less than
20 m from breaking waves on a beach. It is therefore essential that we have a
method of determining the calibration constant frequently.
Software Description
The
software was originally written in 16-bit C, using Visual C++ 1.52 as the
compiler, using the Windows Application Programming Interface. We have almost
completed converting the package to run under 32 bit C, using Visual C 6.0. We
did not use the MFC classes which resulted in a smaller executable program
(about 400 KB versus >2 MB). The only external libraries used were those for
the A/D converters and GPIB driver. The program is organized message loop style
(Petzold, 1996). In Windows, as opposed to sequential text-based languages such
as FORTRAN and BASIC, messages are the means by which all operator requests,
such as mouse or keyboard actions, are serviced. Actions of the operator
therefore determine the program sequence, rather than a "flow chart"
type sequence determined by the programmer. The heart of the program therefore
lies in the message loop, which in C is "switch" loop, followed by a
series of "case" statements which contain calls to the appropriate
subroutines.
The
software starts by initializing variables to the previous settings (last
subdirectory accessed, scanner, plot and data acquisition settings, etc.) which
are read from a previously saved file. All values can then be modified using
dialog boxes, which provide a convenient way of displaying and modifying
settings such as voltage ranges, data acquisition speed, etc. The dialog boxes
are activated using either menu commands, or for the frequently used commands,
toolbar buttons. Control of the scanner is accomplished using the dialog box
shown in Figure 2. While this dialog box is enabled, the azimuth and elevation
values are read at 50 mS intervals through a serial port, allowing the scanner
position to be monitored at any time, including scanning and data acquisition.
The two entries below the azimuth and elevation readout are used to orient the
scanner to any desired position in real time using the "Go To"
button. The azimuth and elevation origins can also be set to any desired
reference position using the "Set To" button allowing easy resetting
of the scanner origins. The scan limit settings are used to control the speeds
and angular ranges of the scan. Once the "Start Scan" button is
pressed, the scanner will proceed to scan and continue until the "Stop
Motors" button is pressed.
When
data acquisition is requested, a 50 ms timer (corresponding to the laser pulse
frequency of 20 Hz) is started to check for device trigger status. Trigger
signals are generated by a photodiode positioned in front of the laser. On the
first scan of a series, the "AcquireData" routine sends the settings
in the various dialog boxes to the appropriate output devices. The procedure
then initializes the input devices (ADC's, digital scope, SRS430) to wait for a
trigger signal. A filename having the form DDDHHMM.SS is generated from the
starting julian day, hour, minute and second and is opened on the output
device, in our case a removable hard disk cartridge. The files are written into
a directory whose name is the day, month and year. The file is written in
binary format to reduce size and improve speed. However, data can be read back
later and saved in ASCII format in the form that it is currently displayed in
(filtered, inverted for backscatter, etc.), allowing easy export to other
programs when desired. The data in the files created during data acquisition
consist of two parts:
(a) A fixed section,
containing the number of active data channels, settings for each channel, filter
values, etc. This section is created once at the beginning of a set of scans.
(b)
A data section, which contains items that vary with each scan (scanner azimuth
and elevation, wind speed, etc) followed by calibration data and the data
itself for each channel. Data is stored in 16-bit integer format coming
directly from the acquisition devices, with the range settings and calibration
terms applied when the data is read.
Although the number of
desired scans is specified at the beginning of acquisition, acquisition can be
terminated at any time. When ADC data acquisition for a single shot is
complete, the "AcquireData" routine downloads the data and
accumulates it in a running average. Once the required number of shots has been
accumulated, the calibration data, which is averaged internally in the digital
oscilloscope, is downloaded, along with auxiliary data (windspeed, etc). The
data is displayed in one of the following ways, which can be changed even while
data acquisition is in progress:
(a) Detector voltage versus either time or
distance. This provides a useful check on whether the ADC ranges are optimal
and also whether the detectors or amplifiers are close to saturation. We found
it extremely useful to optionally display this plot on a log-log scale
simultaneously with the calculated molecular scattering. On a log-log plot, the
inverse distance squared variation becomes linear, making it much easier to
check the system's response, as well as to determine an approximate system
calibration constant and the distance at which noise starts to dominate the
signal. An example of sucha log-log plot is shown in Figure 3.
(b) Extinction versus distance. This plot
requires inverting the detector voltage to obtain the total optical scattering
using a method similar to that described by Klett, 1981, which is described in
detail by Porter et al., 1999. This method requires a value for the ratio of
backscatter to extinction (the phase function) in order to calculate the
transmission losses.
(c) Two-dimensional
scattering. For this plot, we have used a series of rainbow colors to display
the calculated extinction along lines corresponding to the directions of each
series of shots. The "rainbow" routine was based on the optical
response of the human eye to the three primary colors of the display, but was
adjusted to give visually discernable differention across its range. Once the
extinction is color coded, a single straight line of variable thickness,
oriented in the direction the laser is pointed can represent a single
backscatter profile. Plotting these lines at regular anglular intervals
(determined by the scanner speed and the number of shots averaged) allows
visualization of a two-dimensional "slice" of the extinction
coefficient. These plots have proved extremely useful for representing
laterally varying features such as plumes of salt spray and clouds.
Sample Scans
The
first example, shown in Figure 3 is a horizontal scan taken at 2103 on 5/10/98 at
the Makai Pier, on the Northeast side of Oahu. The average elevation of the
laser beam above the water was 6 m. Plumes of salt spray can be seen blowing in
the trade wind direction (66O E) off the edges of two small islands
about 1.5 km offshore. The calibration factor was adjusted to give uniform scattering
values in the leftmost scan (10O W) using the method of Porter et
al., 1999. We estimate that this calibration factor is accurate to within 10%. The
second example, shown in Figure 4, is a vertical scan taken at Bellows Beach,
about 6 km west of the Makai Pier. The top of the marine boundary layer is
clearly defined increases from 0.8 to 1 km inland due to orographic lifting by
the Koolau range, about 2 km behind the beach.
Discussion
The
software described has now been successfully used for over three years to
collect and display lidar data on a PC. The real-time display of processed data
has proved invaluable for detecting problems in alignment, etc., as well as
immediately being able to interpret the data in real time. Since the algorithms
are all written in C, they are highly portable and can be easily ported to
other platforms. However, the widespread availability and low cost of PC's
makes them a natural choice for both data acquisition and display.
Acknowledgements
The work carried out
here was funded by ONR grant # N00014-96-1-0317.
References
Klett, J.D. 1981. Stable
analytical inversion solution for processing lidar returns. Appl. Optics, 20,
211-220.
Petzold, C.1996. Programming
Windows 95, Microsoft Press.
Porter, J. N. and A. D.
Clarke.1997 An aerosol size distribution model based on in situ measurements:
Aerosol backscatter calculations. J Geophys. Res. Atmospheres 102, 6035-6045.
Porter, J., B. Lienert, S. K. Sharma, Using Horizontal
and Slant Lidar Measurements To Obtain Aerosol Scattering Coefficients From A
Coastal Lidar In Hawaii, submitted to Journal of Atmospheric and Oceanic
Technology 1999.
Spinhirne,
J.D., S. Chudanani, J.F. Cavanaugh and J.L. Button.1997. Aerosol and cloud
backscatter at 1.06, 1.54 and 0.53 um by airborne hard-target-calibrated
Nd:YAG/methane lidar, Appl. Optics., 36, 3475-3489.
Zhang, J., and H. Hu, 1997.
Lidar calibration: A new method. Applied Optics, 36, 1235-1238.