Introduction to GIS programming and fundamentals with Python and ArcGIS /
Clasificación: | Libro Electrónico |
---|---|
Autor principal: | |
Formato: | Electrónico eBook |
Idioma: | Inglés |
Publicado: |
Boca Raton :
CRC Press,
2017.
|
Temas: | |
Acceso en línea: | Texto completo |
Tabla de Contenidos:
- 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.