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
1
Section 1: The History and the Present of the Industry
5
Section 2: Geospatial Analysis Concepts
10
Section 3: Practical Geospatial Processing Techniques

Geolocating photos

Photos that are taken with GPS-enabled cameras, including smartphones, store location information in the header of the file in a format called EXIF tags. These tags are based largely on the same header tags that are used by the TIFF image standard. In this example, we'll use those tags to create a shapefile with point locations for the photos, and file paths to the photos, as attributes.

We’ll use the PIL in this example because it has the ability to extract EXIF data. Most photos that are taken with smartphones are geotagged images; however, you can download the set used in this example from https://git.io/vczR0:

  1. First, we'll import the libraries that we need, including PIL for the image metadata and PyShp for the shapefiles:
import glob
import os
try:
import Image
import ImageDraw
except ImportError:
from PIL import Image
from PIL.ExifTags...