"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 todays 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
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 (20042016) and has been adopted by his students and colleagues serving as professors at many universities in the United States and internationally.
Section I. Introduction. Object-Oriented Programming. Section II. Introduction to Python. Python Language Control Structure, File Input/Output, and Exception Handling. Programming Thinking and Vector Data Visualization. Shapefile Handling. Python Programming Environment. Vector Data Algorithms. Section III. ArcGIS Programming. Raster Data Algorithm. Network Data Algorithms. Surface Data Algorithms. Section IV. Performance-Improving Techniques. Advanced Topics. References. Index.