PD-14 - GIS and Parallel Programming
Programming is a sought after skill in GIS, but traditional programming (also called serial programming) only uses one processing core. Modern desktop computers, laptops, and even cellphones now have multiple processing cores, which can be used simultaneously to increase processing capabilities for a range of GIS applications. Parallel programming is a type of programming that involves using multiple processing cores simultaneously to solve a problem, which enables GIS applications to leverage more of the processing power on modern computing architectures ranging from desktop computers to supercomputers. Advanced parallel programming can leverage hundreds and thousands of cores on high-performance computing resources to process big spatial datasets or run complex spatial models.
Parallel programming is both a science and an art. While there are methods and principles that apply to parallel programming--when, how, and why certain methods are applied over others in a specific GIS application remains more of an art than a science. The following sections introduce the concept of parallel programming and discuss how to parallelize a spatial problem and measure parallel performance.
PD-33 - GDAL/OGR and Geospatial Data IO Libraries
Manipulating (e.g., reading, writing, and processing) geospatial data, the first step in geospatial analysis tasks, is a complicated step, especially given the diverse types and formats of geospatial data combined with diverse spatial reference systems. Geospatial data Input/Output (IO) libraries help facilitate this step by handling some technical details of the IO process. GDAL/OGR is the most widely-used, broadly-supported, and constantly-updated free library among existing geospatial data IO libraries. GDAL/OGR provides a single raster abstract data model and a single vector abstract data model for processing and analyzing raster and vector geospatial data, respectively, and it supports most, if not all, commonly-used geospatial data formats. GDAL/OGR can also perform both cartographic projections on large scales and coordinate transformation for most of the spatial reference systems used in practice. This entry provides an overview of GDAL/OGR, including why we need such a geospatial data IO library and how it can be applied to various formats of geospatial data to support geospatial analysis tasks. Alternative geospatial data IO libraries are also introduced briefly. Future directions of development for GDAL/OGR and other geospatial data IO libraries in the age of big data and cloud computing are discussed as an epilogue to this entry.