Cargando…
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.