Improving Running Times for the Determination of Fractional Snow-Covered Area from Landsat TM/ETM+ via Utilization of the CUDA® Programming Paradigm

Tuesday, 16 December 2014: 12:05 PM
Lewis John McGibbney1, Karl Rittger2, Thomas H Painter3, David Selkowitz4, Chris A Mattmann3 and Paul Ramirez5, (1)Jet Propulsion Laboratory, California Institute of Technology, Pasadena, CA, United States, (2)National Snow and Ice Data Center, Boulder, CO, United States, (3)NASA Jet Propulsion Laboratory, Pasadena, CA, United States, (4)USGS Alaska Science Center, Anchorage, AK, United States, (5)Jet Propulsion Laboratory, Pasadena, CA, United States
As part of a JPL-USGS collaboration to expand distribution of essential climate variables (ECV) to include on-demand fractional snow cover we describe our experience and implementation of a shift towards the use of NVIDIA’s CUDA® parallel computing platform and programming model. In particular the on-demand aspect of this work involves the improvement (via faster processing and a reduction in overall running times) for determination of fractional snow-covered area (fSCA) from Landsat TM/ETM+.

Our observations indicate that processing tasks associated with remote sensing including the Snow Covered Area and Grain Size Model (SCAG) when applied to MODIS or LANDSAT TM/ETM+ are computationally intensive processes. We believe the shift to the CUDA programming paradigm represents a significant improvement in the ability to more quickly assert the outcomes of such activities. We use the TMSCAG model as our subject to highlight this argument. We do this by describing how we can ingest a LANDSAT surface reflectance image (typically provided in HDF format), perform spectral mixture analysis to produce land cover fractions including snow, vegetation and rock/soil whilst greatly reducing running time for such tasks.

Within the scope of this work we first document the original workflow used to assert fSCA for Landsat TM and it’s primary shortcomings. We then introduce the logic and justification behind the switch to the CUDA paradigm for running single as well as batch jobs on the GPU in order to achieve parallel processing. Finally we share lessons learned from the implementation of myriad of existing algorithms to a single set of code in a single target language as well as benefits this ultimately provides scientists at the USGS.