Muutke küpsiste eelistusi

E-raamat: Introduction to GIS Programming and Fundamentals with Python and ArcGIS(R)

(Department of Geography and Geoinformation Science, George Mason University, Fairfax, Virginia, USA)
  • Formaat: 328 pages
  • Ilmumisaeg: 25-Apr-2017
  • Kirjastus: CRC Press Inc
  • Keel: eng
  • ISBN-13: 9781466510104
  • Formaat - EPUB+DRM
  • Hind: 59,79 €*
  • * hind on lõplik, st. muud allahindlused enam ei rakendu
  • Lisa ostukorvi
  • Lisa soovinimekirja
  • See e-raamat on mõeldud ainult isiklikuks kasutamiseks. E-raamatuid ei saa tagastada.
  • Formaat: 328 pages
  • Ilmumisaeg: 25-Apr-2017
  • Kirjastus: CRC Press Inc
  • Keel: eng
  • ISBN-13: 9781466510104

DRM piirangud

  • Kopeerimine (copy/paste):

    ei ole lubatud

  • Printimine:

    ei ole lubatud

  • Kasutamine:

    Digitaalõiguste kaitse (DRM)
    Kirjastus on väljastanud selle e-raamatu krüpteeritud kujul, mis tähendab, et selle lugemiseks peate installeerima spetsiaalse tarkvara. Samuti peate looma endale  Adobe ID Rohkem infot siin. E-raamatut saab lugeda 1 kasutaja ning alla laadida kuni 6'de seadmesse (kõik autoriseeritud sama Adobe ID-ga).

    Vajalik tarkvara
    Mobiilsetes seadmetes (telefon või tahvelarvuti) lugemiseks peate installeerima selle tasuta rakenduse: PocketBook Reader (iOS / Android)

    PC või Mac seadmes lugemiseks peate installima Adobe Digital Editionsi (Seeon tasuta rakendus spetsiaalselt e-raamatute lugemiseks. Seda ei tohi segamini ajada Adober Reader'iga, mis tõenäoliselt on juba teie arvutisse installeeritud )

    Seda e-raamatut ei saa lugeda Amazon Kindle's. 

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.

Arvustused

"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, Me

Preface xv
Acknowledgments xxi
Editor xxiii
Contributors xxv
Section I Overview
1 Introduction
3(16)
1.1 Computer Hardware and Software
3(2)
1.2 GIS and Programming
5(2)
1.3 Python
7(2)
1.4 Class and Object
9(1)
1.5 GIS Data Models
10(1)
1.6 UML
11(3)
1.7 Hands-On Experience with Python
14(2)
1.8
Chapter Summary
16(1)
Problems
17(2)
2 Object-Oriented Programming
19(16)
2.1 Programming Language and Python
19(2)
2.2 Class and Object
21(6)
2.2.1 Defining Classes
21(2)
2.2.2 Object Generation
23(1)
2.2.3 Attributes
23(2)
2.2.4 Inheritance
25(1)
2.2.5 Composition
26(1)
2.3 Point, Polyline, and Polygon
27(3)
2.4 Hands-On Experience with Python
30(1)
2.5
Chapter Summary
30(1)
Problems
31(4)
Section II Python Programming
3 Introduction to Python
35(26)
3.1 Object-Oriented Support
35(1)
3.2 Syntax
36(4)
3.2.1 Case Sensitivity
36(1)
3.2.2 Special Characters
36(1)
3.2.3 Indentation
36(1)
3.2.4 Keywords
37(1)
3.2.5 Multiple Assignments
38(1)
3.2.6 Namespace
38(1)
3.2.7 Scope
38(2)
3.3 Data Types
40(8)
3.3.1 Basic Data Types
40(2)
3.3.2 Composite Data Types
42(6)
3.4 Miscellaneous
48(2)
3.4.1 Variables
48(1)
3.4.2 Code Style
49(1)
3.5 Operators
50(3)
3.6 Statements
53(1)
3.7 Functions
54(2)
3.8 Hands-On Experience with Python
56(1)
3.9
Chapter Summary
56(1)
Problems
57(4)
4 Python Language Control Structure, File Input/Output, and Exception Handling
61(16)
4.1 Making Decisions
61(3)
4.2 Loops
64(2)
4.3 Other Control Structures
66(1)
4.4 File Input/Output
67(2)
4.5 Exceptions
69(1)
4.6 Hands-On Experience with Python
70(5)
4.6.1 Find the Longest Distance between Any Two Points
70(1)
4.6.2 Hands-On Experience: I/O, Create and Read a File
70(2)
4.6.3 Hands-On Experience: I/O, Flow Control, and File
72(2)
4.6.4 Hands-On Experience: Input GIS Point Data from Text File
74(1)
4.7
Chapter Summary
75(1)
Problems
75(2)
5 Programming Thinking and Vector Data Visualization
77(20)
5.1 Problem: Visualizing GIS Data
77(3)
5.2 Transforming Coordinate System
80(4)
5.2.1 How to Determine Ratio Value?
82(2)
5.3 Visualizing Vector Data
84(2)
5.4 Point, Polyline, Polygon
86(1)
5.5 Programming Thinking
87(3)
5.5.1 Problem Analysis
88(1)
5.5.2 Think in Programming
88(1)
5.5.3 Match Programming Language Patterns and Structure
89(1)
5.5.4 Implement Program
89(1)
5.6 Hands-On Experience with Python
90(5)
5.6.1 Reading, Parsing, and Analyzing Text File Data
90(2)
5.6.2 Create GIS Objects and Check Intersection
92(3)
5.7
Chapter Summary
95(1)
Problems
95(2)
6 Shapefile Handling
97(18)
6.1 Binary Data Manipulation
97(4)
6.2 Shapefile Introduction
101(1)
6.3 Shapefile Structure and Interpretation
102(5)
6.3.1 Main File Structure of a Shapefile
102(3)
6.3.1.1 Main File Header
102(2)
6.3.1.2 Feature Record
104(1)
6.3.2 Index File Structure (.shx)
105(2)
6.3.3 The .dbf File
107(1)
6.4 General Programming Sequence for Handling Shapefiles
107(1)
6.5 Hands-On Experience with Mini-GIS
108(5)
6.5.1 Visualize Polylines and Polygons
108(1)
6.5.2 Interpret Polyline Shapefiles
109(4)
6.6
Chapter Summary
113(1)
Problems
113(2)
7 Python Programming Environment
115(22)
7.1 General Python IDE
115(9)
7.1.1 Python Programming Windows
115(1)
7.1.1.1 Command-Line GUI
115(2)
7.1.1.2 Interactive GUI
115(1)
7.1.1.3 File-Based Programming
116(1)
7.1.2 Python IDE Settings
117(1)
7.1.2.1 Highlighting
117(1)
7.1.2.2 General Setting of the Programming Window
118(1)
7.1.2.3 Fonts Setup for the Coding
118(1)
7.1.3 Debugging
118(6)
7.1.3.1 SyntaxError
120(1)
7.1.3.2 Run-Time Exceptions
121(1)
7.1.3.3 Handling Exceptions
122(1)
7.1.3.4 Add Exception Handles and Clean-Up Actions to File Read/Write
123(1)
7.2 Python Modules
124(3)
7.2.1 Module Introduction
125(1)
7.2.2 Set Up Modules
125(1)
7.2.3 System Built-In Modules
126(1)
7.3 Package Management and Mini-GIS
127(4)
7.3.1 Regular GIS Data Organization
127(1)
7.3.2 Mini-GIS Package
128(3)
7.4 Hands-On Experience with Mini-GIS
131(4)
7.4.1 Package Management and Mini-GIS
131(1)
7.4.2 Run and Practice the Mini-GIS Package
132(3)
7.5
Chapter Summary
135(1)
Problems
135(2)
8 Vector Data Algorithms
137(16)
8.1 Centroid
137(2)
8.1.1 Centroid of a Triangle
137(1)
8.1.2 Centroid of a Rectangle
137(1)
8.1.3 Centroid of a Polygon
138(1)
8.2 Area
139(2)
8.2.1 Area of a Simple Polygon
139(1)
8.2.2 Area of a Polygon with Hole(s)
140(1)
8.3 Length
141(1)
8.3.1 Length of a Straight Line Segment
141(1)
8.3.2 Length of a Polyline
142(1)
8.4 Line Intersection
142(4)
8.4.1 Parallel Lines
145(1)
8.4.2 Vertical Lines
145(1)
8.5 Point in Polygon
146(2)
8.5.1 A Special Scenario
146(2)
8.6 Hands-On Experience with Python
148(2)
8.6.1 Using Python to Draw a Polygon and Calculate the Centroid
148(1)
8.6.2 Using Python to Draw Polygon and Calculate the Area of Polygon
148(1)
8.6.3 Using Python to Draw Line Segments and Calculate the Intersection
148(2)
8.7
Chapter Summary
150(1)
Problems
150(3)
Section III Advanced GIS Algorithms and Their Programming in ArcGIS
9 ArcGIS Programming
153(32)
9.1 ArcGIS Programming
153(1)
9.2 Introduction to ArcPy Package
154(4)
9.2.1 ArcPy Functions, Classes, and Modules
154(1)
9.2.2 Programming with ArcPy in ArcMap
155(1)
9.2.3 Programming with ArcPy in Python Window outside ArcMap
156(1)
9.2.4 Using Help Documents
157(1)
9.3 Automating ArcTools with Python
158(2)
9.4 Accessing and Editing Data with Cursors
160(6)
9.4.1 SearchCursor
160(4)
9.4.2 UpdateCursor
164(1)
9.4.3 InsertCursor
164(1)
9.4.4 NumPy
165(1)
9.5 Describing and Listing Objects
166(3)
9.5.1 Describe
166(1)
9.5.2 List
167(2)
9.6 Manipulating Complex Objects
169(3)
9.7 Automating Map Production
172(1)
9.8 Creating ArcTools from Scripts
172(4)
9.9 Handling Errors and Messages
176(1)
9.10 External Document and Video Resources
177(1)
9.11 Implementing Spatial Relationship Calculations Using ArcGIS
178(2)
9.12 Summary
180(2)
9.13 Assignment
182(3)
10 Raster Data Algorithm
185(22)
10.1 Raster Data
185(1)
10.2 Raster Storage and Compression
186(3)
10.2.1 Run Length Coding
187(1)
10.2.2 Quad Tree
188(1)
10.3 Raster Data Formats
189(2)
10.3.1 TIFF
189(1)
10.3.2 GeoTIFF
190(1)
10.3.3 IMG
190(1)
10.3.4 NetCDF
190(1)
10.3.5 BMP
190(1)
10.3.6 SVG
191(1)
10.3.7 JPEG
191(1)
10.3.8 GIF
191(1)
10.3.9 PNG
191(1)
10.4 Color Representation and Raster Rendering
191(5)
10.4.1 Color Representation
191(3)
10.4.2 Raster Rendering
194(2)
10.5 Raster Analysis
196(2)
10.6 Hands-On Experience with ArcGIS
198(7)
10.6.1 Hands-On Practice 10.1: Raster Color Renders
198(1)
10.6.2 Hands-On Practice 10.2: Raster Data Analysis: Find the Area with the Elevation Range between 60 and 100 and the Land Cover Type as "Forest"
199(1)
10.6.3 Hands-On Practice 10.3. Access the Attribute Information of Raster Dataset and Calculate the Area
200(5)
10.7
Chapter Summary
205(1)
Problems
205(2)
11 Network Data Algorithms
207(16)
11.1 Network Representation
207(3)
11.1.1 Basics Network Representation
207(1)
11.1.2 Directed and Undirected Networks
207(2)
11.1.3 The Adjacency Matrix
209(1)
11.1.4 Network Representation in GIS
209(1)
11.2 Finding the Shortest Path
210(4)
11.2.1 Problem Statement
210(1)
11.2.2 A Brute Force Approach for the Shortest Path Algorithm
211(1)
11.2.3 Dijkstra Algorithm
212(2)
11.3 Types of Network Analysis
214(4)
11.3.1 Routing
214(1)
11.3.2 Closest Facility
214(1)
11.3.3 Service Areas
214(2)
11.3.4 OD Cost Matrix
216(1)
11.3.5 Vehicle Routing Problem
216(1)
11.3.6 Location-Allocation
217(1)
11.4 Hands-On Experience with ArcGIS
218(3)
11.5
Chapter Summary
221(1)
Problems
222(1)
12 Surface Data Algorithms
223(24)
12.1 3D Surface and Data Model
223(5)
12.1.1 Surface Data
223(1)
12.1.2 Surface Data Model
223(5)
12.1.2.1 Discrete Data
223(2)
12.1.2.2 Continuous Data
225(3)
12.2 Create Surface Model Data
228(2)
12.2.1 Create Grid Surface Model
228(1)
12.2.2 Creating TIN Surface Model
229(1)
12.2.3 Conversion between TIN and Raster Surface Models
229(1)
12.3 Surface Data Analysis
230(6)
12.3.1 Elevation
230(1)
12.3.2 Slope
231(1)
12.3.3 Aspect
232(2)
12.3.4 Hydrologic Analysis
234(2)
12.4 Hands-On Experience with ArcGIS
236(6)
12.4.1 Hands-On Practice 12.1: Conversion among DEM, TIN, and Contours
236(3)
12.4.2 Hands-On Practice 12.2: Generate Slope and Aspect
239(1)
12.4.3 Hands-On Practice 12.3: Flow Direction
239(3)
12.5
Chapter Summary
242(1)
Problems
242(5)
Section IV Advanced Topics
13 Performance-Improving Techniques
247(18)
13.1 Problems
247(1)
13.2 Disk Access and Memory Management
248(3)
13.2.1 File Management
249(1)
13.2.2 Comprehensive Consideration
249(2)
13.3 Parallel Processing and Multithreading
251(3)
13.3.1 Sequential and Concurrent Execution
251(1)
13.3.2 Multithreading
251(1)
13.3.3 Load Multiple Shapefiles Concurrently Using Multithreading
252(1)
13.3.4 Parallel Processing and Cluster, Grid, and Cloud Computing
253(1)
13.4 Relationship Calculation and Spatial Index
254(3)
13.4.1 Bounding Box in GIS
255(1)
13.4.2 Spatial Index
256(1)
13.5 Hands-On Experience with Mini-GIS
257(5)
13.5.1 Data Loading with RAM as File Buffer
257(1)
13.5.2 Data Loading with Multithreading
258(1)
13.5.3 Bounding Box Checking to Speed Up Intersection
258(3)
13.5.4 Line Intersection Using R-Tree Index
261(1)
13.6
Chapter Summary
262(1)
Problems
263(2)
14 Advanced Topics
265(22)
14.1 Spatial Data Structure
265(5)
14.1.1 Raster Data Structure in NetCDF/HDF
265(1)
14.1.2 Application of NetCDF/HDF on Climate Study
266(4)
14.2 GIS Algorithms and Modeling
270(5)
14.2.1 Data
270(1)
14.2.2 Density Analysis
271(1)
14.2.3 Regression Analysis (OLS and GWR)
272(3)
14.3 Distributed GIS
275(5)
14.3.1 System Architecture
276(1)
14.3.2 User Interface
277(3)
14.4 Spatiotemporal Thinking and Computing
280(5)
14.4.1 Problem: Dust Simulation and Computing Challenges
280(1)
14.4.2 Methodology 1: Utilizing High-Performance Computing to Support Dust Simulation
281(1)
14.4.3 Methodology 2: Utilizing Spatiotemporal Thinking to Optimize High-Performance Computing
281(3)
14.4.3.1 Dust Storms' Clustered Characteristics: Scheduling Methods
282(1)
14.4.3.2 Dust Storms' Space-Time Continuity: Decomposition Method
283(1)
14.4.3.3 Dust Storm Events Are Isolated: Nested Model
284(1)
14.4.4 Methodology 3: Utilizing Cloud Computing to Support Dust Storm Forecasting
284(1)
14.5
Chapter Summary
285(1)
Problems
286(1)
References 287(4)
Index 291
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.