Book Image

Learning Geospatial Analysis with Python - Third Edition

By : Joel Lawhead
Book Image

Learning Geospatial Analysis with Python - Third Edition

By: Joel Lawhead

Overview of this book

Geospatial analysis is used in almost every domain you can think of, including defense, farming, and even medicine. With this systematic guide, you'll get started with geographic information system (GIS) and remote sensing analysis using the latest features in Python. This book will take you through GIS techniques, geodatabases, geospatial raster data, and much more using the latest built-in tools and libraries in Python 3.7. You'll learn everything you need to know about using software packages or APIs and generic algorithms that can be used for different situations. Furthermore, you'll learn how to apply simple Python GIS geospatial processes to a variety of problems, and work with remote sensing data. By the end of the book, you'll be able to build a generic corporate system, which can be implemented in any organization to manage customer support requests and field support personnel.
Table of Contents (15 chapters)
Free Chapter
Section 1: The History and the Present of the Industry
Section 2: Geospatial Analysis Concepts
Section 3: Practical Geospatial Processing Techniques

Clipping images

Very rarely is an analyst interested in an entire satellite scene, which can easily cover hundreds of square miles. Given the size of satellite data, we are highly motivated to reduce the size of an image to only our area of interest. The best way to accomplish this reduction is to clip an image to a boundary that defines our study area. We can use shapefiles (or other vector data) as our boundary definition and basically get rid of all the data outside that boundary.

The following image contains our stretched.tif image with a county boundary file layered on top, visualized in Quantum GIS (QGIS):

To clip the image, we need to follow these steps:

  1. Load the image into an array using gdal_array.
  2. Create a shapefile reader using PyShp.
  3. Rasterize the shapefile into a georeferenced image (convert it from a vector into a raster).
  4. Turn the shapefile image into a binary...