Introduction to GIS Programming and Fundamentals with Python and ArcGIS®  book cover
1st Edition

Introduction to GIS Programming and Fundamentals with Python and ArcGIS®

ISBN 9781466510081
Published April 7, 2017 by CRC Press
328 Pages 100 B/W Illustrations

SAVE $22.00
was $110.00
USD $88.00

Prices & shipping based on shipping country


Book Description

Combining GIS concepts and fundamental spatial thinking methodology with real programming examples, this book introduces popular Python-based tools and their application to solving real-world problems. It elucidates the programming constructs of Python with its high-level toolkits and demonstrates its integration with ArcGIS Theory. Filled with hands-on computer exercises in a logical learning workflow this book promotes increased interactivity between instructors and students while also benefiting professionals in the field with vital knowledge to sharpen their programming skills. Readers receive expert guidance on modules, package management, and handling shapefile formats needed to build their own mini-GIS. Comprehensive and engaging commentary, robust contents, accompanying datasets, and classroom-tested exercises are all housed here to permit users to become competitive in the GIS/IT job market and industry.

Table of Contents

Section I


Computer Hardware and Software

GIS and Programming


Class and Object

GIS Data Models


Hands-On Experience with Python

Chapter Summary


Object-Oriented Programming

Programming Language and Python

Class and Object

Point, Polyline, and Polygon

Hands-On Experience with Python

Chapter Summary


Section II

Introduction to Python

Object-Oriented Support


Data Types





Hands-On Experience with Python

Chapter Summary


Python Language Control Structure, File Input/Output, and Exception Handling

Making Decisions


Other Control Structures

File Input/Output


Hands-On Experience with Python

Chapter Summary


Programming Thinking and Vector Data Visualization

Problem: Visualizing GIS Data

Transforming Coordinate System

Visualizing Vector Data

Point, Polyline, Polygon

Programming Thinking

Hands-On Experience with Python

Chapter Summary


Shapefile Handling

Binary Data Manipulation

Shapefile Introduction

Shapefile Structure and Interpretation

General Programming Sequence for Handling Shapefiles

Hands-On Experience with Mini-GIS

Chapter Summary


Python Programming Environment

General Python IDE

Python Modules

Package Management and Mini-GIS

Hands-On Experience with Mini-GIS

Chapter Summary


Vector Data Algorithms




Line Intersection

Point in Polygon

Hands-On Experience with Python

Chapter Summary


Section III

ArcGIS Programming

ArcGIS Programming

Introduction to ArcPy Package

Automating ArcTools with Python

Accessing and Editing Data with Cursors

Describing and Listing Objects

Manipulating Complex Objects

Automating Map Production

Creating ArcTools from Scripts

Handling Errors and Messages

External Document and Video Resources

Implementing Spatial Relationship Calculations Using ArcGIS



Raster Data Algorithm

Raster Data

Raster Storage and Compression

Raster Data Formats

Color Representation and Raster Rendering

Raster Analysis

Hands-On Experience with ArcGIS

Chapter Summary


Network Data Algorithms

Network Representation

Finding the Shortest Path

Types of Network Analysis

Hands-On Experience with ArcGIS

Chapter Summary


Surface Data Algorithms

3D Surface and Data Model

Create Surface Model Data

Surface Data Analysis

Hands-On Experience with ArcGIS

Chapter Summary


Section IV

Performance-Improving Techniques


Disk Access and Memory Management

Parallel Processing and Multithreading

Relationship Calculation and Spatial Index

Hands-On Experience with Mini-GIS

Chapter Summary


Advanced Topics

Spatial Data Structure

GIS Algorithms and Modeling

Distributed GIS

Spatiotemporal Thinking and Computing

Chapter Summary




View More



Chaowei Yang is professor of geographic information science at George Mason University (GMU). His research interest is on utilizing spatiotemporal principles to optimize computing infrastructure to support science discoveries. He founded the Center for Intelligent Spatial Computing and the NSF Spatiotemporal Innovation Center. He served as PI or Co-I for projects totaling over $40M and funded by over 15 agencies, organizations, and companies. He has published 150+ articles and developed a number of GIS courses and a training program. He has graduated 20+ postdoctoral and PhD students who serve as professors and scientists in highly acclaimed U.S. and Chinese institutions. He received many national and international awards, such as the U.S. Presidential Environment Protection Stewardship Award in 2009. All his achievements are based on his practical knowledge of GIS and geospatial information systems. This book is a collection of such practical knowledge on how to develop GIS tools from a programming perspective. The content was offered in his programming and GIS algorithm classes during the past 10 years (2004–2016) and has been adopted by his students and colleagues serving as professors at many universities in the United States and internationally.


"GIScience needs more programmers. This book is a great place to start."
— Mark Gahegan, University of Auckland, New Zealand

"Anyone who wants to develop programming skills to solve spatial problems will treasure this book – bringing together as it does practical skills in applying fundamental GIS principles, Python programming and open-source GIS development. This book is developed from the authors’ decades of combined teaching experience, with obvious benefits for training those encountering GIS programming for the first time. The comprehensive online materials are a boon. The treatment of topics proceeds from basic to advanced in a commendably clear and comprehensive manner. This treatment will be particularly useful for students encountering ‘Big’ space-time data that today pervade so many areas of application."
—Tao Cheng, University College London, United Kingdom

"This book will be of benefit to GIS/IT professionals in general as well as to students interested in systematically building GIS programming knowledge and skills. I strongly recommend this book."
— Rui Li, Wuhan University, China

"… an A to Z of GIS. [This book] covers a remarkable breadth of material, from the practical nuts-and-bolts of programming a GIS, to the fundamental concepts that underpin all of spatial information science. As spatial computing skills become increasingly valued both in education and the workplace, a book like this is an invaluable resource for people who want to understand more about and do more with spatial data. Those with a background in GIS and geography will find a wealth of accessible information and exercises to build new programming skills; skilled programmers can uncover the fundamental spatial concepts that are the basis of elegant and robust spatial information systems. By marrying the practice with theory, the book can claim to be a one-stop-shop for all your spatial computing needs."
— Matt Duckham, RMIT University, Melbourne, Australia

"This book will be useful for those studying GIS who wish to deepen their knowledge of how spatial data is handled on the computer and for those with IT skills who wish to understand more about the particulars of spatial data. A strong plus is that the book takes a very hands-on approach with lots of practical examples and problems for the reader to work on. Python is used as the language which is a good choice since it is freely available."
— Steve Wise, University of Sheffield, United Kingdom

"In today’s GIS job market, Python Programming and ArcGIS are the must-have skills for many students and professionals. This book provides excellent basic programming concepts and step-by-step code examples for GIS students and professionals to enhance their programming skills. GIS professionals and students will learn fundamental programming concepts and great examples in Object-Oriented Programming, Data Visualization, GIS Data Structures, and GIS Algorithms."
— Ming-Hsiang Tsou, San Diego State University, California, USA