Limit search to available items
Book Cover
E-book
Author Yang, Chaowei, author

Title Introduction to GIS programming and fundamentals with Python and ArcGIS / Chaowei Yang
Published Boca Raton : CRC Press, 2017
© 2017
Online access available from:
ProQuest Ebook Central Subscription Collection    View Resource Record  

Copies

Description 1 online resource (xxvi, 302 pages) : color illustrations, color maps
Contents 1. Introduction -- 1.1. Computer Hardware and Software -- 1.2. GIS and Programming -- 1.3. Python -- 1.4. Class and Object -- 1.5. GIS Data Models -- 1.6. UML -- 1.7. Hands-On Experience with Python -- 1.8. Chapter Summary -- Problems -- 2. Object-Oriented Programming -- 2.1. Programming Language and Python -- 2.2. Class and Object -- 2.2.1. Defining Classes -- 2.2.2. Object Generation -- 2.2.3. Attributes -- 2.2.4. Inheritance -- 2.2.5. Composition -- 2.3. Point, Polyline, and Polygon -- 2.4. Hands-On Experience with Python -- 2.5. Chapter Summary -- Problems -- 3. Introduction to Python -- 3.1. Object-Oriented Support -- 3.2. Syntax -- 3.2.1. Case Sensitivity -- 3.2.2. Special Characters -- 3.2.3. Indentation -- 3.2.4. Keywords -- 3.2.5. Multiple Assignments -- 3.2.6. Namespace -- 3.2.7. Scope -- 3.3. Data Types -- 3.3.1. Basic Data Types -- 3.3.2. Composite Data Types -- 3.4. Miscellaneous -- 3.4.1. Variables -- 3.4.2. Code Style -- 3.5. Operators -- 3.6. Statements -- 3.7. Functions -- 3.8. Hands-On Experience with Python -- 3.9. Chapter Summary -- Problems -- 4. Python Language Control Structure, File Input/Output, and Exception Handling -- 4.1. Making Decisions -- 4.2. Loops -- 4.3. Other Control Structures -- 4.4. File Input/Output -- 4.5. Exceptions -- 4.6. Hands-On Experience with Python -- 4.6.1. Find the Longest Distance between Any Two Points -- 4.6.2. Hands-On Experience: I/O, Create and Read a File -- 4.6.3. Hands-On Experience: I/O, Flow Control, and File -- 4.6.4. Hands-On Experience: Input GIS Point Data from Text File -- 4.7. Chapter Summary -- Problems -- 5. Programming Thinking and Vector Data Visualization -- 5.1. Problem: Visualizing GIS Data -- 5.2. Transforming Coordinate System -- 5.2.1. How to Determine Ratio Value? -- 5.3. Visualizing Vector Data -- 5.4. Point, Polyline, Polygon -- 5.5. Programming Thinking -- 5.5.1. Problem Analysis -- 5.5.2. Think in Programming -- 5.5.3. Match Programming Language Patterns and Structure -- 5.5.4. Implement Program -- 5.6. Hands-On Experience with Python -- 5.6.1. Reading, Parsing, and Analyzing Text File Data -- 5.6.2. Create GIS Objects and Check Intersection -- 5.7. Chapter Summary -- Problems -- 6. Shapefile Handling -- 6.1. Binary Data Manipulation -- 6.2. Shapefile Introduction -- 6.3. Shapefile Structure and Interpretation -- 6.3.1. Main File Structure of a Shapefile -- 6.3.1.1. Main File Header -- 6.3.1.2. Feature Record -- 6.3.2. Index File Structure (.shx) -- 6.3.3. The .dbf File -- 6.4. General Programming Sequence for Handling Shapefiles -- 6.5. Hands-On Experience with Mini-GIS -- 6.5.1. Visualize Polylines and Polygons -- 6.5.2. Interpret Polyline Shapefiles -- 6.6. Chapter Summary -- Problems -- 7. Python Programming Environment -- 7.1. General Python IDE -- 7.1.1. Python Programming Windows -- 7.1.1.1. Command-Line GUI -- 7.1.1.2. Interactive GUI -- 7.1.1.3. File-Based Programming -- 7.1.2. Python IDE Settings -- 7.1.2.1. Highlighting -- 7.1.2.2. General Setting of the Programming Window -- 7.1.2.3. Fonts Setup for the Coding -- 7.1.3. Debugging -- 7.1.3.1. SyntaxError -- 7.1.3.2. Run-Time Exceptions -- 7.1.3.3. Handling Exceptions -- 7.1.3.4. Add Exception Handles and Clean-Up Actions to File Read/Write -- 7.2. Python Modules -- 7.2.1. Module Introduction -- 7.2.2. Set Up Modules -- 7.2.3. System Built-In Modules -- 7.3. Package Management and Mini-GIS -- 7.3.1. Regular GIS Data Organization -- 7.3.2. Mini-GIS Package -- 7.4. Hands-On Experience with Mini-GIS -- 7.4.1. Package Management and Mini-GIS -- 7.4.2. Run and Practice the Mini-GIS Package -- 7.5. Chapter Summary -- Problems -- 8. Vector Data Algorithms -- 8.1. Centroid -- 8.1.1. Centroid of a Triangle -- 8.1.2. Centroid of a Rectangle -- 8.1.3. Centroid of a Polygon -- 8.2. Area -- 8.2.1. Area of a Simple Polygon -- 8.2.2. Area of a Polygon with Hole(s) -- 8.3. Length -- 8.3.1. Length of a Straight Line Segment -- 8.3.2. Length of a Polyline -- 8.4. Line Intersection -- 8.4.1. Parallel Lines -- 8.4.2. Vertical Lines -- 8.5. Point in Polygon -- 8.5.1. A Special Scenario -- 8.6. Hands-On Experience with Python -- 8.6.1. Using Python to Draw a Polygon and Calculate the Centroid -- 8.6.2. Using Python to Draw Polygon and Calculate the Area of Polygon -- 8.6.3. Using Python to Draw Line Segments and Calculate the Intersection -- 8.7. Chapter Summary -- Problems -- 9. ArcGIS Programming -- 9.1. ArcGIS Programming -- 9.2. Introduction to ArcPy Package -- 9.2.1. ArcPy Functions, Classes, and Modules -- 9.2.2. Programming with ArcPy in ArcMap -- 9.2.3. Programming with ArcPy in Python Window outside ArcMap -- 9.2.4. Using Help Documents -- 9.3. Automating ArcTools with Python -- 9.4. Accessing and Editing Data with Cursors -- 9.4.1. SearchCursor -- 9.4.2. UpdateCursor -- 9.4.3. InsertCursor -- 9.4.4. NumPy -- 9.5. Describing and Listing Objects -- 9.5.1. Describe -- 9.5.2. List -- 9.6. Manipulating Complex Objects -- 9.7. Automating Map Production -- 9.8. Creating ArcTools from Scripts -- 9.9. Handling Errors and Messages -- 9.10. External Document and Video Resources -- 9.11. Implementing Spatial Relationship Calculations Using ArcGIS -- 9.12. Summary -- 9.13. Assignment -- 10. Raster Data Algorithm -- 10.1. Raster Data -- 10.2. Raster Storage and Compression -- 10.2.1. Run Length Coding -- 10.2.2. Quad Tree -- 10.3. Raster Data Formats -- 10.3.1. TIFF -- 10.3.2. GeoTIFF -- 10.3.3. IMG -- 10.3.4. NetCDF -- 10.3.5. BMP -- 10.3.6. SVG -- 10.3.7. JPEG -- 10.3.8. GIF -- 10.3.9. PNG -- 10.4. Color Representation and Raster Rendering -- 10.4.1. Color Representation -- 10.4.2. Raster Rendering -- 10.5. Raster Analysis -- 10.6. Hands-On Experience with ArcGIS -- 10.6.1. Hands-On Practice 10.1: Raster Color Renders -- 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" -- 10.6.3. Hands-On Practice 10.3
Access the Attribute Information of Raster Dataset and Calculate the Area -- 10.7. Chapter Summary -- Problems -- 11. Network Data Algorithms -- 11.1. Network Representation -- 11.1.1. Basics Network Representation -- 11.1.2. Directed and Undirected Networks -- 11.1.3. The Adjacency Matrix -- 11.1.4. Network Representation in GIS -- 11.2. Finding the Shortest Path -- 11.2.1. Problem Statement -- 11.2.2. A Brute Force Approach for the Shortest Path Algorithm -- 11.2.3. Dijkstra Algorithm -- 11.3. Types of Network Analysis -- 11.3.1. Routing -- 11.3.2. Closest Facility -- 11.3.3. Service Areas -- 11.3.4. OD Cost Matrix -- 11.3.5. Vehicle Routing Problem -- 11.3.6. Location-Allocation -- 11.4. Hands-On Experience with ArcGIS -- 11.5. Chapter Summary -- Problems -- 12. Surface Data Algorithms -- 12.1. 3D Surface and Data Model -- 12.1.1. Surface Data -- 12.1.2. Surface Data Model -- 12.1.2.1. Discrete Data -- 12.1.2.2. Continuous Data -- 12.2. Create Surface Model Data -- 12.2.1. Create Grid Surface Model -- 12.2.2. Creating TIN Surface Model -- 12.2.3. Conversion between TIN and Raster Surface Models -- 12.3. Surface Data Analysis -- 12.3.1. Elevation -- 12.3.2. Slope -- 12.3.3. Aspect -- 12.3.4. Hydrologic Analysis -- 12.4. Hands-On Experience with ArcGIS -- 12.4.1. Hands-On Practice 12.1: Conversion among DEM, TIN, and Contours -- 12.4.2. Hands-On Practice 12.2: Generate Slope and Aspect -- 12.4.3. Hands-On Practice 12.3: Flow Direction -- 12.5. Chapter Summary -- Problems -- 13. Performance-Improving Techniques -- 13.1. Problems -- 13.2. Disk Access and Memory Management -- 13.2.1. File Management -- 13.2.2. Comprehensive Consideration -- 13.3. Parallel Processing and Multithreading -- 13.3.1. Sequential and Concurrent Execution -- 13.3.2. Multithreading -- 13.3.3. Load Multiple Shapefiles Concurrently Using Multithreading -- 13.3.4. Parallel Processing and Cluster, Grid, and Cloud Computing -- 13.4. Relationship Calculation and Spatial Index -- 13.4.1. Bounding Box in GIS -- 13.4.2. Spatial Index -- 13.5. Hands-On Experience with Mini-GIS -- 13.5.1. Data Loading with RAM as File Buffer -- 13.5.2. Data Loading with Multithreading -- 13.5.3. Bounding Box Checking to Speed Up Intersection -- 13.5.4. Line Intersection Using R-Tree Index -- 13.6. Chapter Summary -- Problems -- 14. Advanced Topics -- 14.1. Spatial Data Structure -- 14.1.1. Raster Data Structure in NetCDF/HDF -- 14.1.2. Application of NetCDF/HDF on Climate Study -- 14.2. GIS Algorithms and Modeling -- 14.2.1. Data -- 14.2.2. Density Analysis -- 14.2.3. Regression Analysis (OLS and GWR) -- 14.3. Distributed GIS -- 14.3.1. System Architecture -- 14.3.2. User Interface -- 14.4. Spatiotemporal Thinking and Computing -- 14.4.1. Problem: Dust Simulation and Computing Challenges -- 14.4.2. Methodology 1: Utilizing High-Performance Computing to Support Dust Simulation -- 14.4.3. Methodology 2: Utilizing Spatiotemporal Thinking to Optimize High-Performance Computing -- 14.4.3.1. Dust Storms' Clustered Characteristics: Scheduling Methods -- 14.4.3.2. Dust Storms' Space-Time Continuity: Decomposition Method -- 14.4.3.3. Dust Storm Events Are Isolated: Nested Model -- 14.4.4. Methodology 3: Utilizing Cloud Computing to Support Dust Storm Forecasting -- 14.5. Chapter Summary -- Problems
Bibliography Includes bibliographical references and index
Notes Description based on print version record
Subject ArcGIS.
Geographic information systems -- Design.
Geographic information systems.
Python (Computer program language)
Form Electronic book
ISBN 1466510099 (electronic bk.)
1466510102 (electronic bk.)
9781466510098 (electronic bk.)
9781466510104 (electronic bk.)
(hardcover ;) (alkaline paper)
(hardcover ;) (alkaline paper)