Introduction to GIS Programming and Fundamentals with Python and ArcGIS
Introduction to GIS Programming and Fundamentals with Python and ArcGIS
Chaowei Yang
With the collaboration of
Manzhu Yu
Qunying Huang
Zhenlong Li
Min Sun
Kai Liu
Yongyao Jiang
Jizhe Xia
Fei Hu
CRC Press
Taylor & Francis Group
6000 Broken Sound Parkway NW, Suite 300
Boca Raton, FL 33487-2742
2017 by Taylor & Francis Group, LLC
CRC Press is an imprint of Taylor & Francis Group, an Informa business
No claim to original U.S. Government works
Printed on acid-free paper
International Standard Book Number-13: 978-1-4665-1008-1 (Hardback)
This book contains information obtained from authentic and highly regarded sources. Reasonable efforts have been made to publish reliable data and information, but the author and publisher cannot assume responsibility for the validity of all materials or the consequences of their use. The authors and publishers have attempted to trace the copyright holders of all material reproduced in this publication and apologize to copyright holders if permission to publish in this form has not been obtained. If any copyright material has not been acknowledged please write and let us know so we may rectify in any future reprint.
Except as permitted under U.S. Copyright Law, no part of this book may be reprinted, reproduced, transmitted, or utilized in any form by any electronic, mechanical, or other means, now known or hereafter invented, including photocopying, microfilming, and recording, or in any information storage or retrieval system, without written permission from the publishers.
For permission to photocopy or use material electronically from this work, please access www.copyright.com (http://www.copyright.com/) or contact the Copyright Clearance Center, Inc. (CCC), 222 Rosewood Drive, Danvers, MA 01923, 978-750-8400. CCC is a not-for-profit organization that provides licenses and registration for a variety of users. For organizations that have been granted a photocopy license by the CCC, a separate system of payment has been arranged.
Trademark Notice: Product or corporate names may be trademarks or registered trademarks, and are used only for identification and explanation without intent to infringe.
Library of Congress Cataloging-in-Publication Data
Names: Yang, Chaowei, author.
Title: Introduction to GIS programming and fundamentals with Python and ArcGIS / Chaowei Yang.
Description: Boca Raton, FL : Taylor & Francis, 2017.
Identifiers: LCCN 2016047660| ISBN 9781466510081 (hardback : alk. paper) | ISBN 9781466510098 (ebook)
Subjects: LCSH: Geographic information systems--Design. | Python (Computer program language) | ArcGIS
Classification: LCC G70.212 .Y36 2017 | DDC 910.285/53--dc23
LC record available at https://lccn.loc.gov/2016047660
Visit the Taylor & Francis Web site at
http://www.taylorandfrancis.com
and the CRC Press Web site at
http://www.crcpress.com
For Chaowei Yang's parents, Chaoqing Yang and Mingju Tang,
for continually instilling curiosity and an exploring spirit
Contents
Why Another GIS Programming Text?
Geographical information system (GIS) has become a popular tool underpinning many aspects of our daily life from routing for transportation to finding a restaurant to responding to emergencies. Convenient GIS tools are developed with different levels of programming from scripting, using python for ArcGIS, to crafting new suites of tools from scratch. How much programming is needed for projects largely depends on the GIS software, types of applications, and knowledge structure and background of the application designer and developer. For example, simple scripting integrates online mapping applications using Google maps. Customized spatial analyses applications are routinely using ArcGIS with minimum programming. Many develop an application leveraging open-source software for managing big data, modeling complex phenomena, or responding to concurrent users for popular online systems. The best design and development of such applications require designers and developers to have a thorough understanding of GIS principles as well as the skill to choose between commercial and open-source software options. For most GIS professionals, this is a challenge because most are either GIS tool end users or information technology (IT) professionals with a limited understanding of GIS.
To fill this gap, over the last decade, Chaowei Yang launched an introductory GIS programming course that was well received. Enrollment continues to rise and students report positive feedback once they are in the workplace and use knowledge developed from the class. To benefit a broader spectrum of students and professionals looking for training materials to build GIS programming capabilities, this book is written to integrate and refine the authors knowledge accumulated through courses and associated research projects.
The audience for this book is both IT professionals to learn the GIS principles and GIS users to develop programming skills. On the one hand, this book provides a bridge for GIS students and professionals to learn and practice programming. On the other hand, it also helps IT professionals with programming experience to acquire the fundamentals of GIS to better hone their programming skills for GIS development.
Rather than try to compete with the current GIS programming literature, the authors endeavor to interpret GIS from a different angle by integrating GIS algorithms and programming. As a result, this book provides a practical knowledge that includes fundamental GIS principles, basic programming skills, open-source GIS development, ArcGIS development, and advanced topics. Structured for developing GIS functions, applications, and systems, this book is expected to help GIS/IT students and professionals to become more competitive in the job market of GIS and IT industry with needed programming skills.
What Is Included in the Text?
This book has four sections. ) using the Mini-GIS developed.
introduces object-oriented programming and characteristics with examples of basic GIS vector data types of Point, Polyline, and Polygon.
introduces vector data processing algorithms and includes line intersection, centroid, area, length, and point in polygon. This presentation includes how Mini-GIS/ArcGIS supports these algorithms.
explores surface or 3D data representation of 3D data, converting data formats and 3D analyses for elevation, slope, aspect, and flow direction with examples in ArcGIS programming.
.
Hands-On Experience
As a practical text for developing programming skills, this book makes every effort to ensure the content is as functional as possible. For every introduced GIS fundamental principle, algorithm and element, an example is explored as a hands-on experience using Mini-GIS and/or ArcGIS with Python. This learning workflow helps build a thorough understanding of the fundamentals and naturally maps to the fundamentals and programming skills.
For system and open-source development, a step-by-step development of a python-based Mini-GIS is presented. For application development, ArcGIS is adopted for illustration.
The Mini-GIS is an open-source software developed for this text and can be adopted for building other GIS applications. ArcGIS, a commercial product from ESRI, is used to experience state-of-the-art commercial software. For learning purpose, ArcGIS is available for free from ESRI.
Online Materials
This book comes with the following online materials:
Next page